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
|
from bugwarrior.services import Issue
from .base import ServiceTest
class TestTemplates(ServiceTest):
def setUp(self):
super(TestTemplates, self).setUp()
self.arbitrary_default_description = 'Construct Library on Terminus'
self.arbitrary_issue = {
'project': 'end_of_empire',
'priority': 'H',
}
def get_issue(
self, templates=None, issue=None, description=None, add_tags=None
):
templates = {} if templates is None else templates
origin = {
'annotation_length': 100, # Arbitrary
'default_priority': 'H', # Arbitrary
'description_length': 100, # Arbitrary
'templates': templates,
'shorten': False, # Arbitrary
'add_tags': add_tags if add_tags else [],
}
issue = Issue({}, origin)
issue.to_taskwarrior = lambda: (
self.arbitrary_issue if description is None else description
)
issue.get_default_description = lambda: (
self.arbitrary_default_description
if description is None else description
)
return issue
def test_default_taskwarrior_record(self):
issue = self.get_issue({})
record = issue.get_taskwarrior_record()
expected_record = self.arbitrary_issue.copy()
expected_record.update({
'description': self.arbitrary_default_description,
'tags': [],
})
self.assertEqual(record, expected_record)
def test_override_description(self):
description_template = "{{ priority }} - {{ description }}"
issue = self.get_issue({
'description': description_template
})
record = issue.get_taskwarrior_record()
expected_record = self.arbitrary_issue.copy()
expected_record.update({
'description': '%s - %s' % (
self.arbitrary_issue['priority'],
self.arbitrary_default_description,
),
'tags': [],
})
self.assertEqual(record, expected_record)
def test_override_project(self):
project_template = "wat_{{ project|upper }}"
issue = self.get_issue({
'project': project_template
})
record = issue.get_taskwarrior_record()
expected_record = self.arbitrary_issue.copy()
expected_record.update({
'description': self.arbitrary_default_description,
'project': 'wat_%s' % self.arbitrary_issue['project'].upper(),
'tags': [],
})
self.assertEqual(record, expected_record)
def test_tag_templates(self):
issue = self.get_issue(add_tags=['one', '{{ project }}'])
record = issue.get_taskwarrior_record()
expected_record = self.arbitrary_issue.copy()
expected_record.update({
'description': self.arbitrary_default_description,
'tags': ['one', self.arbitrary_issue['project']]
})
self.assertEqual(record, expected_record)
|