/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: Jelmer Vernooij
  • Date: 2017-05-21 12:41:27 UTC
  • mto: This revision was merged to the branch mainline in revision 6623.
  • Revision ID: jelmer@jelmer.uk-20170521124127-iv8etg0vwymyai6y
s/bzr/brz/ in apport config.

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])