def test_binary_field(self): field = Binary(3, 'field', 1) self.assertTrue(field.length.static) self.assertEquals(field.name, "field") self.assertEquals(field.default_value, '1') self.assertEquals(field.type, 'bin') self.assertEquals(field.encode({}, {}, None).hex, '0x01')
def test_long_binary_field_value(self): field = Binary(23, 'field', '0b1 1111 1111') self.assertEquals(field.encode({}, {}, None).hex, '0x0001ff')
def test_verify_field_length_fails(self): container = BinaryContainerTemplate('foo', None) container.add(Binary(3, 'threeBits', None)) self.assertRaises(AssertionError, container.verify)
def _2_byte_container(self): container = BinaryContainerTemplate('foo', None) container.add(Binary(1, 'oneBit', 1)) container.add(Binary(3, 'threeBits', 7)) container.add(Binary(12, 'twelveBits', 4095)) return container
def _1_byte_container(self): container = BinaryContainerTemplate('foo', None) container.add(Binary(4, 'spare', 0)) container.add(Binary(4, 'value', 1)) return container
def test_verify_only_binary_field_passes(self): container = BinaryContainerTemplate('foo', None) container.add(Binary(1, 'oneBit', None)) self.assertRaises(AssertionError, container.add, UInt(2, 'intsNotAllowed', None))
def test_verify_multi_byte_field_length_passes(self): container = BinaryContainerTemplate('foo', None) for length, name in zip([4, 4, 5, 3, 1, 3, 12], ['a', 'b', 'c', 'd', 'e', 'f', 'g']): container.add(Binary(length, name, None)) container.verify()
def test_verify_single_byte_field_length_passes(self): container = BinaryContainerTemplate('foo', None) container.add(Binary(4, 'firstFour', None)) container.add(Binary(4, 'lastFour', None)) container.verify()