def _test_modify(self, contents, accessor): # Typed test value = odil.Value([contents[0]]) if isinstance(contents[0], bytearray): accessor(value).append(odil.Value.BinaryItem(contents[1])) else: accessor(value).append(contents[1]) self._test_sequences(accessor(value), contents[:2]) if isinstance(contents[0], bytearray): accessor(value)[0] = odil.Value.BinaryItem(contents[1]) else: accessor(value)[0] = contents[1] self._test_sequences(accessor(value), [contents[1], contents[1]]) # Polymorphic test value = odil.Value([contents[0]]) if isinstance(contents[0], bytearray): value.append(odil.Value.BinaryItem(contents[1])) else: value.append(contents[1]) self._test_sequences(value, contents[:2]) if isinstance(contents[0], bytearray): value[0] = odil.Value.BinaryItem(contents[1]) else: value[0] = contents[1] self._test_sequences(value, [contents[1], contents[1]])
def _test_equality(self, contents_1, contents_2): value_1 = odil.Value(contents_1) value_2 = odil.Value(contents_1) value_3 = odil.Value(contents_2) value_4 = odil.Value(contents_2) self.assertTrue(value_1 == value_2) self.assertFalse(value_1 == value_3) self.assertFalse(value_1 == value_4) self.assertFalse(value_1 != value_2) self.assertTrue(value_1 != value_3) self.assertTrue(value_1 != value_4)
def _test_modify(self, contents, accessor): value = odil.Value([contents[0]]) if isinstance(contents[0], bytearray): accessor(value).append(odil.Value.BinaryItem("".join(chr(x) for x in contents[1]))) else: accessor(value).append(contents[1]) self._test_sequences(accessor(value), contents)
def _test_container(self, contents, type_, accessor): value = odil.Value(contents) self._test_contents(value, contents, type_, accessor)
def test_unknown_constructor(self): class Foo(object): pass items = [Foo()] with self.assertRaises(odil.Exception): odil.Value(items)
def _test_pickle(self, contents, accessor): value = odil.Value(contents) self.assertSequenceEqual( accessor(pickle.loads(pickle.dumps(value))), accessor(value))
def _test_clear(self, contents, type_): value = odil.Value(contents) value.clear() self.assertEqual(value.type, type_) self.assertTrue(value.empty())