# Copyright (C) 2026 Danilo M. GPL-2.0-only import unittest from unittest.mock import MagicMock from types import SimpleNamespace import firefly_cli.commands.budget as budget def _ctx(client=None, resolver=None): return SimpleNamespace(client=client or MagicMock(), resolver=resolver or MagicMock(), human=False) class TestBudgetList(unittest.TestCase): def test_list_defaults_to_current_month(self): client = MagicMock() client.request.return_value = {"data": []} args = SimpleNamespace(start=None, end=None) rc = budget.cmd_list(args, _ctx(client=client)) self.assertEqual(rc, 0) _, kwargs = client.request.call_args params = kwargs["params"] self.assertTrue(params["start"].endswith("-01")) self.assertEqual(params["start"][:7], params["end"][:7]) def test_list_explicit_range(self): client = MagicMock() client.request.return_value = {"data": []} args = SimpleNamespace(start="2026-01-01", end="2026-01-31") budget.cmd_list(args, _ctx(client=client)) _, kwargs = client.request.call_args self.assertEqual(kwargs["params"], {"start": "2026-01-01", "end": "2026-01-31"}) if __name__ == "__main__": unittest.main()