File: test_templates.py

package info (click to toggle)
bugwarrior 1.8.0-13
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,280 kB
  • sloc: python: 9,226; makefile: 147
file content (96 lines) | stat: -rw-r--r-- 3,082 bytes parent folder | download | duplicates (6)
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)