def test_unversioned_non_root_errors(self): old_inv = Inventory(None) new_inv = Inventory(None) root = new_inv.make_entry('directory', '', None, 'TREE_ROOT') root.revision = 'a@e\xc3\xa5ample.com--2004' new_inv.add(root) non_root = new_inv.make_entry('directory', 'foo', root.file_id, 'id') new_inv.add(non_root) delta = new_inv._make_delta(old_inv) serializer = inventory_delta.InventoryDeltaSerializer( versioned_root=True, tree_references=True) err = self.assertRaises(InventoryDeltaError, serializer.delta_to_lines, NULL_REVISION, 'entry-version', delta) self.assertEqual(str(err), 'no version for fileid id')
def test_tree_reference_enabled(self): old_inv = Inventory(None) new_inv = Inventory(None) root = new_inv.make_entry('directory', '', None, 'TREE_ROOT') root.revision = 'a@e\xc3\xa5ample.com--2004' new_inv.add(root) non_root = new_inv.make_entry( 'tree-reference', 'foo', root.file_id, 'id') non_root.revision = 'changed' non_root.reference_revision = 'subtree-version' new_inv.add(non_root) delta = new_inv._make_delta(old_inv) serializer = inventory_delta.InventoryDeltaSerializer( versioned_root=True, tree_references=True) self.assertEqual(StringIO(reference_lines).readlines(), serializer.delta_to_lines(NULL_REVISION, 'entry-version', delta))
def test_tree_reference_enabled(self): old_inv = Inventory(None) new_inv = Inventory(None) root = new_inv.make_entry('directory', '', None, 'TREE_ROOT') root.revision = 'a@e\xc3\xa5ample.com--2004' new_inv.add(root) non_root = new_inv.make_entry('tree-reference', 'foo', root.file_id, 'id') non_root.revision = 'changed' non_root.reference_revision = 'subtree-version' new_inv.add(non_root) delta = new_inv._make_delta(old_inv) serializer = inventory_delta.InventoryDeltaSerializer( versioned_root=True, tree_references=True) self.assertEqual( StringIO(reference_lines).readlines(), serializer.delta_to_lines(NULL_REVISION, 'entry-version', delta))
def test_tree_reference_disabled(self): old_inv = Inventory(None) new_inv = Inventory(None) root = new_inv.make_entry('directory', '', None, 'TREE_ROOT') root.revision = 'a@e\xc3\xa5ample.com--2004' new_inv.add(root) non_root = new_inv.make_entry( 'tree-reference', 'foo', root.file_id, 'id') non_root.revision = 'changed' non_root.reference_revision = 'subtree-version' new_inv.add(non_root) delta = new_inv._make_delta(old_inv) serializer = inventory_delta.InventoryDeltaSerializer( versioned_root=True, tree_references=False) # we expect keyerror because there is little value wrapping this. # This test aims to prove that it errors more than how it errors. err = self.assertRaises(KeyError, serializer.delta_to_lines, NULL_REVISION, 'entry-version', delta) self.assertEqual(('tree-reference',), err.args)
def test_tree_reference_disabled(self): old_inv = Inventory(None) new_inv = Inventory(None) root = new_inv.make_entry('directory', '', None, 'TREE_ROOT') root.revision = 'a@e\xc3\xa5ample.com--2004' new_inv.add(root) non_root = new_inv.make_entry('tree-reference', 'foo', root.file_id, 'id') non_root.revision = 'changed' non_root.reference_revision = 'subtree-version' new_inv.add(non_root) delta = new_inv._make_delta(old_inv) serializer = inventory_delta.InventoryDeltaSerializer( versioned_root=True, tree_references=False) # we expect keyerror because there is little value wrapping this. # This test aims to prove that it errors more than how it errors. err = self.assertRaises(KeyError, serializer.delta_to_lines, NULL_REVISION, 'entry-version', delta) self.assertEqual(('tree-reference', ), err.args)
def test_richroot_unversioned_root_errors(self): old_inv = Inventory(None) new_inv = Inventory(None) root = new_inv.make_entry('directory', '', None, 'TREE_ROOT') new_inv.add(root) delta = new_inv._make_delta(old_inv) serializer = inventory_delta.InventoryDeltaSerializer( versioned_root=True, tree_references=True) err = self.assertRaises(InventoryDeltaError, serializer.delta_to_lines, NULL_REVISION, 'entry-version', delta) self.assertEqual(str(err), 'no version for fileid TREE_ROOT')
def test_root_only_to_lines(self): old_inv = Inventory(None) new_inv = Inventory(None) root = new_inv.make_entry('directory', '', None, 'an-id') root.revision = 'a@e\xc3\xa5ample.com--2004' new_inv.add(root) delta = new_inv._make_delta(old_inv) serializer = inventory_delta.InventoryDeltaSerializer( versioned_root=True, tree_references=True) self.assertEqual(StringIO(root_only_lines).readlines(), serializer.delta_to_lines(NULL_REVISION, 'entry-version', delta))
def test_nonrichroot_versioned_root_errors(self): old_inv = Inventory(None) new_inv = Inventory(None) root = new_inv.make_entry('directory', '', None, 'TREE_ROOT') root.revision = 'a@e\xc3\xa5ample.com--2004' new_inv.add(root) delta = new_inv._make_delta(old_inv) serializer = inventory_delta.InventoryDeltaSerializer( versioned_root=False, tree_references=True) err = self.assertRaises(InventoryDeltaError, serializer.delta_to_lines, NULL_REVISION, 'entry-version', delta) self.assertStartsWith(str(err), 'Version present for / in TREE_ROOT')
def test_root_only_to_lines(self): old_inv = Inventory(None) new_inv = Inventory(None) root = new_inv.make_entry('directory', '', None, 'an-id') root.revision = 'a@e\xc3\xa5ample.com--2004' new_inv.add(root) delta = new_inv._make_delta(old_inv) serializer = inventory_delta.InventoryDeltaSerializer( versioned_root=True, tree_references=True) self.assertEqual( StringIO(root_only_lines).readlines(), serializer.delta_to_lines(NULL_REVISION, 'entry-version', delta))
def test_unversioned_root(self): old_inv = Inventory(None) new_inv = Inventory(None) root = new_inv.make_entry('directory', '', None, 'TREE_ROOT') # Implicit roots are considered modified in every revision. root.revision = 'entry-version' new_inv.add(root) delta = new_inv._make_delta(old_inv) serializer = inventory_delta.InventoryDeltaSerializer( versioned_root=False, tree_references=False) serialized_lines = serializer.delta_to_lines( NULL_REVISION, 'entry-version', delta) self.assertEqual(StringIO(root_only_unversioned).readlines(), serialized_lines) deserializer = inventory_delta.InventoryDeltaDeserializer() self.assertEqual( (NULL_REVISION, 'entry-version', False, False, delta), deserializer.parse_text_bytes(''.join(serialized_lines)))
def test_unversioned_root(self): old_inv = Inventory(None) new_inv = Inventory(None) root = new_inv.make_entry('directory', '', None, 'TREE_ROOT') # Implicit roots are considered modified in every revision. root.revision = 'entry-version' new_inv.add(root) delta = new_inv._make_delta(old_inv) serializer = inventory_delta.InventoryDeltaSerializer( versioned_root=False, tree_references=False) serialized_lines = serializer.delta_to_lines(NULL_REVISION, 'entry-version', delta) self.assertEqual( StringIO(root_only_unversioned).readlines(), serialized_lines) deserializer = inventory_delta.InventoryDeltaDeserializer() self.assertEqual( (NULL_REVISION, 'entry-version', False, False, delta), deserializer.parse_text_bytes(''.join(serialized_lines)))
def test_unknown_kind_errors(self): old_inv = Inventory(None) new_inv = Inventory(None) root = new_inv.make_entry('directory', '', None, 'my-rich-root-id') root.revision = 'changed' new_inv.add(root) class StrangeInventoryEntry(inventory.InventoryEntry): kind = 'strange' non_root = StrangeInventoryEntry('id', 'foo', root.file_id) non_root.revision = 'changed' new_inv.add(non_root) delta = new_inv._make_delta(old_inv) serializer = inventory_delta.InventoryDeltaSerializer( versioned_root=True, tree_references=True) # we expect keyerror because there is little value wrapping this. # This test aims to prove that it errors more than how it errors. err = self.assertRaises(KeyError, serializer.delta_to_lines, NULL_REVISION, 'entry-version', delta) self.assertEqual(('strange',), err.args)
def test_unknown_kind_errors(self): old_inv = Inventory(None) new_inv = Inventory(None) root = new_inv.make_entry('directory', '', None, 'my-rich-root-id') root.revision = 'changed' new_inv.add(root) class StrangeInventoryEntry(inventory.InventoryEntry): kind = 'strange' non_root = StrangeInventoryEntry('id', 'foo', root.file_id) non_root.revision = 'changed' new_inv.add(non_root) delta = new_inv._make_delta(old_inv) serializer = inventory_delta.InventoryDeltaSerializer( versioned_root=True, tree_references=True) # we expect keyerror because there is little value wrapping this. # This test aims to prove that it errors more than how it errors. err = self.assertRaises(KeyError, serializer.delta_to_lines, NULL_REVISION, 'entry-version', delta) self.assertEqual(('strange', ), err.args)