Mercurial > hg-stable
view tests/test-dicthelpers.py @ 22317:e1d5fcab58b6 stable
repoview: fix typo in repoview.changelog
Incidentally, this avoids the changelog cache being invalidated each time
it's accessed on a repoview.
On a filtering experiment on a repository the size of mozilla-central,
this makes a significant difference:
Before, running hg log -l 10 --time with about 8k changesets filtered out:
time: real 1.490 secs (user 1.450+0.000 sys 0.040+0.000)
After:
time: real 0.540 secs (user 0.530+0.000 sys 0.010+0.000)
author | Mike Hommey <mh@glandium.org> |
---|---|
date | Sun, 31 Aug 2014 19:43:03 +0900 |
parents | ed46c2b98b0d |
children |
line wrap: on
line source
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__)