Skip to content
Prev Previous commit
Next Next commit
refactor: TT-401 fixtures changed
  • Loading branch information
ararcos committed Nov 17, 2021
commit 103b8c19d7db70d3a9a88cc61bed00868d9c575d
23 changes: 5 additions & 18 deletions V2/tests/api/azure/activity_azure_endpoints_test.py
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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(
Expand All @@ -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(
Expand All @@ -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()}
Expand Down
15 changes: 1 addition & 14 deletions V2/tests/api/azure/time_entry_azure_endpoints_test.py
Original file line number Diff line number Diff line change
@@ -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")
Expand Down
2 changes: 1 addition & 1 deletion V2/tests/conftest.py
Original file line number Diff line number Diff line change
@@ -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
10 changes: 10 additions & 0 deletions V2/tests/fixtures.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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
18 changes: 5 additions & 13 deletions V2/tests/integration/daos/activities_sql_dao_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:')
Expand Down Expand Up @@ -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)
Expand All @@ -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()
Expand 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)

Expand Down Expand Up @@ -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)

Expand Down
15 changes: 2 additions & 13 deletions V2/tests/integration/daos/time_entries_dao_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,22 @@


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


@pytest.fixture(name='clean_database', autouse=True)
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)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
2 changes: 1 addition & 1 deletion V2/time_tracker/time_entries/_infrastructure/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# flake8: noqa
from ._data_persistence import TimeEntriesJsonDao
from ._data_persistence import TimeEntriesSQLDao
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# flake8: noqa
from ._time_entries_dao import TimeEntriesJsonDao
from ._time_entries_dao import TimeEntriesSQLDao
Original file line number Diff line number Diff line change
Expand Up @@ -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)]
Expand Down