def test_ordering(self): d1 = dict(a=['andy', 'john', dict(rel='brothers')]) d2 = dict(a=['john', 'andy', dict(rel='brothers')]) self.assertEqual(dict_compare(d1, d2), (False, "--- dict1\n+++ dict2\n\n" "<ordering> dict1.a: ['andy', 'john', {'rel': 'brothers'}]\n\n" " dict2.a: ['john', 'andy', {'rel': 'brothers'}]\n\n")) d2['a'][2]['rel'] = 'sisters' self.assertEqual(dict_compare(d1, d2), (True, "--- dict1\n+++ dict2\n\n" "< dict1.a: ['andy', 'john', {'rel': 'brothers'}]\n" "> dict2.a: ['john', 'andy', {'rel': 'sisters'}]\n")) d2 = dict(a=['andy', 'john', dict(rel='brothers')]) self.assertTrue(dict_compare(d1, d2)[0])
def test_basic(self): d1 = dict(a='foo') d2 = dict(a='foo') self.assertTrue(dict_compare(d1, d2)[0]) torf, txt = dict_compare(d1, dict(a='bar')) self.assertFalse(torf) self.assertEqual("""--- dict1 +++ dict2 < dict1.a: foo > dict2.a: bar """, txt)
def test_basic(self): d1 = dict(a='foo') d2 = dict(a='foo') self.assertTrue(dict_compare(d1, d2)[0]) torf, txt = dict_compare(d1, dict(a='bar')) self.assertFalse(torf) self.assertEqual( """--- dict1 +++ dict2 < dict1.a: foo > dict2.a: bar """, txt)
def test_depth(self): d1 = dict(a=dict(b=dict(c="c1", d="d1"))) self.assertEqual("""--- deep1 +++ deep2 + deep1.a.b.d: d1 """, dict_compare(d1, dict(a=dict(b=dict(c="c1"))), "deep1", "deep2")[1])
def test_add(self): d1 = dict(a='foo', b=1, c=[1, 2, 3]) self.assertEqual("""--- a and b +++ empty + a and b.a: foo + a and b.b: 1 + a and b.c: [1, 2, 3] """, dict_compare(d1, dict(), "a and b", "empty")[1])
def test_depth(self): d1 = dict(a=dict(b=dict(c="c1", d="d1"))) self.assertEqual( """--- deep1 +++ deep2 + deep1.a.b.d: d1 """, dict_compare(d1, dict(a=dict(b=dict(c="c1"))), "deep1", "deep2")[1])
def test_add(self): d1 = dict(a='foo', b=1, c=[1, 2, 3]) self.assertEqual( """--- a and b +++ empty + a and b.a: foo + a and b.b: 1 + a and b.c: [1, 2, 3] """, dict_compare(d1, dict(), "a and b", "empty")[1])
def test_ordering(self): d1 = dict(a=['andy', 'john', dict(rel='brothers')]) d2 = dict(a=['john', 'andy', dict(rel='brothers')]) self.assertEqual(( False, '--- dict1\n' '+++ dict2\n' '\n' "<ordering> dict1.a: ['andy', 'john', OrderedDict([('rel', 'brothers')])]\n" '\n' " dict2.a: ['john', 'andy', OrderedDict([('rel', 'brothers')])]\n" '\n'), dict_compare(d1, d2)) d2['a'][2]['rel'] = 'sisters' self.assertEqual(( False, '--- dict1\n' '+++ dict2\n' '\n' "< dict1.a: ['andy', 'john', OrderedDict([('rel', 'brothers')])]\n" "> dict2.a: ['john', 'andy', OrderedDict([('rel', 'sisters')])]\n" ), dict_compare(d1, d2)) d2 = dict(a=['andy', 'john', dict(rel='brothers')]) self.assertTrue(dict_compare(d1, d2)[0])
def test_filtr(self): d1 = dict(a='foo', b=dict(c=1, d=2), f=dict(c=1, d=17), d=111) d2 = dict(a='bar', b=dict(c=0, d=3), f=dict(c=1, d=17), d=43) def filtr(kv1, kv2) -> bool: return (kv1 and kv1[0].split('.')[-1] == 'd') or (kv2 and kv2[0].split('.')[-1] == 'd') self.assertEqual("""--- dict1 +++ dict2 < dict1.a: foo > dict2.a: bar < dict1.b.c: 1 > dict2.b.c: 0 """, dict_compare(d1, d2, filtr=filtr)[1])
def test_filtr(self): d1 = dict(a='foo', b=dict(c=1, d=2), f=dict(c=1, d=17), d=111) d2 = dict(a='bar', b=dict(c=0, d=3), f=dict(c=1, d=17), d=43) def filtr(kv1, kv2) -> bool: return (kv1 and kv1[0].split('.')[-1] == 'd') or (kv2 and kv2[0].split('.')[-1] == 'd') self.assertEqual( """--- dict1 +++ dict2 < dict1.a: foo > dict2.a: bar < dict1.b.c: 1 > dict2.b.c: 0 """, dict_compare(d1, d2, filtr=filtr)[1])