Skip to content

Commit 1892ffe

Browse files
committed
refactor: TT-357 change directory from database file
1 parent 0b3b2ca commit 1892ffe

File tree

8 files changed

+77
-21
lines changed

8 files changed

+77
-21
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
from time_entries._domain import Activity, ActivitiesDao
2+
from time_entries._infrastructure import DataAccessLayerSQL,db, ActivitiesSQLDao
3+
4+
import pytest
5+
import typing
6+
7+
@pytest.fixture
8+
def _create_fake_database() -> ActivitiesDao:
9+
db.db_init('sqlite:///:memory:')
10+
query = db.activity.insert()
11+
demo_data = [
12+
{
13+
'id': 'c61a4a49-3364-49a3-a666-0c5f2d15072b',
14+
'name': 'Activity Demo create',
15+
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
16+
'description': 'test demo create an new activity',
17+
'status': 'active',
18+
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
19+
},
20+
{
21+
'id': 'c61a4a49-3364-49a3-a666-0c5f2d15072b',
22+
'name': 'Activity Demo create',
23+
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
24+
'description': 'test demo create an new activity',
25+
'status': 'active',
26+
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
27+
},
28+
]
29+
db.connection.execute(query, demo_data)
30+
return ActivitiesSQLDao(db)
31+
32+
def test__get_all__returns_a_list_of_activity_dto_objects__when_one_or_more_activities_are_found_in_sql_database(activitiesSqlDao: ActivitiesSQLDao):
33+
expected_result=[
34+
Activity(**{
35+
'id': 'c61a4a49-3364-49a3-a666-0c5f2d15072b',
36+
'name': 'Activity Demo create',
37+
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
38+
'description': 'test demo create an new activity',
39+
'status': 'active',
40+
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
41+
}),
42+
Activity(**{
43+
'id': 'c61a4a49-3364-49a3-a666-0c5f2d15072b',
44+
'name': 'Activity Demo create',
45+
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
46+
'description': 'test demo create an new activity',
47+
'status': 'active',
48+
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
49+
}),
50+
]
51+
results = activitiesSqlDao.get_all()
52+
assert expected_result == results

V2/time_entries/_application/_activities/_delete_activity.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from time_entries._infrastructure import ActivitiesJsonDao, ActivitiesSQLDao
1+
from time_entries._infrastructure import ActivitiesJsonDao, ActivitiesSQLDao, db
22
from time_entries._domain import ActivityService, _use_cases
33

44
import azure.functions as func
@@ -8,6 +8,7 @@
88
JSON_PATH = (
99
'time_entries/_infrastructure/_data_persistence/activities_data.json'
1010
)
11+
DATABASE = db
1112

1213

1314
def delete_activity(req: func.HttpRequest) -> func.HttpResponse:
@@ -33,5 +34,5 @@ def _delete(activity_id: str) -> str:
3334

3435
def _create_activity_service(path: str):
3536
activity_json = ActivitiesJsonDao(path)
36-
activity_sql = ActivitiesSQLDao()
37+
activity_sql = ActivitiesSQLDao(DATABASE)
3738
return ActivityService(activity_sql)

V2/time_entries/_application/_activities/_get_activities.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from time_entries._infrastructure import ActivitiesJsonDao, ActivitiesSQLDao
1+
from time_entries._infrastructure import ActivitiesJsonDao, ActivitiesSQLDao, db
22
from time_entries._domain import ActivityService, _use_cases
33

44
import azure.functions as func
@@ -8,6 +8,7 @@
88
JSON_PATH = (
99
'time_entries/_infrastructure/_data_persistence/activities_data.json'
1010
)
11+
DATABASE = db
1112

1213

1314
def get_activities(req: func.HttpRequest) -> func.HttpResponse:
@@ -52,5 +53,5 @@ def _get_all() -> str:
5253

5354
def _create_activity_service(path: str):
5455
activity_json = ActivitiesJsonDao(path)
55-
activity_sql = ActivitiesSQLDao()
56+
activity_sql = ActivitiesSQLDao(DATABASE)
5657
return ActivityService(activity_sql)
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
from ._data_persistence import ActivitiesJsonDao
22
from ._data_persistence import ActivitiesSQLDao
3-
3+
from ._data_persistence import db
4+
from ._data_persistence import DataAccessLayerSQL
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
from ._activities_json_dao import ActivitiesJsonDao
22
from ._activities_sql_dao import ActivitiesSQLDao
3+
from ._data_access_layer_sql import db
4+
from ._data_access_layer_sql import DataAccessLayerSQL
5+

V2/time_entries/_infrastructure/_data_persistence/_activities_sql_dao.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,47 @@
11
from time_entries._domain import ActivitiesDao, Activity
22
from sqlalchemy.sql import select
3-
from ..database import db
43
import dataclasses
54
import typing
65

76
class ActivitiesSQLDao(ActivitiesDao):
8-
def __init__(self):
7+
def __init__(self,database):
98
self.activity_keys = [
109
field.name for field in dataclasses.fields(Activity)
1110
]
12-
db.db_init()
11+
self.db = database
12+
self.db.db_init()
1313

1414

1515
#GET Activity by id
1616
def get_by_id(self, activity_id: str) -> Activity:
1717
"""search for the activity by the given id
1818
parameters: str (the id string of the searched activity)
1919
returns: Activity (The activity model with the response if found or a void if not)."""
20-
query = select(db.activity).where(db.activity.c.id == activity_id)
21-
activity = db.connection.execute(query).one()
20+
query = select(self.db.activity).where(self.db.activity.c.id == activity_id)
21+
activity = self.db.connection.execute(query).one()
2222
return self.__create_activity_dto(dict(activity)) if activity else None
2323

2424
def get_all(self) -> typing.List[Activity]:
25-
query = select(db.activity)
26-
result = db.connection.execute(query)
25+
query = select(self.db.activity)
26+
result = self.db.connection.execute(query)
2727
return [
2828
self.__create_activity_dto(dict(activity))
2929
for activity in result
3030
]
3131

3232
def create_activity(self, activity_data: dict) -> Activity:
33-
query = db.activity.insert().values(activity_data)
34-
activity = db.connection.execute(query)
33+
query = self.db.activity.insert().values(activity_data)
34+
activity = self.db.connection.execute(query)
3535
return self.__create_activity_dto(activity.last_inserted_params())
3636

3737
def delete(self, activity_id: str) -> Activity:
38-
query = db.activity.update().where(db.activity.c.id == activity_id).values(status = 'inactive')
39-
db.connection.execute(query)
38+
query = self.db.activity.update().where(self.db.activity.c.id == activity_id).values(status = 'inactive')
39+
self.db.connection.execute(query)
4040
return self.get_by_id(activity_id);
4141

4242
def update(self, activity_id: str, new_activity: dict) -> Activity:
43-
query = db.activity.update().where(db.activity.c.id==activity_id).values(new_activity)
44-
db.connection.execute(query)
43+
query = self.db.activity.update().where(self.db.activity.c.id==activity_id).values(new_activity)
44+
self.db.connection.execute(query)
4545
return self.get_by_id(activity_id)
4646

4747
def __create_activity_dto(self, activity: dict) -> Activity:

V2/time_entries/_infrastructure/database/data_access_layer_sql.py renamed to V2/time_entries/_infrastructure/_data_persistence/_data_access_layer_sql.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,5 +55,4 @@ def db_init(self, conn_string: str = conn_string):
5555
self.metadata.create_all(self.engine)
5656
self.connection = self.engine.connect()
5757

58-
db = DataAccessLayerSQL()
59-
58+
db = DataAccessLayerSQL()

V2/time_entries/_infrastructure/database/__init__.py

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)