Skip to content

Commit 7c803d2

Browse files
committed
Update tests
1 parent c5e71a0 commit 7c803d2

File tree

2 files changed

+32
-12
lines changed

2 files changed

+32
-12
lines changed

src/pyfirefly/pyfirefly.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import asyncio
66
import socket
77
from dataclasses import dataclass
8-
from datetime import date
8+
from datetime import datetime
99
from importlib import metadata
1010
from typing import Any, Self
1111
from urllib.parse import urlparse
@@ -152,7 +152,7 @@ async def _request(
152152

153153
return await response.json()
154154

155-
def _format_date(self, date_value: date | str) -> str:
155+
def _format_date(self, date_value: datetime | str) -> str:
156156
"""Format a date value to a string in 'YYYY-MM-DD' format.
157157
158158
Args:
@@ -162,7 +162,7 @@ def _format_date(self, date_value: date | str) -> str:
162162
A string formatted as 'YYYY-MM-DD'.
163163
164164
"""
165-
if isinstance(date_value, date):
165+
if isinstance(date_value, datetime):
166166
return date_value.strftime("%Y-%m-%d")
167167
return date_value
168168

@@ -209,8 +209,8 @@ async def get_accounts(self) -> list[Account]:
209209
async def get_transactions(
210210
self,
211211
account_id: int | None = None,
212-
start: date | None = None,
213-
end: date | None = None,
212+
start: datetime | None = None,
213+
end: datetime | None = None,
214214
) -> list[Transaction]:
215215
"""Get transactions for a specific account. Else, return all transactions.
216216
@@ -283,7 +283,12 @@ async def get_categories(self) -> list[Category]:
283283

284284
return [Category.from_dict(cat) for cat in categories]
285285

286-
async def get_category(self, category_id: int, start: date | None = None, end: date | None = None) -> Category:
286+
async def get_category(
287+
self,
288+
category_id: int,
289+
start: datetime | None = None,
290+
end: datetime | None = None,
291+
) -> Category:
287292
"""Get a specific category by its ID.
288293
289294
Args:
@@ -304,7 +309,7 @@ async def get_category(self, category_id: int, start: date | None = None, end: d
304309
category = await self._request(uri=f"categories/{category_id}", params=params)
305310
return Category.from_dict(category["data"])
306311

307-
async def get_budgets(self, start: date | None = None, end: date | None = None) -> list[Budget]:
312+
async def get_budgets(self, start: datetime | None = None, end: datetime | None = None) -> list[Budget]:
308313
"""Get budgets for the Firefly server. Both start and end dates are required for date range filtering.
309314
310315
Args:
@@ -323,7 +328,7 @@ async def get_budgets(self, start: date | None = None, end: date | None = None)
323328
budgets = await self._request(uri="budgets", params=params)
324329
return [Budget.from_dict(budget) for budget in budgets["data"]]
325330

326-
async def get_bills(self, start: date | None = None, end: date | None = None) -> list[Bill]:
331+
async def get_bills(self, start: datetime | None = None, end: datetime | None = None) -> list[Bill]:
327332
"""Get bills for the Firefly server. Both start and end dates are required for date range filtering.
328333
329334
Args:

tests/test_models.py

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from __future__ import annotations
44

5+
from datetime import datetime, timezone
56
from typing import TYPE_CHECKING
67

78
from aresponses import ResponsesMockServer
@@ -73,7 +74,11 @@ async def test_account_transactions_model(
7374
),
7475
)
7576

76-
transactions = await firefly_client.get_transactions(account_id=1, start="2025-01-01", end="2025-12-31")
77+
transactions = await firefly_client.get_transactions(
78+
account_id=1,
79+
start=datetime(2025, 1, 1, tzinfo=timezone.utc),
80+
end=datetime(2025, 12, 31, tzinfo=timezone.utc),
81+
)
7782
assert transactions == snapshot
7883

7984
# Now for all transactions
@@ -109,7 +114,11 @@ async def test_category_model(
109114
),
110115
)
111116

112-
category = await firefly_client.get_category(category_id=1, start="2025-01-01", end="2025-12-31")
117+
category = await firefly_client.get_category(
118+
category_id=1,
119+
start=datetime(2025, 1, 1, tzinfo=timezone.utc),
120+
end=datetime(2025, 12, 31, tzinfo=timezone.utc),
121+
)
113122
assert category == snapshot
114123

115124
# Now without a date range
@@ -166,7 +175,10 @@ async def test_budgets_model(
166175
),
167176
)
168177

169-
budgets = await firefly_client.get_budgets(start="2025-01-01", end="2025-12-31")
178+
budgets = await firefly_client.get_budgets(
179+
start=datetime(2025, 1, 1, tzinfo=timezone.utc),
180+
end=datetime(2025, 12, 31, tzinfo=timezone.utc),
181+
)
170182
assert budgets == snapshot
171183

172184
# Now without a date range
@@ -202,7 +214,10 @@ async def test_bills_model(
202214
),
203215
)
204216

205-
bills = await firefly_client.get_bills(start="2025-01-01", end="2025-12-31")
217+
bills = await firefly_client.get_bills(
218+
start=datetime(2025, 1, 1, tzinfo=timezone.utc),
219+
end=datetime(2025, 12, 31, tzinfo=timezone.utc),
220+
)
206221
assert bills == snapshot
207222

208223
# Now without a date range

0 commit comments

Comments
 (0)