Skip to content

Commit e3f5300

Browse files
committed
fix: TT-401 solution of comments, change of config
1 parent 103b8c1 commit e3f5300

File tree

6 files changed

+25
-32
lines changed

6 files changed

+25
-32
lines changed

V2/tests/api/azure/time_entry_azure_endpoints_test.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ def test__time_entry_azure_endpoint__creates_an_time_entry__when_time_entry_has_
1414
inserted_activity = insert_activity(activity_factory(), db)
1515
time_entry_body = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]").__dict__
1616

17-
azure_time_entries._create_time_entry._DATABASE = db
1817
body = json.dumps(time_entry_body).encode("utf-8")
1918
req = func.HttpRequest(
2019
method='POST',

V2/tests/fixtures.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ def _make_activity(
2525

2626
@pytest.fixture(name='create_fake_database')
2727
def _create_fake_database() -> DB:
28-
db_fake = DB('sqlite:///:memory:')
28+
db_fake = DB()
29+
db_fake.get_session().execute("pragma foreign_keys=ON")
2930
return db_fake
3031

3132

V2/tests/integration/daos/time_entries_dao_test.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,41 +7,42 @@
77

88

99
@pytest.fixture(name='create_fake_dao')
10-
def _create_fake_dao() -> domain.TimeEntriesDao:
11-
db_fake = DB('sqlite:///:memory:')
12-
dao = infrastructure.TimeEntriesSQLDao(db_fake)
13-
return dao
10+
def _fake_dao() -> domain.TimeEntriesDao:
11+
def _create_fake_dao(db_fake: DB) -> domain.TimeEntriesDao:
12+
dao = infrastructure.TimeEntriesSQLDao(db_fake)
13+
return dao
14+
return _create_fake_dao
1415

1516

1617
@pytest.fixture(name='clean_database', autouse=True)
1718
def _clean_database():
1819
yield
19-
db_fake = DB('sqlite:///:memory:')
20+
db_fake = DB()
2021
dao = infrastructure.TimeEntriesSQLDao(db_fake)
2122
query = dao.time_entry.delete()
2223
dao.db.get_session().execute(query)
2324

2425

2526
def test__time_entry__returns_a_time_entry_dto__when_saves_correctly_with_sql_database(
26-
time_entry_factory, create_fake_dao, insert_activity, activity_factory
27+
create_fake_database, time_entry_factory, create_fake_dao, insert_activity, activity_factory
2728
):
28-
dao = create_fake_dao
29+
dao = create_fake_dao(create_fake_database)
2930
inserted_activity = insert_activity(activity_factory(), dao.db)
3031

31-
existent_time_entry = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]")
32+
time_entry_to_insert = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]")
3233

33-
inserted_time_entry = dao.create(existent_time_entry)
34+
inserted_time_entry = dao.create(time_entry_to_insert)
3435

3536
assert isinstance(inserted_time_entry, domain.TimeEntry)
36-
assert inserted_time_entry == existent_time_entry
37+
assert inserted_time_entry == time_entry_to_insert
3738

3839

3940
def test__time_entry__returns_None__when_not_saves_correctly(
40-
time_entry_factory, create_fake_dao,
41+
time_entry_factory, create_fake_dao, create_fake_database
4142
):
42-
dao = create_fake_dao
43-
existent_time_entry = time_entry_factory(activity_id=1203, technologies="[jira,sql]")
43+
dao = create_fake_dao(create_fake_database)
44+
time_entry_to_insert = time_entry_factory(activity_id=1203, technologies="[jira,sql]")
4445

45-
inserted_time_entry = dao.create(existent_time_entry)
46+
inserted_time_entry = dao.create(time_entry_to_insert)
4647

4748
assert inserted_time_entry is None

V2/time_tracker/_infrastructure/_config.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,14 @@
66

77
class Config(typing.NamedTuple):
88
DB_CONNECTION_STRING: str
9-
DB_USER: str
10-
DB_PASS: str
11-
DB_NAME: str
129

1310

1411
def load_config():
12+
if os.environ.get("ENVIRONMENT") == "development":
13+
connection: str = os.environ.get("DB_CONNECTION")
14+
else:
15+
connection: str = os.environ.get("TEST_DB_CONNECTION")
16+
1517
return Config(
16-
CONNECTION_STRING if os.environ.get("DB_CONNECTION_STRING") is None else os.environ.get("DB_CONNECTION_STRING"),
17-
os.environ.get("DB_USER"),
18-
os.environ.get("DB_PASS"),
19-
os.environ.get("DB_NAME")
18+
CONNECTION_STRING if connection is None else connection
2019
)

V2/time_tracker/_infrastructure/_db.py

Lines changed: 0 additions & 5 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()
@@ -16,10 +14,7 @@ def __init__(self, conn_string: str = conn_string):
1614
self.engine = sqlalchemy.create_engine(conn_string)
1715

1816
def get_session(self):
19-
2017
self.metadata.create_all(self.engine)
2118
if self.connection is None:
2219
self.connection = self.engine.connect()
23-
if self.engine.dialect.name == _TEST_DIALECT:
24-
self.connection.execute("pragma foreign_keys=ON")
2520
return self.connection

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

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,10 @@
88
from ... import _infrastructure
99
from time_tracker._infrastructure import DB
1010

11-
_DATABASE = DB()
12-
1311

1412
def create_time_entry(req: func.HttpRequest) -> func.HttpResponse:
15-
16-
time_entry_dao = _infrastructure.TimeEntriesSQLDao(_DATABASE)
13+
database = DB()
14+
time_entry_dao = _infrastructure.TimeEntriesSQLDao(database)
1715
time_entry_service = _domain.TimeEntryService(time_entry_dao)
1816
use_case = _domain._use_cases.CreateTimeEntryUseCase(time_entry_service)
1917

0 commit comments

Comments
 (0)