/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/plugins/stats/test_stats.py

  • Committer: Breezy landing bot
  • Author(s): Colin Watson
  • Date: 2020-11-16 21:47:08 UTC
  • mfrom: (7521.1.1 remove-lp-workaround)
  • Revision ID: breezy.the.bot@gmail.com-20201116214708-jos209mgxi41oy15
Remove breezy.git workaround for bazaar.launchpad.net.

Merged from https://code.launchpad.net/~cjwatson/brz/remove-lp-workaround/+merge/393710

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from ...tests import TestCase, TestCaseWithTransport
 
2
from ...revision import Revision
 
3
from .cmds import get_revisions_and_committers, collapse_by_person
 
4
 
 
5
 
 
6
class TestGetRevisionsAndCommitters(TestCaseWithTransport):
 
7
 
 
8
    def test_simple(self):
 
9
        wt = self.make_branch_and_tree('.')
 
10
        wt.commit(message='1', committer='Fero <fero@example.com>', rev_id=b'1')
 
11
        wt.commit(message='2', committer='Fero <fero@example.com>', rev_id=b'2')
 
12
        wt.commit(message='3', committer='Jano <jano@example.com>', rev_id=b'3')
 
13
        wt.commit(message='4', committer='Jano <jano@example.com>',
 
14
                  authors=['Vinco <vinco@example.com>'], rev_id=b'4')
 
15
        wt.commit(message='5', committer='Ferko <fero@example.com>', rev_id=b'5')
 
16
        revs, committers = get_revisions_and_committers(wt.branch.repository,
 
17
                                                        [b'1', b'2', b'3', b'4', b'5'])
 
18
        fero = ('Fero', 'fero@example.com')
 
19
        jano = ('Jano', 'jano@example.com')
 
20
        vinco = ('Vinco', 'vinco@example.com')
 
21
        ferok = ('Ferko', 'fero@example.com')
 
22
        self.assertEqual({fero: fero, jano: jano, vinco: vinco, ferok: fero},
 
23
                         committers)
 
24
 
 
25
    def test_empty_email(self):
 
26
        wt = self.make_branch_and_tree('.')
 
27
        wt.commit(message='1', committer='Fero', rev_id=b'1')
 
28
        wt.commit(message='2', committer='Fero', rev_id=b'2')
 
29
        wt.commit(message='3', committer='Jano', rev_id=b'3')
 
30
        revs, committers = get_revisions_and_committers(wt.branch.repository,
 
31
                                                        [b'1', b'2', b'3'])
 
32
        self.assertEqual({('Fero', ''): ('Fero', ''),
 
33
                          ('Jano', ''): ('Jano', ''),
 
34
                          }, committers)
 
35
 
 
36
    def test_different_case(self):
 
37
        wt = self.make_branch_and_tree('.')
 
38
        wt.commit(message='1', committer='Fero', rev_id=b'1')
 
39
        wt.commit(message='2', committer='Fero', rev_id=b'2')
 
40
        wt.commit(message='3', committer='FERO', rev_id=b'3')
 
41
        revs, committers = get_revisions_and_committers(wt.branch.repository,
 
42
                                                        [b'1', b'2', b'3'])
 
43
        self.assertEqual({('Fero', ''): ('Fero', ''),
 
44
                          ('FERO', ''): ('Fero', ''),
 
45
                          }, committers)
 
46
        self.assertEquals([b'1', b'2', b'3'], sorted(
 
47
            [r.revision_id for r in revs]))
 
48
 
 
49
 
 
50
class TestCollapseByPerson(TestCase):
 
51
 
 
52
    def test_no_conflicts(self):
 
53
        revisions = [
 
54
            Revision('1', {}, committer='Foo <foo@example.com>'),
 
55
            Revision('2', {}, committer='Bar <bar@example.com>'),
 
56
            Revision('3', {}, committer='Bar <bar@example.com>'),
 
57
        ]
 
58
        foo = ('Foo', 'foo@example.com')
 
59
        bar = ('Bar', 'bar@example.com')
 
60
        committers = {foo: foo, bar: bar}
 
61
        info = collapse_by_person(revisions, committers)
 
62
        self.assertEquals(2, info[0][0])
 
63
        self.assertEquals({'bar@example.com': 2}, info[0][2])
 
64
        self.assertEquals({'Bar': 2}, info[0][3])
 
65
 
 
66
    def test_different_email(self):
 
67
        revisions = [
 
68
            Revision('1', {}, committer='Foo <foo@example.com>'),
 
69
            Revision('2', {}, committer='Foo <bar@example.com>'),
 
70
            Revision('3', {}, committer='Foo <bar@example.com>'),
 
71
        ]
 
72
        foo = ('Foo', 'foo@example.com')
 
73
        bar = ('Foo', 'bar@example.com')
 
74
        committers = {foo: foo, bar: foo}
 
75
        info = collapse_by_person(revisions, committers)
 
76
        self.assertEquals(3, info[0][0])
 
77
        self.assertEquals(
 
78
            {'foo@example.com': 1, 'bar@example.com': 2}, info[0][2])
 
79
        self.assertEquals({'Foo': 3}, info[0][3])
 
80
 
 
81
    def test_different_name(self):
 
82
        revisions = [
 
83
            Revision('1', {}, committer='Foo <foo@example.com>'),
 
84
            Revision('2', {}, committer='Bar <foo@example.com>'),
 
85
            Revision('3', {}, committer='Bar <foo@example.com>'),
 
86
        ]
 
87
        foo = ('Foo', 'foo@example.com')
 
88
        bar = ('Bar', 'foo@example.com')
 
89
        committers = {foo: foo, bar: foo}
 
90
        info = collapse_by_person(revisions, committers)
 
91
        self.assertEquals(3, info[0][0])
 
92
        self.assertEquals({'foo@example.com': 3}, info[0][2])
 
93
        self.assertEquals({'Foo': 1, 'Bar': 2}, info[0][3])
 
94
 
 
95
    def test_different_name_case(self):
 
96
        revisions = [
 
97
            Revision('1', {}, committer='Foo <foo@example.com>'),
 
98
            Revision('2', {}, committer='Foo <foo@example.com>'),
 
99
            Revision('3', {}, committer='FOO <bar@example.com>'),
 
100
        ]
 
101
        foo = ('Foo', 'foo@example.com')
 
102
        FOO = ('FOO', 'bar@example.com')
 
103
        committers = {foo: foo, FOO: foo}
 
104
        info = collapse_by_person(revisions, committers)
 
105
        self.assertEquals(3, info[0][0])
 
106
        self.assertEquals(
 
107
            {'foo@example.com': 2, 'bar@example.com': 1}, info[0][2])
 
108
        self.assertEquals({'Foo': 2, 'FOO': 1}, info[0][3])