aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/test_commands_budget.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/test_commands_budget.py')
-rw-r--r--tests/unit/test_commands_budget.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/unit/test_commands_budget.py b/tests/unit/test_commands_budget.py
index b365d27..96452c1 100644
--- a/tests/unit/test_commands_budget.py
+++ b/tests/unit/test_commands_budget.py
@@ -119,6 +119,47 @@ class TestBudgetLifecycle(unittest.TestCase):
self.assertFalse(client.request.call_args[1]["body"]["active"])
+class TestBudgetUpdate(unittest.TestCase):
+ def _resolver(self):
+ r = MagicMock()
+ r.budget.return_value = {"id": "5", "name": "Rent"}
+ return r
+
+ def _args(self, **kw):
+ base = dict(ref="Rent", name=None, currency=None, auto_budget_amount=None,
+ auto_budget_period=None, auto_budget_type=None)
+ base.update(kw)
+ return SimpleNamespace(**base)
+
+ def test_rename_puts_name(self):
+ client = MagicMock()
+ client.request.return_value = {"data": {"id": "5", "attributes": {}}}
+ budget.cmd_update(self._args(name="Housing"),
+ _ctx(client=client, resolver=self._resolver()))
+ method, path = client.request.call_args[0][:2]
+ body = client.request.call_args[1]["body"]
+ self.assertEqual((method, path), ("PUT", "/api/v1/budgets/5"))
+ self.assertEqual(body, {"name": "Housing"})
+
+ def test_auto_budget_fields(self):
+ client = MagicMock()
+ client.request.return_value = {"data": {"id": "5", "attributes": {}}}
+ budget.cmd_update(
+ self._args(auto_budget_amount=500, auto_budget_period="monthly",
+ auto_budget_type="reset", currency="EUR"),
+ _ctx(client=client, resolver=self._resolver()))
+ body = client.request.call_args[1]["body"]
+ self.assertEqual(body["auto_budget_amount"], "500")
+ self.assertEqual(body["auto_budget_period"], "monthly")
+ self.assertEqual(body["auto_budget_type"], "reset")
+ self.assertEqual(body["currency_code"], "EUR")
+ self.assertNotIn("name", body)
+
+ def test_no_fields_errors(self):
+ with self.assertRaises(FireflyError):
+ budget.cmd_update(self._args(), _ctx(resolver=self._resolver()))
+
+
class TestBudgetLimit(unittest.TestCase):
def _resolver(self):
r = MagicMock()
@@ -168,6 +209,7 @@ class TestBudgetRegistration(unittest.TestCase):
expected = {
"budget list": budget.cmd_list,
"budget create": budget.cmd_create,
+ "budget update": budget.cmd_update,
"budget delete": budget.cmd_delete,
"budget enable": budget.cmd_enable,
"budget disable": budget.cmd_disable,