diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/unit/test_commands_budget.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/unit/test_commands_budget.py b/tests/unit/test_commands_budget.py index 0b1d89c..15e89c4 100644 --- a/tests/unit/test_commands_budget.py +++ b/tests/unit/test_commands_budget.py @@ -119,5 +119,44 @@ class TestBudgetLifecycle(unittest.TestCase): self.assertFalse(client.request.call_args[1]["body"]["active"]) +class TestBudgetLimit(unittest.TestCase): + def _resolver(self): + r = MagicMock() + r.budget.return_value = {"id": "5", "name": "Rent"} + return r + + def test_limit_list(self): + client = MagicMock() + client.request.return_value = {"data": []} + args = SimpleNamespace(ref="Rent") + rc = budget.cmd_limit_list(args, _ctx(client=client, resolver=self._resolver())) + self.assertEqual(rc, 0) + client.request.assert_called_with("GET", "/api/v1/budgets/5/limits") + + def test_limit_set_default_month(self): + client = MagicMock() + client.request.return_value = {"data": {"id": "1", "attributes": {}}} + args = SimpleNamespace(ref="Rent", amount="800", start=None, end=None, + currency=None) + budget.cmd_limit_set(args, _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), ("POST", "/api/v1/budgets/5/limits")) + self.assertEqual(body["amount"], "800") + self.assertTrue(body["start"].endswith("-01")) + self.assertEqual(body["start"][:7], body["end"][:7]) + + def test_limit_set_explicit_range_and_currency(self): + client = MagicMock() + client.request.return_value = {"data": {"id": "1", "attributes": {}}} + args = SimpleNamespace(ref="Rent", amount="800", start="2026-02-01", + end="2026-02-28", currency="EUR") + budget.cmd_limit_set(args, _ctx(client=client, resolver=self._resolver())) + body = client.request.call_args[1]["body"] + self.assertEqual(body["start"], "2026-02-01") + self.assertEqual(body["end"], "2026-02-28") + self.assertEqual(body["currency_code"], "EUR") + + if __name__ == "__main__": unittest.main() |
