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",
45 cf_is_in_nlnet_mou2
="Yes"),
47 cf_budget_parent
=None,
50 cf_nlnet_milestone
="milestone 2",
53 assigned_to
="person2@example.com",
54 cf_is_in_nlnet_mou2
="Yes"),
56 self
.assertEqual([], budget_graph
.get_errors())
57 # pretty_print(budget_graph)
58 with
make_filesystem_and_report_if_error(self
) as filesystem
:
59 output_dir
= MockPath("/output_dir/", filesystem
=filesystem
)
60 write_budget_csv(budget_graph
, output_dir
)
61 self
.assertEqual(filesystem
.files
, {
64 '/output_dir/csvs.mdwn': b
"""\
67 [[!table format=csv file="/output_dir/milestone 1.csv"]]
70 [[!table format=csv file="/output_dir/milestone 2.csv"]]""",
71 '/output_dir/milestone 1.csv': b
"""\
72 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)
73 1,1000,1000,1000,1000,421,421,579,0,,0,,421,421,,421,2020-01-01
75 '/output_dir/milestone 2.csv': b
"""\
76 bug_id,excl_subtasks,inc_subtasks,fixed_excl_subtasks,fixed_inc_subtasks,req_excl_subtasks,paid_excl_subtasks
79 # TODO: add more test cases
82 if __name__
== "__main__":