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
« prev ^ index » next coverage.py v6.5.0, created at 2023-12-13 15:12 +0000
1import unittest
3from zserio import ServiceData, ServiceInterface, ServiceClientInterface
4from zserio.service import ObjectServiceData, RawServiceData
6class ServiceTest(unittest.TestCase):
7 def test_object_service_data(self):
8 class ZserioObject:
9 def __init__(self, value):
10 self._value = value
12 def __eq__(self, other):
13 return self._value == other._value
15 @staticmethod
16 def bitsizeof(_bitposition):
17 return 31 # to make an unaligned type
19 def write(self, writer):
20 writer.write_bits(self._value, self.bitsizeof(0))
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)
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)
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()
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()
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)