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