~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_log.py

  • Committer: Tarmac
  • Author(s): Vincent Ladeuil
  • Date: 2017-01-30 14:42:05 UTC
  • mfrom: (6620.1.1 trunk)
  • Revision ID: tarmac-20170130144205-r8fh2xpmiuxyozpv
Merge  2.7 into trunk including fix for bug #1657238 [r=vila]

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2010 Canonical Ltd
 
1
# Copyright (C) 2005-2013, 2016 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
24
24
    registry,
25
25
    revision,
26
26
    revisionspec,
27
 
    symbol_versioning,
28
27
    tests,
 
28
    gpg,
 
29
    trace,
29
30
    )
30
31
 
31
32
 
251
252
        wt.commit(message='add file1 and file2')
252
253
        self.run_bzr('branch parent child')
253
254
        os.unlink('child/file1')
254
 
        file('child/file2', 'wb').write('hello\n')
 
255
        with file('child/file2', 'wb') as f: f.write('hello\n')
255
256
        self.run_bzr(['commit', '-m', 'remove file1 and modify file2',
256
257
            'child'])
257
258
        os.chdir('parent')
282
283
        self.checkDelta(logentry.delta, added=['file1', 'file2'])
283
284
 
284
285
 
 
286
class TestFormatSignatureValidity(tests.TestCaseWithTransport):
 
287
    class UTFLoopbackGPGStrategy(gpg.LoopbackGPGStrategy):
 
288
        def verify(self, content, testament):
 
289
            return (gpg.SIGNATURE_VALID,
 
290
                u'UTF8 Test \xa1\xb1\xc1\xd1\xe1\xf1 <jrandom@example.com>')
 
291
 
 
292
    def has_signature_for_revision_id(self, revision_id):
 
293
        return True
 
294
 
 
295
    def get_signature_text(self, revision_id):
 
296
        return ''
 
297
 
 
298
    def test_format_signature_validity_utf(self):
 
299
        """Check that GPG signatures containing UTF-8 names are formatted
 
300
        correctly."""
 
301
        # Monkey patch to use our UTF-8 generating GPGStrategy
 
302
        self.overrideAttr(gpg, 'GPGStrategy', self.UTFLoopbackGPGStrategy)
 
303
        wt = self.make_branch_and_tree('.')
 
304
        revid = wt.commit('empty commit')
 
305
        repo = wt.branch.repository
 
306
        # Monkey patch out checking if this rev is actually signed, since we
 
307
        # can't sign it without a heavier TestCase and LoopbackGPGStrategy
 
308
        # doesn't care anyways.
 
309
        self.overrideAttr(repo, 'has_signature_for_revision_id',
 
310
                self.has_signature_for_revision_id)
 
311
        self.overrideAttr(repo, 'get_signature_text', self.get_signature_text)
 
312
        out = log.format_signature_validity(revid, repo)
 
313
        self.assertEqual(
 
314
u'valid signature from UTF8 Test \xa1\xb1\xc1\xd1\xe1\xf1 <jrandom@example.com>',
 
315
                out)
 
316
 
 
317
 
285
318
class TestShortLogFormatter(TestCaseForLogFormatter):
286
319
 
287
320
    def test_trailing_newlines(self):
1310
1343
class TestLogWithBugs(TestCaseForLogFormatter, TestLogMixin):
1311
1344
 
1312
1345
    def setUp(self):
1313
 
        TestCaseForLogFormatter.setUp(self)
 
1346
        super(TestLogWithBugs, self).setUp()
1314
1347
        log.properties_handler_registry.register(
1315
1348
            'bugs_properties_handler',
1316
1349
            log._bugs_properties_handler)
1390
1423
class TestLogForAuthors(TestCaseForLogFormatter):
1391
1424
 
1392
1425
    def setUp(self):
1393
 
        TestCaseForLogFormatter.setUp(self)
 
1426
        super(TestLogForAuthors, self).setUp()
1394
1427
        self.wt = self.make_standard_commit('nicky',
1395
1428
            authors=['John Doe <jdoe@example.com>',
1396
1429
                     'Jane Rey <jrey@example.com>'])
1570
1603
    def assertLogRevnos(self, expected_revnos, b, start, end,
1571
1604
                        exclude_common_ancestry, generate_merge_revisions=True):
1572
1605
        # FIXME: the layering in log makes it hard to test intermediate levels,
1573
 
        # I wish adding filters with their parameters were easier...
 
1606
        # I wish adding filters with their parameters was easier...
1574
1607
        # -- vila 20100413
1575
1608
        iter_revs = log._calc_view_revisions(
1576
1609
            b, start, end, direction='reverse',
1627
1660
        request = log.make_log_request_dict(limit=10)
1628
1661
        log.Logger(b, request).show(log_formatter)
1629
1662
        # should have all three revisions:
1630
 
        self.assertEquals(len(log_formatter.revisions), 3)
 
1663
        self.assertEqual(len(log_formatter.revisions), 3)
1631
1664
 
1632
1665
        del log_formatter
1633
1666
        log_formatter = LogCatcher()
1635
1668
        request = log.make_log_request_dict(limit=10, levels=1)
1636
1669
        log.Logger(b, request).show(log_formatter)
1637
1670
        # should now only have 2 revisions:
1638
 
        self.assertEquals(len(log_formatter.revisions), 2)
 
1671
        self.assertEqual(len(log_formatter.revisions), 2)
 
1672