--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-dicthelpers.py Mon Mar 25 17:40:39 2013 -0700
@@ -0,0 +1,53 @@
+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')})
+
+if __name__ == '__main__':
+ silenttestrunner.main(__name__)