Skip to content

Commit c17fc1a

Browse files
committed
fix: TT-404 resolve comments
1 parent bb24a5a commit c17fc1a

File tree

9 files changed

+79
-114
lines changed

9 files changed

+79
-114
lines changed

V2/serverless.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ functions:
9494
x-azure-settings:
9595
methods:
9696
- GET
97-
route: time_entries/{id:?}
97+
route: time-entries/{id:?}
9898
authLevel: anonymous
9999

100100
delete_time_entry:

V2/tests/api/azure/time_entry_azure_endpoints_test.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import pytest
22
import json
3-
import pytest
43

54
import azure.functions as func
65

@@ -10,7 +9,7 @@
109
from time_tracker.time_entries import _infrastructure as infrastructure_time_entries
1110

1211

13-
TIME_ENTRY_URL = "/api/time_entries/"
12+
TIME_ENTRY_URL = "/api/time-entries/"
1413

1514

1615
@pytest.fixture(name='insert_time_entry')
@@ -83,8 +82,8 @@ def test__time_entry_azure_endpoint__returns_all_time_entries(
8382
test_db, time_entry_factory, insert_time_entry, activity_factory, insert_activity
8483
):
8584
inserted_activity = insert_activity(activity_factory(), test_db)
86-
existent_time_entries = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]")
87-
inserted_time_entries = insert_time_entry(existent_time_entries, test_db)
85+
time_entries_to_insert = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]")
86+
inserted_time_entries = insert_time_entry(time_entries_to_insert, test_db).__dict__
8887

8988
req = func.HttpRequest(method="GET", body=None, url=TIME_ENTRY_URL)
9089

@@ -100,8 +99,8 @@ def test__time_entry_azure_endpoint__returns_an_time_entry__when_time_entry_matc
10099
test_db, time_entry_factory, insert_time_entry, activity_factory, insert_activity
101100
):
102101
inserted_activity = insert_activity(activity_factory(), test_db)
103-
existent_time_entries = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]")
104-
inserted_time_entries = insert_time_entry(existent_time_entries, test_db)
102+
time_entries_to_insert = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]")
103+
inserted_time_entries = insert_time_entry(time_entries_to_insert, test_db).__dict__
105104

106105
req = func.HttpRequest(
107106
method="GET",
@@ -121,8 +120,8 @@ def test__get_time_entries_azure_endpoint__returns_a_status_code_400__when_time_
121120
test_db, time_entry_factory, insert_time_entry, activity_factory, insert_activity
122121
):
123122
inserted_activity = insert_activity(activity_factory(), test_db)
124-
existent_time_entries = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]")
125-
insert_time_entry(existent_time_entries, test_db)
123+
time_entries_to_insert = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]")
124+
insert_time_entry(time_entries_to_insert, test_db).__dict__
126125

127126
req = func.HttpRequest(
128127
method="GET",

V2/tests/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# flake8: noqa
2-
from fixtures import _activity_factory, _test_db, _create_fake_dao, _time_entry_factory,_insert_activity
2+
from fixtures import _activity_factory, _test_db, _time_entry_factory, _insert_activity

V2/tests/fixtures.py

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
import pytest
22
from faker import Faker
33

4-
import time_tracker.activities._domain as domain_activities
5-
import time_tracker.activities._infrastructure as infrastructure_activities
6-
import time_tracker.time_entries._domain as domain_time_entries
4+
import time_tracker.activities._domain as activities_domain
5+
import time_tracker.activities._infrastructure as activities_infrastructure
6+
import time_tracker.time_entries._domain as time_entries_domain
77
from time_tracker._infrastructure import DB
88

99

1010
@pytest.fixture(name='activity_factory')
11-
def _activity_factory() -> domain_activities.Activity:
11+
def _activity_factory() -> activities_domain.Activity:
1212
def _make_activity(
1313
name: str = Faker().name(),
1414
description: str = Faker().sentence(),
1515
deleted: bool = False,
1616
status: int = 1,
1717
):
18-
activity = domain_activities.Activity(
18+
activity = activities_domain.Activity(
1919
id=None,
2020
name=name,
2121
description=description,
@@ -34,15 +34,8 @@ def _test_db() -> DB:
3434
return db_fake
3535

3636

37-
@pytest.fixture(name='create_fake_dao')
38-
def _create_fake_dao() -> domain_activities.ActivitiesDao:
39-
db_fake = DB('sqlite:///:memory:')
40-
dao = infrastructure_activities.ActivitiesSQLDao(db_fake)
41-
return dao
42-
43-
4437
@pytest.fixture(name='time_entry_factory')
45-
def _time_entry_factory() -> domain_time_entries.TimeEntry:
38+
def _time_entry_factory() -> time_entries_domain.TimeEntry:
4639
def _make_time_entry(
4740
id=Faker().random_int(),
4841
start_date=str(Faker().date_time()),
@@ -56,7 +49,7 @@ def _make_time_entry(
5649
timezone_offset="300",
5750
project_id=Faker().random_int(),
5851
):
59-
time_entry = domain_time_entries.TimeEntry(
52+
time_entry = time_entries_domain.TimeEntry(
6053
id=id,
6154
start_date=start_date,
6255
owner_id=owner_id,
@@ -75,8 +68,8 @@ def _make_time_entry(
7568

7669
@pytest.fixture(name='insert_activity')
7770
def _insert_activity() -> dict:
78-
def _new_activity(activity: domain_activities.Activity, database: DB):
79-
dao = infrastructure_activities.ActivitiesSQLDao(database)
71+
def _new_activity(activity: activities_domain.Activity, database: DB):
72+
dao = activities_infrastructure.ActivitiesSQLDao(database)
8073
new_activity = dao.create(activity)
8174
return new_activity
8275
return _new_activity

V2/tests/integration/daos/time_entries_dao_test.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import pytest
2+
import typing
3+
24
from faker import Faker
35

46
import time_tracker.time_entries._domain as domain
@@ -69,3 +71,56 @@ def test_delete__returns_none__when_no_time_entry_matching_its_id_is_found(
6971
result = dao.delete(Faker().pyint())
7072

7173
assert result is None
74+
75+
76+
def test__get_all__returns_a_list_of_time_entries_dto_objects__when_one_or_more_time_entries_are_found_in_sql_database(
77+
test_db, create_fake_dao, time_entry_factory, insert_activity, activity_factory
78+
):
79+
80+
dao = create_fake_dao(test_db)
81+
inserted_activity = insert_activity(activity_factory(), dao.db)
82+
time_entries_to_insert = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]")
83+
inserted_time_entries = [dao.create(time_entries_to_insert)]
84+
85+
time_entry = dao.get_all()
86+
87+
assert isinstance(time_entry, typing.List)
88+
assert time_entry == inserted_time_entries
89+
90+
91+
def test__get_all__returns_an_empty_list__when_doesnt_found_any_time_entries_in_sql_database(
92+
test_db, create_fake_dao, insert_activity, activity_factory
93+
):
94+
dao = create_fake_dao(test_db)
95+
insert_activity(activity_factory(), dao.db)
96+
97+
time_entry = dao.get_all()
98+
assert time_entry == []
99+
100+
101+
def test__get_by_id__returns_a_time_entry_dto__when_found_one_time_entry_that_match_id_with_sql_database(
102+
test_db, create_fake_dao, time_entry_factory, insert_activity, activity_factory
103+
):
104+
dao = create_fake_dao(test_db)
105+
inserted_activity = insert_activity(activity_factory(), dao.db)
106+
time_entries_to_insert = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]")
107+
inserted_time_entries = dao.create(time_entries_to_insert)
108+
109+
time_entry = dao.get_by_id(time_entries_to_insert.id)
110+
111+
assert isinstance(time_entry, domain.TimeEntry)
112+
assert time_entry.id == inserted_time_entries.id
113+
assert time_entry == inserted_time_entries
114+
115+
116+
def test__get_by_id__returns_none__when_no_time_entry_matches_by_id(
117+
test_db, create_fake_dao, time_entry_factory, insert_activity, activity_factory
118+
):
119+
dao = create_fake_dao(test_db)
120+
inserted_activity = insert_activity(activity_factory(), dao.db)
121+
time_entries_to_insert = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]")
122+
dao.create(time_entries_to_insert)
123+
124+
time_entry = dao.get_by_id(Faker().pyint())
125+
126+
assert time_entry is None

V2/tests/integration/daos/time_entries_json_dao_test.py

Lines changed: 0 additions & 80 deletions
This file was deleted.

V2/time_tracker/_infrastructure/_db.py

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

33
from . import _config
44

5-
_TEST_DIALECT = "sqlite"
6-
75

86
class DB():
97
config = _config.load_config()
@@ -19,6 +17,4 @@ def get_session(self):
1917
self.metadata.create_all(self.engine)
2018
if self.connection is None:
2119
self.connection = self.engine.connect()
22-
if self.engine.dialect.name == _TEST_DIALECT:
23-
self.connection.execute("pragma foreign_keys=ON")
2420
return self.connection

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1+
import json
2+
3+
import azure.functions as func
4+
15
from time_tracker.time_entries._infrastructure import TimeEntriesSQLDao
26
from time_tracker.time_entries._domain import TimeEntryService, _use_cases
37
from time_tracker._infrastructure import DB
48

5-
import azure.functions as func
6-
import json
7-
89

910
def get_time_entries(req: func.HttpRequest) -> func.HttpResponse:
1011

V2/time_tracker/time_entries/_domain/_use_cases/_get_time_entry_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 TimeEntryService, TimeEntry
21
import typing
32

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

56
class GetTimeEntriesUseCase:
67
def __init__(self, time_entry_service: TimeEntryService):

0 commit comments

Comments
 (0)