1 from budget_sync
.budget_graph
import BudgetGraph
2 from budget_sync
.config
import Config
3 from budget_sync
.test
.mock_path
import DIR
, MockPath
4 from budget_sync
.test
.test_mock_path
import make_filesystem_and_report_if_error
5 from budget_sync
.util
import pretty_print
6 from budget_sync
.write_budget_csv
import write_budget_csv
7 from budget_sync
.test
.mock_bug
import MockBug
11 class TestWriteBudgetMarkdown(unittest
.TestCase
):
15 config
= Config
.from_str(
17 bugzilla_url = "https://bugzilla.example.com/"
19 aliases = ["person1_alias1", "alias1"]
20 full_name = "Person One"
22 email = "person2@example.com"
23 aliases = ["person1_alias2", "alias2", "person 2"]
24 full_name = "Person Two"
26 email = "user@example.com"
27 full_name = "Person Three"
29 "milestone 1" = { canonical_bug_id = 1 }
30 "milestone 2" = { canonical_bug_id = 2 }
32 budget_graph
= BudgetGraph([
34 cf_budget_parent
=None,
36 cf_total_budget
="1000",
37 cf_nlnet_milestone
="milestone 1",
41 person2 = {amount=421,paid=2020-01-01}
44 assigned_to
="person2@example.com"),
46 cf_budget_parent
=None,
49 cf_nlnet_milestone
="milestone 2",
52 assigned_to
="person2@example.com"),
54 self
.assertEqual([], budget_graph
.get_errors())
55 # pretty_print(budget_graph)
56 with
make_filesystem_and_report_if_error(self
) as filesystem
:
57 output_dir
= MockPath("/output_dir/", filesystem
=filesystem
)
58 write_budget_csv(budget_graph
, output_dir
)
59 self
.assertEqual(filesystem
.files
, {
62 '/output_dir/csvs.mdwn': b
"""\
65 [[!table format=csv file="/output_dir/milestone 1.csv"]]
68 [[!table format=csv file="/output_dir/milestone 2.csv"]]""",
69 '/output_dir/milestone 1.csv': b
"""\
70 bug_id,excl_subtasks,inc_subtasks,fixed_excl_subtasks,fixed_inc_subtasks,req_excl_subtasks,paid_excl_subtasks,person1 (planned amt),person1 (req amt),person1 (req date),person1 (paid amt),person1 (paid date),person2 (planned amt),person2 (req amt),person2 (req date),person2 (paid amt),person2 (paid date)
71 1,1000,1000,1000,1000,421,421,579,0,,0,,421,421,,421,2020-01-01
73 '/output_dir/milestone 2.csv': b
"""\
74 bug_id,excl_subtasks,inc_subtasks,fixed_excl_subtasks,fixed_inc_subtasks,req_excl_subtasks,paid_excl_subtasks
77 # TODO: add more test cases
80 if __name__
== "__main__":