Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_init(self):
p1 = ('add', '', [(0, 0)])
p2 = ('add', '', [(1, 2)])
c = Conflict(p1, p2)
self.assertEqual(c.first_patch, p1)
self.assertEqual(c.second_patch, p2)
self.assertEqual(c.take, None)
def test_init(self):
# Very basic
r = Resolver({})
self.assertEqual(r.actions, {})
self.assertEqual(r.additional_info, None)
self.assertEqual(r.unresolved_conflicts, [])
# With additional_info
r = Resolver({}, {})
self.assertEqual(r.actions, {})
self.assertEqual(r.additional_info, {})
self.assertEqual(r.unresolved_conflicts, [])
def test_path_limit_addition(self):
first = {}
second = {'author': {'last_name': 'Doe', 'first_name': 'John'}}
p = PathLimit([('author',)])
diffed = list(diff(first, second, path_limit=p))
res = [('add', '', [('author',
{'first_name': 'John', 'last_name': 'Doe'})])]
assert res == diffed
first = {}
second = {'author': {'last_name': 'Doe', 'first_name': 'John'}}
p = PathLimit([('author',)])
diffed = list(diff(first, second, path_limit=p, expand=True))
res = [('add', '', [('author',
{'first_name': 'John', 'last_name': 'Doe'})])]
assert res == diffed
first = {}
second = {'author': {'last_name': 'Doe', 'first_name': 'John'}}
p = PathLimit()
diffed = list(diff(first, second, path_limit=p, expand=True))
res = [('add', '', [('author', {})]),
('add', 'author', [('first_name', 'John')]),
('add', 'author', [('last_name', 'Doe')])]
assert len(diffed) == 3
def test_path_limit_change(self):
first = {'author': {'last_name': 'Do', 'first_name': 'John'}}
second = {'author': {'last_name': 'Doe', 'first_name': 'John'}}
p = PathLimit([('author',)])
diffed = list(diff(first, second, path_limit=p, expand=True))
res = [('change',
['author'],
({'first_name': 'John', 'last_name': 'Do'},
{'first_name': 'John', 'last_name': 'Doe'}))]
assert res == diffed
first = {'author': {'last_name': 'Do', 'first_name': 'John'}}
second = {'author': {'last_name': 'Doe', 'first_name': 'John'}}
p = PathLimit()
diffed = list(diff(first, second, path_limit=p, expand=True))
res = [('change', 'author.last_name', ('Do', 'Doe'))]
def test_pathlimit(self):
path_limit = PathLimit([('author', 'name')])
self.assertFalse(path_limit.path_is_limit(('author')))
self.assertTrue(path_limit.path_is_limit(('author', 'name')))
self.assertFalse(path_limit.path_is_limit(('author', 'name', 'foo')))
path_limit = PathLimit([('authors', '*')])
self.assertFalse(path_limit.path_is_limit(('authors')))
self.assertTrue(path_limit.path_is_limit(('authors', 'name')))
self.assertTrue(path_limit.path_is_limit(('authors', 1)))
self.assertTrue(path_limit.path_is_limit(('authors', 2)))
self.assertFalse(path_limit.path_is_limit(('authors', 'name', 'foo')))
def test_path_limit_deletion(self):
first = {'author': {'last_name': 'Doe', 'first_name': 'John'}}
second = {}
p = PathLimit([('author',)])
diffed = list(diff(first, second, path_limit=p, expand=True))
res = [('remove', '', [('author',
{'first_name': 'John', 'last_name': 'Doe'})])]
assert res == diffed
def test_change_set_order(self):
first = set(["changeA", "changeC", "changeB"])
second = set(["changeB", "changeC", "changeA"])
diffed = list(diff(first, second))
# There should be zero reported diffs
assert len(diffed) == 0
def test_expand_addition(self):
first = {}
second = {'foo': 'bar', 'apple': 'banana'}
diffed = list(diff(first, second, expand=True))
res = [('add', '', [('foo', 'bar')]),
('add', '', [('apple', 'banana')])]
assert len(diffed) == 2
for patch in res:
assert patch in diffed
def test_ignore_with_ignorecase(self):
class IgnoreCase(set):
def __contains__(self, key):
return set.__contains__(self, str(key).lower())
assert list(diff({'a': 1, 'b': 2}, {'A': 3, 'b': 4},
ignore=IgnoreCase('a'))) == [('change', 'b', (2, 4))]
def test_nodes(self):
first = {'a': {'b': {'c': 'd'}}}
second = {'a': {'b': {'c': 'd', 'e': 'f'}}}
diffed = next(diff(first, second))
assert ('add', 'a.b', [('e', 'f')]) == diffed