Ejemplo n.º 1
0
 def test_encode_dynamic_primitive_automatically(self):
     tmp = MessageTemplate('Dymagic', self._protocol, {})
     tmp.add(UInt(4, 'len', None))
     tmp.add(Char('len', 'chars', 'abcd'))
     encoded = tmp.encode({}, {})
     self.assertEqual(encoded.chars.ascii, 'abcd')
     self.assertEqual(encoded.len.int, 4)
Ejemplo n.º 2
0
 def setUp(self):
     self._protocol = Protocol('TestProtocol', little_endian=True)
     self._protocol.add(UInt(2, 'msgId', 5))
     self._protocol.add(UInt(2, 'length', None))
     self._protocol.add(PDU('length-4'))
     self.tmp = MessageTemplate('FooRequest', self._protocol, {})
     self.tmp.add(UInt(2, 'field_1', '0xcafe'))
     self.tmp.add(UInt(2, 'field_2', '0xbabe'))
Ejemplo n.º 3
0
 def setUp(self):
     self._protocol = Protocol('TestProtocol')
     self._protocol.add(UInt(2, 'msgId', 5))
     self._protocol.add(UInt(2, 'length', None))
     self._protocol.add(PDU('length-4'))
     self.tmp = MessageTemplate('FooRequest', self._protocol, {})
     self.tmp.add(UInt(2, 'field_1', 1))
     self.tmp.add(UInt(2, 'field_2', 2))
Ejemplo n.º 4
0
 def test_encode_dynamic_list(self):
     tmp = MessageTemplate('Dymagic', self._protocol, {})
     tmp.add(UInt(2, 'len', None))
     lst = ListTemplate('len', 'foo', parent=None)
     lst.add(UInt(1, 'bar', 1))
     tmp.add(lst)
     encoded = tmp.encode({'len': 6}, {})
     self.assertEqual(len(encoded.foo), 6)
Ejemplo n.º 5
0
 def setUp(self):
     self._protocol = Protocol('TestProtocol')
     self._protocol.add(UInt(2, 'msgId', 5))
     self._protocol.add(UInt(2, 'length', None))
     self._protocol.add(PDU('length-4'))
     self.tmp = MessageTemplate('FooRequest', self._protocol, {})
     self.tmp.add(UInt(2, 'field_1', '0xcafe'))
     self.tmp.add(UInt(2, 'field_2', '0xbabe'))
     self.example = self.tmp.encode({}, {})
Ejemplo n.º 6
0
 def test_decode_dynamic_list(self):
     tmp = MessageTemplate('Dymagic', self._protocol, {})
     tmp.add(UInt(2, 'len', None))
     lst = ListTemplate('len', 'foo', parent=None)
     lst.add(UInt(1, 'bar', None))
     tmp.add(lst)
     decoded = tmp.decode(to_bin('0x 00 04 6162 6364'))
     self.assertEqual(decoded.len.int, 4)
     self.assertEqual(decoded.foo[0].hex, '0x61')
Ejemplo n.º 7
0
 def test_access_struct(self):
     self._protocol = Protocol('TestProtocol')
     self._protocol.add(UInt(2, 'msgId', 5))
     self._protocol.add(UInt(2, 'length', None))
     self._protocol.add(PDU('length-4'))
     self.tmp = MessageTemplate('StructuredRequest', self._protocol, {})
     struct = get_pair()
     self.tmp.add(struct)
     msg = self.tmp.encode({}, {})
     self.assertEquals(msg.pair.first.int, 1)
Ejemplo n.º 8
0
 def test_decode_dynamic_primitive(self):
     tmp = MessageTemplate('Dymagic', self._protocol, {})
     tmp.add(UInt(1, 'len', None))
     tmp.add(Char('len', 'chars', None))
     tmp.add(UInt(1, 'len2', None))
     tmp.add(Char('len2', 'chars2', None))
     decoded = tmp.decode(to_bin('0x 04 6162 6364 02 6566'))
     self.assertEqual(decoded.len.int, 4)
     self.assertEqual(decoded.chars.ascii, 'abcd')
     self.assertEqual(decoded.chars2.ascii, 'ef')
Ejemplo n.º 9
0
 def test_encode_dynamic_primitive_with_defined_value(self):
     tmp = MessageTemplate('Dymagic', self._protocol, {})
     tmp.add(UInt(4, 'len', '4'))
     tmp.add(Char('len', 'chars', 'abcd'))
     tmp.add(UInt(4, 'len2', None))
     tmp.add(Char('len2', 'chars2', 'ef'))
     encoded = tmp.encode({'len2': '6'}, {})
     self.assertEqual(encoded.chars.ascii, 'abcd')
     self.assertEqual(len(encoded.chars), 4)
     self.assertEqual(encoded.chars2.ascii, 'ef')
     self.assertEqual(len(encoded.chars2), 6)
Ejemplo n.º 10
0
 def test_add_field_with_length_reference_missing(self):
     tmp = MessageTemplate('Dymagic', self._protocol, {})
     tmp.add(UInt(2, 'len', None))
     str = StructTemplate('FooType', 'foo', tmp)
     self.assertRaises(AssertionError, str.add, Char('notfound', "bar"))
Ejemplo n.º 11
0
 def test_add_field_with_length_reference_to_parent(self):
     tmp = MessageTemplate('Dymagic', self._protocol, {})
     tmp.add(UInt(2, 'len', None))
     str = StructTemplate('FooType', 'foo', tmp)
     str.add(Char('len', "bar"))
Ejemplo n.º 12
0
 def test_non_existing_dynamic_list_variable(self):
     tmp = MessageTemplate('Dymagic', self._protocol, {})
     lst = ListTemplate('not_existing', 'foo', parent=None)
     lst.add(UInt(1, 'bar', None))
     self.assertRaises(Exception, tmp.add, lst)
Ejemplo n.º 13
0
 def test_non_existing_dynamic_variable(self):
     tmp = MessageTemplate('Dymagic', self._protocol, {})
     self.assertRaises(Exception, tmp.add, Char('not_existing', 'foo',
                                                None))