-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtests.py
More file actions
66 lines (54 loc) · 2.97 KB
/
tests.py
File metadata and controls
66 lines (54 loc) · 2.97 KB
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
import unittest
from sprintly_commit_parser import CommitParser
def make_method(message, expected):
def run(self):
result = self.parse_commit(message)
self.assertEquals(expected, result)
return run
class MessagesTester(type):
def __new__(cls, name, bases, attrs):
cases = attrs.get('cases', [])
for doc, message, expected in cases:
test = make_method(message, expected)
test_name = 'test_commit_parser_%s' % doc.lower().replace(' ', '_')
test.__name__ = test_name
test.__doc__ = doc
attrs[test_name] = test
return super(MessagesTester, cls).__new__(cls, name, bases, attrs)
class CommitParserTests(unittest.TestCase):
__metaclass__ = MessagesTester
cases = [
['And', "Built teaser page with signup form that posts to the 'nubook' user's subscriber list. This closes #77 and #78 Ref #1",
[{'close_ticket': 77}, {'close_ticket': 78}, {'reference_ticket': 1}]],
['See', 'Added blah to blah. See: #1.', [{'reference_ticket': 1}]],
['See alternate', 'Added blah to blah. See: ticket:1.', [{'reference_ticket': 1}]],
['Fixes alternate', 'Added blah to blah. fixes ticket:1.', [{'close_ticket': 1}]],
['Closes alternate', 'Added blah to blah. closes item:1.', [{'close_ticket': 1}]],
['Closes defect alternate', 'Added blah to blah. closes defect:1.', [{'close_ticket': 1}]],
['Fixes', 'Added blah to blah. Fixes #1.', [{'close_ticket': 1}]],
['Fixes task', 'Added blah to blah. Fixes Task #1.', [{'close_ticket': 1}]],
['Refs task', 'Added blah to blah. Refs Task #1.', [{'reference_ticket': 1}]],
['References', 'References #1.', [{'reference_ticket': 1}]],
['Fixes and', 'Added blah to blah. Fixes #1 and #2', [{'close_ticket': 1},
{'close_ticket': 2}]],
['Fixes multiple and', 'Added blah to blah. Fixes #1, #4, and #2', [{'close_ticket': 1},
{'close_ticket': 4}, {'close_ticket': 2}]],
['Fixed', 'Added blah to blah. Fixed #1.', [{'close_ticket': 1}]],
['Fixes and again', "Stubbed out some from a table's properties. Fixes #4 and #5.",
[{'close_ticket': 4}, {'close_ticket': 5}]],
['Reopens and', "Stubbed out some from a table's properties. Reopens #4 and #5.",
[{'reopen_ticket': 4}, {'reopen_ticket': 5}]],
['Ref', 'Modified card popover to blockers when hovering a blocked card. Ref #123',
[{'reference_ticket': 123}]],
['Refs', 'Modified card popover to blockers when hovering a blocked card. Refs #123',
[{'reference_ticket': 123}]],
]
def setUp(self):
self.parse_commit = CommitParser()
def test_invalid_item_command(self):
"""Make sure invalid commands are not returned."""
message = 'Added a widget. Analyzes #33'
commands = self.parse_commit(message)
self.assertEquals([], commands)
if __name__ == '__main__':
unittest.main()