remove the not-yet-started section from output markdown
[utils.git] / src / budget_sync / test / test_write_budget_markdown.py
1 import unittest
2 from budget_sync.config import Config
3 from budget_sync.test.mock_bug import MockBug
4 from budget_sync.test.mock_path import MockPath, DIR
5 from budget_sync.test.test_mock_path import make_filesystem_and_report_if_error
6 from budget_sync.budget_graph import BudgetGraph
7 from budget_sync.write_budget_markdown import (
8 write_budget_markdown, DisplayStatus, markdown_escape)
9 from budget_sync.util import BugStatus
10
11
12 class TestWriteBudgetMarkdown(unittest.TestCase):
13 maxDiff = None
14
15 def test_display_status(self):
16 for status in BugStatus:
17 DisplayStatus.from_status(status)
18
19 def test_markdown_escape(self):
20 self.assertEqual(markdown_escape("abc * def_k < &k"),
21 r"abc \* def\_k &lt; &amp;k")
22
23 def test(self):
24 config = Config.from_str(
25 """
26 bugzilla_url = "https://bugzilla.example.com/"
27 [milestones]
28 [people."person1"]
29 email = "person1@example.com"
30 output_markdown_file = "person1.mdwn"
31 [people."person2"]
32 output_markdown_file = "person2.mdwn"
33 """)
34 budget_graph = BudgetGraph([
35 MockBug(bug_id=1,
36 cf_budget_parent=None,
37 cf_budget="0",
38 cf_total_budget="0",
39 cf_nlnet_milestone=None,
40 cf_payees_list="",
41 summary="",
42 assigned_to="person1@example.com"),
43 ], config)
44 self.assertEqual([], budget_graph.get_errors())
45 with make_filesystem_and_report_if_error(self) as filesystem:
46 output_dir = MockPath("/output_dir/", filesystem=filesystem)
47 write_budget_markdown(budget_graph, output_dir)
48 self.assertEqual({
49 "/": DIR,
50 "/output_dir": DIR,
51 '/output_dir/person1.mdwn': b'<!-- autogenerated by '
52 b'budget-sync -->\n# person1\n\n# Status Tracking\n',
53 '/output_dir/person2.mdwn': b'<!-- autogenerated by '
54 b'budget-sync -->\n# person2\n\n# Status Tracking\n',
55 }, filesystem.files)
56 # TODO: add more test cases
57
58
59 if __name__ == "__main__":
60 unittest.main()