##// END OF EJS Templates
histedit: more precise user message when changeset is missing...
histedit: more precise user message when changeset is missing Now that we explicitly detect duplicated changesets, we can explicitly detect missing ones. We cover the same cases as before, some others and we offer a better error message in all cases.

File last commit:

r18894:ed46c2b9 default
r19048:1163ff06 default
Show More
test-dicthelpers.py
59 lines | 2.3 KiB | text/x-python | PythonLexer
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')})
# 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')})
if __name__ == '__main__':
silenttestrunner.main(__name__)