def test_remove_value(self): original = {'a': 1, 'b': 2} modified = {'a': 1} doc = Document() doc.content = original self.assertEqual(doc.content, original) self.assertEqual([], list(doc.delta)) self.assertEqual(original, doc.patched_content) doc.content = modified self.assertEqual(doc.content, modified) self.assertEqual([], list(doc.delta)) self.assertEqual(modified, doc.patched_content)
def test_add_value(self): original = {'a': 1, 'b': 2} modified = {'a': 1, 'b': 2, 'c': 3} modified_again = {'a': 1, 'b': 2, 'c': 3, 'd': 4} doc = Document() doc.content = original doc.save() doc.content = modified self.assertEqual(doc.content, modified) self.assertEqual([('add', '', [('c', 3)])], list(doc.delta)) self.assertEqual(modified, doc.patched_content) doc.save() doc.content = modified_again self.assertEqual(doc.content, modified_again) self.assertEqual([('add', '', [('d', 4)])], list(doc.delta)) self.assertEqual(modified_again, doc.patched_content)
def test_update_value(self): original = {'a': 1, 'b': 2} modified = {'a': 1, 'b': 4} modified_again = {'a': 2, 'b': 4} doc = Document() doc.content = original doc.save() doc.content = modified self.assertEqual(doc.content, modified) self.assertEqual([('change', 'b', (2, 4))], list(doc.delta)) self.assertEqual(modified, doc.patched_content) doc.save() doc.content = modified_again self.assertEqual(doc.content, modified_again) self.assertEqual([('change', 'a', (1, 2))], list(doc.delta)) self.assertEqual(modified_again, doc.patched_content)
def test_constructor(self): original = {'a': 1, 'b': 2} modified = {'a': 1, 'b': 2, 'c': 3} doc = Document(content=original) doc.save() doc.content = modified doc.content = modified self.assertEqual(doc.content, modified) self.assertEqual([('add', '', [('c', 3)])], list(doc.delta)) self.assertEqual(modified, doc.patched_content)