Coverage for /home/jenkins/workspace/NDS/Zserio/NDS_ZSERIO-linux-build/compiler/extensions/python/runtime/tests/test_service.py: 100%

42 statements  

« prev     ^ index     » next       coverage.py v6.5.0, created at 2023-12-13 15:12 +0000

1import unittest 

2 

3from zserio import ServiceData, ServiceInterface, ServiceClientInterface 

4from zserio.service import ObjectServiceData, RawServiceData 

5 

6class ServiceTest(unittest.TestCase): 

7 def test_object_service_data(self): 

8 class ZserioObject: 

9 def __init__(self, value): 

10 self._value = value 

11 

12 def __eq__(self, other): 

13 return self._value == other._value 

14 

15 @staticmethod 

16 def bitsizeof(_bitposition): 

17 return 31 # to make an unaligned type 

18 

19 def write(self, writer): 

20 writer.write_bits(self._value, self.bitsizeof(0)) 

21 

22 zserio_object = ZserioObject(0xABCD) 

23 service_data = ObjectServiceData(zserio_object) 

24 self.assertEqual(zserio_object, service_data.zserio_object) 

25 self.assertEqual(bytes([0x00, 0x01, 0x57, 0x9A]), service_data.byte_array) 

26 

27 def test_raw_service_data(self): 

28 data = [0x00, 0x01, 0x57, 0x9A] 

29 service_data = RawServiceData(bytes(data)) 

30 self.assertIsNone(service_data.zserio_object) 

31 self.assertEqual(bytes(data), service_data.byte_array) 

32 

33 def test_service_data(self): 

34 service_data = ServiceData() 

35 with self.assertRaises(NotImplementedError): 

36 service_data.zserio_object() 

37 with self.assertRaises(NotImplementedError): 

38 service_data.byte_array() 

39 

40 def test_service_interface(self): 

41 service_interface = ServiceInterface() 

42 with self.assertRaises(NotImplementedError): 

43 service_interface.call_method("method", bytes(), None) 

44 with self.assertRaises(NotImplementedError): 

45 service_interface.service_full_name() 

46 with self.assertRaises(NotImplementedError): 

47 service_interface.method_names() 

48 

49 def test_service_client_interface(self): 

50 service_client_interface = ServiceClientInterface() 

51 with self.assertRaises(NotImplementedError): 

52 service_client_interface.call_method("method", ObjectServiceData(None), None)