working on adding tests for write_budget_markdown
[utils.git] / src / budget_sync / test / test_write_budget_markdown.py
diff --git a/src/budget_sync/test/test_write_budget_markdown.py b/src/budget_sync/test/test_write_budget_markdown.py
new file mode 100644 (file)
index 0000000..8ff5956
--- /dev/null
@@ -0,0 +1,45 @@
+import unittest
+from budget_sync.config import Config
+from budget_sync.test.mock_bug import MockBug
+from budget_sync.test.mock_path import MockPath, DIR
+from budget_sync.test.test_mock_path import make_filesystem_and_report_if_error
+from budget_sync.budget_graph import BudgetGraph
+from budget_sync.write_budget_markdown import write_budget_markdown
+
+
+class TestWriteBudgetMarkdown(unittest.TestCase):
+    def test(self):
+        config = Config.from_str(
+            """
+            bugzilla_url = "https://bugzilla.example.com/"
+            [milestones]
+            [people."person1"]
+            output_markdown_file = "person1.mdwn"
+            [people."person2"]
+            output_markdown_file = "person2.mdwn"
+            """)
+        budget_graph = BudgetGraph([
+            MockBug(bug_id=1,
+                    cf_budget_parent=None,
+                    cf_budget="0",
+                    cf_total_budget="0",
+                    cf_nlnet_milestone=None,
+                    cf_payees_list="",
+                    summary=""),
+        ], config)
+        self.assertEqual([], budget_graph.get_errors())
+        with make_filesystem_and_report_if_error(self) as filesystem:
+            output_dir = MockPath("/output_dir/", filesystem=filesystem)
+            write_budget_markdown(budget_graph, output_dir)
+            self.assertEqual({
+                "/": DIR,
+                "/output_dir": DIR,
+                '/output_dir/person1.mdwn': b'<!-- autogenerated by '
+                b'budget-sync -->\n# person1\n\n# Status Tracking\n',
+                '/output_dir/person2.mdwn': b'<!-- autogenerated by '
+                b'budget-sync -->\n# person2\n\n# Status Tracking\n',
+            }, filesystem.files)
+
+
+if __name__ == "__main__":
+    unittest.main()