test-dicthelpers.py
59 lines
| 2.3 KiB
| text/x-python
|
PythonLexer
/ tests / test-dicthelpers.py
|
r18820 | from mercurial.dicthelpers import diff, join | ||
import unittest | ||||
import silenttestrunner | ||||
class testdicthelpers(unittest.TestCase): | ||||
def test_dicthelpers(self): | ||||
# empty dicts | ||||
self.assertEqual(diff({}, {}), {}) | ||||
self.assertEqual(join({}, {}), {}) | ||||
d1 = {} | ||||
d1['a'] = 'foo' | ||||
d1['b'] = 'bar' | ||||
d1['c'] = 'baz' | ||||
# same identity | ||||
self.assertEqual(diff(d1, d1), {}) | ||||
self.assertEqual(join(d1, d1), {'a': ('foo', 'foo'), | ||||
'b': ('bar', 'bar'), | ||||
'c': ('baz', 'baz')}) | ||||
# vs empty | ||||
self.assertEqual(diff(d1, {}), {'a': ('foo', None), | ||||
'b': ('bar', None), | ||||
'c': ('baz', None)}) | ||||
self.assertEqual(diff(d1, {}), {'a': ('foo', None), | ||||
'b': ('bar', None), | ||||
'c': ('baz', None)}) | ||||
d2 = {} | ||||
d2['a'] = 'foo2' | ||||
d2['b'] = 'bar' | ||||
d2['d'] = 'quux' | ||||
self.assertEqual(diff(d1, d2), {'a': ('foo', 'foo2'), | ||||
'c': ('baz', None), | ||||
'd': (None, 'quux')}) | ||||
self.assertEqual(join(d1, d2), {'a': ('foo', 'foo2'), | ||||
'b': ('bar', 'bar'), | ||||
'c': ('baz', None), | ||||
'd': (None, 'quux')}) | ||||
# with default argument | ||||
self.assertEqual(diff(d1, d2, 123), {'a': ('foo', 'foo2'), | ||||
'c': ('baz', 123), | ||||
'd': (123, 'quux')}) | ||||
self.assertEqual(join(d1, d2, 456), {'a': ('foo', 'foo2'), | ||||
'b': ('bar', 'bar'), | ||||
'c': ('baz', 456), | ||||
'd': (456, 'quux')}) | ||||
|
r18894 | # check that we compare against default | ||
self.assertEqual(diff(d1, d2, 'baz'), {'a': ('foo', 'foo2'), | ||||
'd': ('baz', 'quux')}) | ||||
self.assertEqual(diff(d1, d2, 'quux'), {'a': ('foo', 'foo2'), | ||||
'c': ('baz', 'quux')}) | ||||
|
r18820 | if __name__ == '__main__': | ||
silenttestrunner.main(__name__) | ||||