Exemple #1
0
 def setUp(self):
     super(PropertyListTests, self).setUp()
     self.prop_list = PropertyList(_TEST_PROPERTIES)
Exemple #2
0
class PropertyListTests(TestCase):
    def setUp(self):
        super(PropertyListTests, self).setUp()
        self.prop_list = PropertyList(_TEST_PROPERTIES)

    def test_empty_from_bits(self):
        props, advanced = self.prop_list.from_bits('111111111')

        self.assertEqual(props.properties, [])
        self.assertTrue(props.terminated)
        self.assertEqual(advanced, 9)

    def test_empty_to_bits(self):
        bits = self.prop_list.to_bits(PropList(properties=[], terminated=True))
        self.assertEqual(bits, '111111111')

    def test_single_field_from_bits(self):
        bits = ('100000000'  # Id = 1
                '01100001'  # Value = 134
                '111111111'  # Terminator
                )
        props, advanced = self.prop_list.from_bits(bits)

        self.assertListEqual(props.properties,
                             [Property(definition=_TEST_PROPERTIES[1],
                                       values=[134])])
        self.assertTrue(props.terminated)
        self.assertEqual(advanced, 26)

    def test_single_field_to_bits(self):
        props = PropList(properties=[Property(definition=_TEST_PROPERTIES[1],
                                              values=[134])],
                         terminated=True)

        bits = self.prop_list.to_bits(props)

        self.assertEqual(bits,
                         ('100000000'  # Id = 1
                          '01100001'  # Value = 134
                          '111111111'  # Terminator
                          ))

    def test_offset_field_from_bits(self):
        bits = ('010000000'  # Id = 2
                '0101000'  # Value = 10 - 32 = -22
                '111111111'  # Terminator
                )
        props, advanced = self.prop_list.from_bits(bits)

        self.assertListEqual(props.properties,
                             [Property(definition=_TEST_PROPERTIES[2],
                                       values=[-22])])
        self.assertTrue(props.terminated)
        self.assertEqual(advanced, 25)

    def test_offset_field_to_bits(self):
        props = PropList(properties=[Property(definition=_TEST_PROPERTIES[2],
                                              values=[-22])],
                         terminated=True)

        bits = self.prop_list.to_bits(props)

        self.assertEqual(bits,
                         ('010000000'  # Id = 2
                          '0101000'  # Value = 10 - 32 = -22
                          '111111111'  # Terminator
                          ))

    def test_multiple_field_from_bits(self):
        bits = ('110000000'  # Id = 3
                '11011000'  # Value = 27
                '000000001'  # Value = 256
                '111111111'  # Terminator
                )
        props, advanced = self.prop_list.from_bits(bits)

        self.assertListEqual(props.properties,
                             [Property(definition=_TEST_PROPERTIES[3],
                                       values=[27, 256])])
        self.assertTrue(props.terminated)
        self.assertEqual(advanced, 35)

    def test_multiple_field_to_bits(self):
        props = PropList(properties=[Property(definition=_TEST_PROPERTIES[3],
                                              values=[27, 256])],
                         terminated=True)

        bits = self.prop_list.to_bits(props)

        self.assertEqual(bits,
                         ('110000000'  # Id = 3
                          '11011000'  # Value = 27
                          '000000001'  # Value = 256
                          '111111111'  # Terminator
                          ))

    def test_early_terminator_from_bits(self):
        bits = ('001000000'  # Id = 4
                '111111111'  # Value = 511
                '111111111'  # Terminator
                )
        props, advanced = self.prop_list.from_bits(bits)

        self.assertListEqual(props.properties,
                             [Property(definition=_TEST_PROPERTIES[4],
                                       values=[511])])
        self.assertTrue(props.terminated)
        self.assertEqual(advanced, 27)

    def test_early_terminator_to_bits(self):
        props = PropList(properties=[Property(definition=_TEST_PROPERTIES[4],
                                              values=[511])],
                         terminated=True)

        bits = self.prop_list.to_bits(props)

        self.assertEqual(bits,
                         ('001000000'  # Id = 4
                          '111111111'  # Value = 511
                          '111111111'  # Terminator
                          ))

    def test_unterminated_from_bits(self):
        bits = '1111011110'

        props, advanced = self.prop_list.from_bits(bits)

        self.assertListEqual(props.properties, [])
        self.assertFalse(props.terminated)
        self.assertEqual(advanced, 0)

    def test_unterminated_from_bits(self):
        props = PropList(properties=[], terminated=False)

        bits = self.prop_list.to_bits(props)

        self.assertEqual(bits, '')