Skip to content

Commit 8347c42

Browse files
committed
feat: TT-425-time-entries-summary
1 parent 6f78268 commit 8347c42

File tree

4 files changed

+12
-24
lines changed

4 files changed

+12
-24
lines changed

V2/tests/api/azure/time_entry_azure_endpoints_test.py

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -297,44 +297,33 @@ def test__time_entry_azure_endpoint__returns_the_summary(
297297
)
298298

299299
response = azure_time_entries.get_time_entries_summary(req)
300-
301300
time_entries_obtained = response.get_body().decode("utf-8")
302-
assert response.status_code == HTTPStatus.OK
301+
assert response.status_code == HTTPStatus.OK.value
303302
assert json.loads(time_entries_obtained) == [inserted_time_entries]
304303

305304

306305
def test__time_entry_summary_azure_endpoint__returns_not_found_with_invalid_owner_id(
307306
test_db, insert_activity, activity_factory
308307
):
309-
310308
insert_activity(activity_factory(), test_db)
311309

312310
request_params = {
313311
"method": 'GET',
314312
"body": None,
315313
"url": TIME_ENTRY_SUMMARY_URL,
316-
"params": {"owner_id": 96},
317-
}
318-
req_owner_id = func.HttpRequest(**request_params)
314+
"params": {"owner_id": Faker().pyint()}
315+
}
319316

317+
req_owner_id = func.HttpRequest(**request_params)
320318
response_owner_id = azure_time_entries._get_time_entries_summary.get_time_entries_summary(req_owner_id)
321319

322-
assert response_owner_id.status_code == HTTPStatus.NOT_FOUND
320+
assert response_owner_id.status_code == HTTPStatus.NOT_FOUND.value
323321
assert response_owner_id.get_body().decode() == ResponseEnums.NOT_FOUND.value
324322

325-
request_params["params"] = {"owner_id": 69, "start_date": "", "end_date": "11/11/2021"}
326-
req_start_date = func.HttpRequest(**request_params)
327-
328-
response_start_date = azure_time_entries._get_time_entries_summary.get_time_entries_summary(req_start_date)
329-
330-
assert response_start_date.status_code == HTTPStatus.NOT_FOUND
331-
assert response_start_date.get_body().decode() == ResponseEnums.NOT_FOUND.value
332-
333323

334324
def test__time_entry_summary_azure_endpoint__returns_invalid_date_format_with_invalid_date_format(
335325
test_db, insert_activity, activity_factory
336326
):
337-
338327
insert_activity(activity_factory(), test_db)
339328

340329
wrong_date_format = "30/11/2021"
@@ -350,13 +339,13 @@ def test__time_entry_summary_azure_endpoint__returns_invalid_date_format_with_in
350339
req_owner_id = func.HttpRequest(**request_params)
351340
response_owner_id = azure_time_entries._get_time_entries_summary.get_time_entries_summary(req_owner_id)
352341

353-
assert response_owner_id.status_code == HTTPStatus.NOT_FOUND
342+
assert response_owner_id.status_code == HTTPStatus.NOT_FOUND.value
354343
assert response_owner_id.get_body().decode() == ResponseEnums.INVALID_DATE_FORMAT.value
355344

356345
request_params["params"] = {"owner_id": 1, "start_date": right_date_format, "end_date": wrong_date_format}
357346
req_start_date = func.HttpRequest(**request_params)
358347

359348
response_start_date = azure_time_entries._get_time_entries_summary.get_time_entries_summary(req_start_date)
360349

361-
assert response_start_date.status_code == HTTPStatus.NOT_FOUND
350+
assert response_start_date.status_code == HTTPStatus.NOT_FOUND.value
362351
assert response_start_date.get_body().decode() == ResponseEnums.INVALID_DATE_FORMAT.value

V2/time_tracker/time_entries/_application/_time_entries/_get_time_entries_summary.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ def get_time_entries_summary(req: func.HttpRequest) -> func.HttpResponse:
5252
return func.HttpResponse(**response_params)
5353

5454

55-
def _validate_time_format(time: str, format: str = "%m/%d/%Y"):
55+
def _validate_time_format(time: str) -> bool:
5656
try:
57-
datetime.datetime.strptime(time, format)
57+
datetime.datetime.strptime(time, "%m/%d/%Y")
5858
except ValueError:
5959
return False
6060
return True

V2/time_tracker/time_entries/_domain/_use_cases/_get_time_entries_summary_use_case.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
from time_tracker.time_entries._domain import TimeEntry, TimeEntryService
21
import typing
32

3+
from time_tracker.time_entries._domain import TimeEntry, TimeEntryService
4+
45

56
class GetTimeEntriesSummaryUseCase:
67

V2/time_tracker/time_entries/_infrastructure/_data_persistence/_time_entries_sql_dao.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
import sqlalchemy
55
import sqlalchemy.sql as sql
6-
# from sqlalchemy import func
76

87
import time_tracker.time_entries._domain as domain
98
from time_tracker._infrastructure import _db
@@ -106,8 +105,7 @@ def get_latest_entries(self, owner_id: int, limit: int = 20) -> typing.List[doma
106105
list_time_entries = [dict(entry) for entry in time_entries_data]
107106
return list_time_entries if len(list_time_entries) > 0 else None
108107

109-
def get_time_entries_summary(self, owner_id: int, start_date: str, end_date: str,
110-
format: str = "%m/%d/%Y") -> typing.List[domain.TimeEntry]:
108+
def get_time_entries_summary(self, owner_id: int, start_date: str, end_date: str) -> typing.List[domain.TimeEntry]:
111109
query = (
112110
self.time_entry.select()
113111
.where(sqlalchemy.and_(self.time_entry.c.owner_id == owner_id,

0 commit comments

Comments
 (0)