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
12 class TestWriteBudgetMarkdown(unittest
.TestCase
):
15 def test_display_status(self
):
16 for status
in BugStatus
:
17 DisplayStatus
.from_status(status
)
19 def test_markdown_escape(self
):
20 self
.assertEqual(markdown_escape("abc * def_k < &k"),
21 r
"abc \* def\_k < &k")
24 config
= Config
.from_str(
26 bugzilla_url = "https://bugzilla.example.com/"
29 email = "person1@example.com"
30 output_markdown_file = "person1.mdwn"
32 output_markdown_file = "person2.mdwn"
34 budget_graph
= BudgetGraph([
36 cf_budget_parent
=None,
39 cf_nlnet_milestone
=None,
42 assigned_to
="person1@example.com"),
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
)
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',
56 # TODO: add more test cases
59 if __name__
== "__main__":