From 1709cba395978ef87ad41a7d0833c20d573c259e Mon Sep 17 00:00:00 2001 From: Alexander Date: Tue, 16 Nov 2021 12:22:08 -0500 Subject: [PATCH] refactor: TT-401 fixtures changed --- .../azure/activity_azure_endpoints_test.py | 23 ++++--------------- .../azure/time_entry_azure_endpoints_test.py | 15 +----------- V2/tests/conftest.py | 2 +- V2/tests/fixtures.py | 10 ++++++++ .../daos/activities_sql_dao_test.py | 18 ++++----------- .../integration/daos/time_entries_dao_test.py | 15 ++---------- .../_time_entries/_create_time_entry.py | 2 +- .../time_entries/_infrastructure/__init__.py | 2 +- .../_data_persistence/__init__.py | 2 +- .../_data_persistence/_time_entries_dao.py | 2 +- 10 files changed, 28 insertions(+), 63 deletions(-) diff --git a/V2/tests/api/azure/activity_azure_endpoints_test.py b/V2/tests/api/azure/activity_azure_endpoints_test.py index 9b2618a8..342b3740 100644 --- a/V2/tests/api/azure/activity_azure_endpoints_test.py +++ b/V2/tests/api/azure/activity_azure_endpoints_test.py @@ -1,34 +1,21 @@ -import pytest import json from faker import Faker import azure.functions as func import time_tracker.activities._application._activities as azure_activities -import time_tracker.activities._infrastructure as infrastructure -from time_tracker._infrastructure import DB -from time_tracker.activities import _domain ACTIVITY_URL = '/api/activities/' -@pytest.fixture(name='insert_activity') -def _insert_activity() -> dict: - def _new_activity(activity: _domain.Activity, database: DB): - dao = infrastructure.ActivitiesSQLDao(database) - new_activity = dao.create(activity) - return new_activity.__dict__ - return _new_activity - - def test__activity_azure_endpoint__returns_all_activities( create_fake_database, activity_factory, insert_activity ): fake_database = create_fake_database existent_activities = [activity_factory(), activity_factory()] inserted_activities = [ - insert_activity(existent_activities[0], fake_database), - insert_activity(existent_activities[1], fake_database) + insert_activity(existent_activities[0], fake_database).__dict__, + insert_activity(existent_activities[1], fake_database).__dict__ ] azure_activities._get_activities.DATABASE = fake_database @@ -45,7 +32,7 @@ def test__activity_azure_endpoint__returns_an_activity__when_activity_matches_it ): fake_database = create_fake_database existent_activity = activity_factory() - inserted_activity = insert_activity(existent_activity, fake_database) + inserted_activity = insert_activity(existent_activity, fake_database).__dict__ azure_activities._get_activities.DATABASE = fake_database req = func.HttpRequest( @@ -67,7 +54,7 @@ def test__activity_azure_endpoint__returns_an_activity_with_inactive_status__whe ): fake_database = create_fake_database existent_activity = activity_factory() - inserted_activity = insert_activity(existent_activity, fake_database) + inserted_activity = insert_activity(existent_activity, fake_database).__dict__ azure_activities._delete_activity.DATABASE = fake_database req = func.HttpRequest( @@ -90,7 +77,7 @@ def test__update_activity_azure_endpoint__returns_an_activity__when_found_an_act ): fake_database = create_fake_database existent_activity = activity_factory() - inserted_activity = insert_activity(existent_activity, fake_database) + inserted_activity = insert_activity(existent_activity, fake_database).__dict__ azure_activities._update_activity.DATABASE = fake_database activity_body = {"description": Faker().sentence()} diff --git a/V2/tests/api/azure/time_entry_azure_endpoints_test.py b/V2/tests/api/azure/time_entry_azure_endpoints_test.py index d6b15eda..7166cf5d 100644 --- a/V2/tests/api/azure/time_entry_azure_endpoints_test.py +++ b/V2/tests/api/azure/time_entry_azure_endpoints_test.py @@ -1,31 +1,18 @@ -import pytest import json import azure.functions as func import time_tracker.time_entries._application._time_entries as azure_time_entries -from time_tracker._infrastructure import DB -from time_tracker.activities import _domain as domain_activities -from time_tracker.activities import _infrastructure as infrastructure_activities TIME_ENTRY_URL = "/api/time-entries/" -@pytest.fixture(name='insert_activity') -def _insert_activity() -> dict: - def _new_activity(activity: domain_activities.Activity, database: DB): - dao = infrastructure_activities.ActivitiesSQLDao(database) - new_activity = dao.create(activity) - return new_activity.__dict__ - return _new_activity - - def test__time_entry_azure_endpoint__creates_an_time_entry__when_time_entry_has_all_attributes( create_fake_database, time_entry_factory, activity_factory, insert_activity ): db = create_fake_database inserted_activity = insert_activity(activity_factory(), db) - time_entry_body = time_entry_factory(activity_id=inserted_activity["id"], technologies="[jira,sql]").__dict__ + time_entry_body = time_entry_factory(activity_id=inserted_activity.id, technologies="[jira,sql]").__dict__ azure_time_entries._create_time_entry._DATABASE = db body = json.dumps(time_entry_body).encode("utf-8") diff --git a/V2/tests/conftest.py b/V2/tests/conftest.py index a9de6879..18babfa7 100644 --- a/V2/tests/conftest.py +++ b/V2/tests/conftest.py @@ -1,3 +1,3 @@ # flake8: noqa -from fixtures import _activity_factory, _create_fake_database +from fixtures import _activity_factory, _create_fake_database, _insert_activity from fixtures import _time_entry_factory diff --git a/V2/tests/fixtures.py b/V2/tests/fixtures.py index 6ec81e6d..aa9e7577 100644 --- a/V2/tests/fixtures.py +++ b/V2/tests/fixtures.py @@ -2,6 +2,7 @@ from faker import Faker import time_tracker.activities._domain as domain_activities +import time_tracker.activities._infrastructure as infrastructure_activities import time_tracker.time_entries._domain as domain_time_entries from time_tracker._infrastructure import DB @@ -58,3 +59,12 @@ def _make_time_entry( ) return time_entry return _make_time_entry + + +@pytest.fixture(name='insert_activity') +def _insert_activity() -> dict: + def _new_activity(activity: domain_activities.Activity, database: DB): + dao = infrastructure_activities.ActivitiesSQLDao(database) + new_activity = dao.create(activity) + return new_activity + return _new_activity diff --git a/V2/tests/integration/daos/activities_sql_dao_test.py b/V2/tests/integration/daos/activities_sql_dao_test.py index 1c36358c..0f0170af 100644 --- a/V2/tests/integration/daos/activities_sql_dao_test.py +++ b/V2/tests/integration/daos/activities_sql_dao_test.py @@ -7,14 +7,6 @@ from time_tracker._infrastructure import DB -@pytest.fixture(name='insert_activity') -def _insert_activity() -> domain.Activity: - def _new_activity(activity: domain.Activity, dao: domain.ActivitiesDao): - new_activity = dao.create(activity) - return new_activity - return _new_activity - - @pytest.fixture(name='create_fake_dao') def _create_fake_dao() -> domain.ActivitiesDao: db_fake = DB('sqlite:///:memory:') @@ -48,7 +40,7 @@ def test_update__returns_an_update_activity__when_an_activity_matching_its_id_is ): dao = create_fake_dao existent_activity = activity_factory() - inserted_activity = insert_activity(existent_activity, dao) + inserted_activity = insert_activity(existent_activity, dao.db) expected_description = Faker().sentence() updated_activity = dao.update(inserted_activity.id, None, expected_description, None, None) @@ -75,8 +67,8 @@ def test__get_all__returns_a_list_of_activity_dto_objects__when_one_or_more_acti dao = create_fake_dao existent_activities = [activity_factory(), activity_factory()] inserted_activities = [ - insert_activity(existent_activities[0], dao), - insert_activity(existent_activities[1], dao) + insert_activity(existent_activities[0], dao.db), + insert_activity(existent_activities[1], dao.db) ] activities = dao.get_all() @@ -90,7 +82,7 @@ def test_get_by_id__returns_an_activity_dto__when_found_one_activity_that_matche ): dao = create_fake_dao existent_activity = activity_factory() - inserted_activity = insert_activity(existent_activity, dao) + inserted_activity = insert_activity(existent_activity, dao.db) activity = dao.get_by_id(inserted_activity.id) @@ -124,7 +116,7 @@ def test_delete__returns_an_activity_with_inactive_status__when_an_activity_matc ): dao = create_fake_dao existent_activity = activity_factory() - inserted_activity = insert_activity(existent_activity, dao) + inserted_activity = insert_activity(existent_activity, dao.db) activity = dao.delete(inserted_activity.id) diff --git a/V2/tests/integration/daos/time_entries_dao_test.py b/V2/tests/integration/daos/time_entries_dao_test.py index db4732d5..e100d7c2 100644 --- a/V2/tests/integration/daos/time_entries_dao_test.py +++ b/V2/tests/integration/daos/time_entries_dao_test.py @@ -2,25 +2,14 @@ import time_tracker.time_entries._domain as domain -import time_tracker.activities._domain as domain_activities import time_tracker.time_entries._infrastructure as infrastructure -import time_tracker.activities._infrastructure as infrastructure_activities from time_tracker._infrastructure import DB -@pytest.fixture(name='insert_activity') -def _insert_activity() -> domain_activities.Activity: - def _new_activity(activity: domain_activities.Activity, database: DB): - dao = infrastructure_activities.ActivitiesSQLDao(database) - new_activity = dao.create(activity) - return new_activity - return _new_activity - - @pytest.fixture(name='create_fake_dao') def _create_fake_dao() -> domain.TimeEntriesDao: db_fake = DB('sqlite:///:memory:') - dao = infrastructure.TimeEntriesJsonDao(db_fake) + dao = infrastructure.TimeEntriesSQLDao(db_fake) return dao @@ -28,7 +17,7 @@ def _create_fake_dao() -> domain.TimeEntriesDao: def _clean_database(): yield db_fake = DB('sqlite:///:memory:') - dao = infrastructure.TimeEntriesJsonDao(db_fake) + dao = infrastructure.TimeEntriesSQLDao(db_fake) query = dao.time_entry.delete() dao.db.get_session().execute(query) diff --git a/V2/time_tracker/time_entries/_application/_time_entries/_create_time_entry.py b/V2/time_tracker/time_entries/_application/_time_entries/_create_time_entry.py index cbab7754..938eb50e 100644 --- a/V2/time_tracker/time_entries/_application/_time_entries/_create_time_entry.py +++ b/V2/time_tracker/time_entries/_application/_time_entries/_create_time_entry.py @@ -13,7 +13,7 @@ def create_time_entry(req: func.HttpRequest) -> func.HttpResponse: - time_entry_dao = _infrastructure.TimeEntriesJsonDao(_DATABASE) + time_entry_dao = _infrastructure.TimeEntriesSQLDao(_DATABASE) time_entry_service = _domain.TimeEntryService(time_entry_dao) use_case = _domain._use_cases.CreateTimeEntryUseCase(time_entry_service) diff --git a/V2/time_tracker/time_entries/_infrastructure/__init__.py b/V2/time_tracker/time_entries/_infrastructure/__init__.py index 0e90c78a..1c7a7d6d 100644 --- a/V2/time_tracker/time_entries/_infrastructure/__init__.py +++ b/V2/time_tracker/time_entries/_infrastructure/__init__.py @@ -1,2 +1,2 @@ # flake8: noqa -from ._data_persistence import TimeEntriesJsonDao +from ._data_persistence import TimeEntriesSQLDao diff --git a/V2/time_tracker/time_entries/_infrastructure/_data_persistence/__init__.py b/V2/time_tracker/time_entries/_infrastructure/_data_persistence/__init__.py index 91ebd7cf..b999febe 100644 --- a/V2/time_tracker/time_entries/_infrastructure/_data_persistence/__init__.py +++ b/V2/time_tracker/time_entries/_infrastructure/_data_persistence/__init__.py @@ -1,2 +1,2 @@ # flake8: noqa -from ._time_entries_dao import TimeEntriesJsonDao +from ._time_entries_dao import TimeEntriesSQLDao diff --git a/V2/time_tracker/time_entries/_infrastructure/_data_persistence/_time_entries_dao.py b/V2/time_tracker/time_entries/_infrastructure/_data_persistence/_time_entries_dao.py index aaed45c5..d233f3e9 100644 --- a/V2/time_tracker/time_entries/_infrastructure/_data_persistence/_time_entries_dao.py +++ b/V2/time_tracker/time_entries/_infrastructure/_data_persistence/_time_entries_dao.py @@ -6,7 +6,7 @@ from time_tracker._infrastructure import _db -class TimeEntriesJsonDao(domain.TimeEntriesDao): +class TimeEntriesSQLDao(domain.TimeEntriesDao): def __init__(self, database: _db.DB): self.time_entry_key = [field.name for field in dataclasses.fields(domain.TimeEntry)]