author | Pierre-Yves David <pierre-yves.david@fb.com> |
Sat, 12 Apr 2014 00:38:15 -0400 | |
changeset 21020 | 5041163ee382 |
parent 18894 | ed46c2b98b0d |
permissions | -rw-r--r-- |
18820
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
1 |
from mercurial.dicthelpers import diff, join |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
2 |
import unittest |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
3 |
import silenttestrunner |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
4 |
|
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
5 |
class testdicthelpers(unittest.TestCase): |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
6 |
def test_dicthelpers(self): |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
7 |
# empty dicts |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
8 |
self.assertEqual(diff({}, {}), {}) |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
9 |
self.assertEqual(join({}, {}), {}) |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
10 |
|
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
11 |
d1 = {} |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
12 |
d1['a'] = 'foo' |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
13 |
d1['b'] = 'bar' |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
14 |
d1['c'] = 'baz' |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
15 |
|
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
16 |
# same identity |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
17 |
self.assertEqual(diff(d1, d1), {}) |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
18 |
self.assertEqual(join(d1, d1), {'a': ('foo', 'foo'), |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
19 |
'b': ('bar', 'bar'), |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
20 |
'c': ('baz', 'baz')}) |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
21 |
|
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
22 |
# vs empty |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
23 |
self.assertEqual(diff(d1, {}), {'a': ('foo', None), |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
24 |
'b': ('bar', None), |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
25 |
'c': ('baz', None)}) |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
26 |
self.assertEqual(diff(d1, {}), {'a': ('foo', None), |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
27 |
'b': ('bar', None), |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
28 |
'c': ('baz', None)}) |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
29 |
|
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
30 |
d2 = {} |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
31 |
d2['a'] = 'foo2' |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
32 |
d2['b'] = 'bar' |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
33 |
d2['d'] = 'quux' |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
34 |
|
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
35 |
self.assertEqual(diff(d1, d2), {'a': ('foo', 'foo2'), |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
36 |
'c': ('baz', None), |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
37 |
'd': (None, 'quux')}) |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
38 |
self.assertEqual(join(d1, d2), {'a': ('foo', 'foo2'), |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
39 |
'b': ('bar', 'bar'), |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
40 |
'c': ('baz', None), |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
41 |
'd': (None, 'quux')}) |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
42 |
|
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
43 |
# with default argument |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
44 |
self.assertEqual(diff(d1, d2, 123), {'a': ('foo', 'foo2'), |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
45 |
'c': ('baz', 123), |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
46 |
'd': (123, 'quux')}) |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
47 |
self.assertEqual(join(d1, d2, 456), {'a': ('foo', 'foo2'), |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
48 |
'b': ('bar', 'bar'), |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
49 |
'c': ('baz', 456), |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
50 |
'd': (456, 'quux')}) |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
51 |
|
18894
ed46c2b98b0d
dicthelpers.diff: compare against default for missing values
Siddharth Agarwal <sid0@fb.com>
parents:
18820
diff
changeset
|
52 |
# check that we compare against default |
ed46c2b98b0d
dicthelpers.diff: compare against default for missing values
Siddharth Agarwal <sid0@fb.com>
parents:
18820
diff
changeset
|
53 |
self.assertEqual(diff(d1, d2, 'baz'), {'a': ('foo', 'foo2'), |
ed46c2b98b0d
dicthelpers.diff: compare against default for missing values
Siddharth Agarwal <sid0@fb.com>
parents:
18820
diff
changeset
|
54 |
'd': ('baz', 'quux')}) |
ed46c2b98b0d
dicthelpers.diff: compare against default for missing values
Siddharth Agarwal <sid0@fb.com>
parents:
18820
diff
changeset
|
55 |
self.assertEqual(diff(d1, d2, 'quux'), {'a': ('foo', 'foo2'), |
ed46c2b98b0d
dicthelpers.diff: compare against default for missing values
Siddharth Agarwal <sid0@fb.com>
parents:
18820
diff
changeset
|
56 |
'c': ('baz', 'quux')}) |
ed46c2b98b0d
dicthelpers.diff: compare against default for missing values
Siddharth Agarwal <sid0@fb.com>
parents:
18820
diff
changeset
|
57 |
|
18820
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
58 |
if __name__ == '__main__': |
a45e44d76c81
mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
59 |
silenttestrunner.main(__name__) |