Mercurial > hg
annotate tests/test-dicthelpers.py @ 19178:4327687ca757
copies: refactor checkcopies() into a top level method
This moves checkcopies() out of mergecopies() and makes it a top level
function in the copies module. This allows extensions to override it. For
example, I'm developing a filelog replacement that doesn't have rev numbers
so all the rev number dependent implementation here needs to be replaced
by the extension.
No logic is changed in this commit.
author | Durham Goode <durham@fb.com> |
---|---|
date | Wed, 01 May 2013 10:44:21 -0700 |
parents | ed46c2b98b0d |
children |
rev | line source |
---|---|
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__) |