Skip to content

Commit 1c6fac5

Browse files
committed
feat: TT-403 merge resolved
2 parents 54eeb7e + 9b333e2 commit 1c6fac5

File tree

5 files changed

+59
-12
lines changed

5 files changed

+59
-12
lines changed

V2/tests/api/azure/time_entry_azure_endpoints_test.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@
1010
from time_tracker._infrastructure import DB
1111
from time_tracker.time_entries import _domain
1212

13+
from time_tracker.time_entries._application import _time_entries as time_entries
14+
15+
import azure.functions as func
16+
import json
1317

1418

1519
TIME_ENTRY_URL = "/api/time-entries/"
@@ -19,8 +23,9 @@
1923
def _insert_time_entry() -> dict:
2024
def _new_time_entry(time_entry: _domain.TimeEntry, database: DB):
2125
dao = infrastructure.TimeEntriesSQLDao(database)
22-
new_time_entry = dao.create(time_entry)
23-
return new_time_entry.__dict__
26+
query = dao.time_entry.insert(time_entry.__dict__)
27+
new_time_entry = dao.db.get_session().execute(query)
28+
return new_time_entry
2429
return _new_time_entry
2530

2631

@@ -81,6 +86,9 @@ def test__delete_time_entries_azure_endpoint__returns_an_time_entry_with_true_de
8186

8287

8388

89+
def test__delete_time_entries_azure_endpoint__returns_an_time_entry_with_true_deleted__when_its_id_is_found(
90+
create_temp_time_entries,
91+
):
8492
time_entries_json, tmp_directory = create_temp_time_entries
8593
time_entries.delete_time_entry.JSON_PATH = tmp_directory
8694
req = func.HttpRequest(
@@ -90,7 +98,6 @@ def test__delete_time_entries_azure_endpoint__returns_an_time_entry_with_true_de
9098
route_params={"id": time_entries_json[0]["id"]},
9199
)
92100

93-
94101
response = time_entries.delete_time_entry(req)
95102
time_entry_json_data = json.loads(response.get_body().decode("utf-8"))
96103

V2/tests/fixtures.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import pytest
22
import json
3-
import pytest
43
import shutil
54
from faker import Faker
65

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import json
2+
import pytest
3+
import typing
4+
5+
from faker import Faker
6+
7+
from time_tracker.time_entries._infrastructure import TimeEntriesJsonDao
8+
from time_tracker.time_entries._domain import TimeEntry
9+
10+
11+
@pytest.fixture(name="create_fake_time_entries")
12+
def _create_fake_time_entries(mocker) -> typing.List[TimeEntry]:
13+
def _creator(time_entries):
14+
read_data = json.dumps(time_entries)
15+
mocker.patch("builtins.open", mocker.mock_open(read_data=read_data))
16+
return [TimeEntry(**time_entry) for time_entry in time_entries]
17+
18+
return _creator
19+
20+
21+
def test_delete__returns_an_time_entry_with_true_deleted__when_an_time_entry_matching_its_id_is_found(
22+
create_fake_time_entries, time_entry_factory
23+
):
24+
time_entries_json_dao = TimeEntriesJsonDao(Faker().file_path())
25+
time_entries = create_fake_time_entries(
26+
[
27+
time_entry_factory().__dict__
28+
]
29+
)
30+
31+
time_entry_dto = time_entries[0]
32+
result = time_entries_json_dao.delete(time_entry_dto.id)
33+
34+
assert result.deleted is True
35+
36+
37+
def test_delete__returns_none__when_no_time_entry_matching_its_id_is_found(
38+
create_fake_time_entries,
39+
):
40+
time_entries_json_dao = TimeEntriesJsonDao(Faker().file_path())
41+
create_fake_time_entries([])
42+
43+
result = time_entries_json_dao.delete(Faker().pyint())
44+
45+
assert result is None

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

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,13 @@ def __create_time_entry_dto(self, time_entry: dict) -> TimeEntry:
3636
time_entry = {key: time_entry.get(key) for key in self.time_entry_keys}
3737
return TimeEntry(**time_entry)
3838

39-
def get_by_id(self, time_entry_id: int) -> domain.TimeEntry:
40-
query = sql.select(self.time_entry).where(self.time_entry.c.id == time_entry_id)
41-
time_entry = self.db.get_session().execute(query).one_or_none()
42-
return self.__create_time_entry_dto(dict(time_entry)) if time_entry else None
43-
4439
def delete(self, time_entry_id: int) -> TimeEntry:
45-
4640
query = (
4741
self.time_entry.update()
4842
.where(self.time_entry.c.id == time_entry_id)
4943
.values({"deleted": True})
5044
)
5145
self.db.get_session().execute(query)
52-
return self.get_by_id(time_entry_id)
46+
query_deleted_time_entry = sql.select(self.time_entry).where(self.time_entry.c.id == time_entry_id)
47+
time_entry = self.db.get_session().execute(query_deleted_time_entry).one_or_none()
48+
return self.__create_time_entry_dto(dict(time_entry)) if time_entry else None
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[{"id": 1, "start_date": "12/07/2021", "owner_id": 2, "description": "Review system of Time Tracker", "activity_id": 2, "uri": "http://time_tracker.com", "technologies": ["git", "jira", "python"], "end_date": "12/07/2021", "deleted": false, "timezone_offset": "300", "project_id": 1}, {"id": 2, "start_date": "12/07/2021", "owner_id": 2, "description": "Review system of doors in the ioet office Loja, change the current raspberry pi ", "activity_id": 2, "uri": null, "technologies": ["git", "jira", "python"], "end_date": "12/07/2021", "deleted": true, "timezone_offset": "300", "project_id": 1}]
1+
[{"id": 1, "start_date": "12/07/2021", "owner_id": 2, "description": "Review system of Time Tracker", "activity_id": 2, "uri": "http://time_tracker.com", "technologies": ["git", "jira", "python"], "end_date": "12/07/2021", "deleted": true, "timezone_offset": "300", "project_id": 1}, {"id": 2, "start_date": "12/07/2021", "owner_id": 2, "description": "Review system of doors in the ioet office Loja, change the current raspberry pi ", "activity_id": 2, "uri": null, "technologies": ["git", "jira", "python"], "end_date": "12/07/2021", "deleted": false, "timezone_offset": "300", "project_id": 1}]

0 commit comments

Comments
 (0)