diff options
Diffstat (limited to 'tests/unit/test_commands_budget.py')
| -rw-r--r-- | tests/unit/test_commands_budget.py | 42 |
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, |
