Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix: TT-357 Resolution of comments
  • Loading branch information
ararcos committed Nov 11, 2021
commit f17ea3cb48fe4a8af2c5530737762fa3623513fc
41 changes: 10 additions & 31 deletions V2/tests/api/azure/activity_azure_endpoints_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,48 +3,27 @@
from faker import Faker

import azure.functions as func
import sqlalchemy
from sqlalchemy.sql.sqltypes import Integer

import time_tracker.activities._application._activities as azure_activities
import time_tracker.activities._domain as domain
import time_tracker.activities._infrastructure as infrastructure
from time_tracker._infrastructure import DB

ACTIVITY_URL = '/api/activities/'

DEMO_DATA = [
{
'id': 1,
'name': 'Activity Demo create',
'description': 'test demo create an new activity',
'deleted': None,
'status': None,
},
{
'id': 2,
'name': 'Activity Demo create',
'description': 'test demo create an new activity',
'deleted': None,
'status': None,
},
]


@pytest.fixture(name='insert_activity')
def _insert_activity() -> domain.Activity:
def _insert_activity() -> dict:
def _new_activity(activity: dict, database: DB):
dao = infrastructure.ActivitiesSQLDao(database)
new_activity = dao.create(activity)
return new_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(DEMO_DATA[0]), activity_factory(DEMO_DATA[1])]
inserted_activities = [insert_activity(existent_activities[0].__dict__, fake_database).__dict__, insert_activity(existent_activities[1].__dict__, fake_database).__dict__]
existent_activities= [activity_factory(), activity_factory()]
inserted_activities = [insert_activity(existent_activities[0].__dict__, fake_database), insert_activity(existent_activities[1].__dict__, fake_database)]

azure_activities._get_activities.DATABASE = fake_database
req = func.HttpRequest(method='GET', body=None, url=ACTIVITY_URL)
Expand All @@ -59,8 +38,8 @@ def test__activity_azure_endpoint__returns_an_activity__when_activity_matches_it
create_fake_database, activity_factory, insert_activity
):
fake_database = create_fake_database
existent_activity= activity_factory(DEMO_DATA[0])
inserted_activity = insert_activity(existent_activity.__dict__, fake_database).__dict__
existent_activity= activity_factory()
inserted_activity = insert_activity(existent_activity.__dict__, fake_database)

azure_activities._get_activities.DATABASE = fake_database
req = func.HttpRequest(
Expand All @@ -81,8 +60,8 @@ def test__activity_azure_endpoint__returns_an_activity_with_inactive_status__whe
create_fake_database,activity_factory, insert_activity
):
fake_database = create_fake_database
existent_activity= activity_factory(DEMO_DATA[0])
inserted_activity = insert_activity(existent_activity.__dict__, fake_database).__dict__
existent_activity= activity_factory()
inserted_activity = insert_activity(existent_activity.__dict__, fake_database)

azure_activities._delete_activity.DATABASE = fake_database
req = func.HttpRequest(
Expand All @@ -104,8 +83,8 @@ def test__update_activity_azure_endpoint__returns_an_activity__when_found_an_act
create_fake_database, activity_factory, insert_activity
):
fake_database = create_fake_database
existent_activity= activity_factory(DEMO_DATA[0])
inserted_activity = insert_activity(existent_activity.__dict__, fake_database).__dict__
existent_activity= activity_factory()
inserted_activity = insert_activity(existent_activity.__dict__, fake_database)

azure_activities._update_activity.DATABASE = fake_database
activity_body = {"description": Faker().sentence()}
Expand Down
11 changes: 9 additions & 2 deletions V2/tests/api/api_fixtures.py → V2/tests/api_fixtures.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,18 @@
import time_tracker.activities._domain as domain
import time_tracker.activities._infrastructure as infrastructure
from time_tracker._infrastructure import DB
from faker import Faker

@pytest.fixture(name='activity_factory')
def _activity_factory() -> domain.Activity:
def _make_activity(data: dict):
activity = domain.Activity(**data)
def _make_activity(name: str = Faker().name(), description: str = Faker().sentence(), deleted: bool = False, status: int = 1):
activity = domain.Activity(
id = None,
name = name,
description = description,
deleted = deleted,
status = status
)
return activity
return _make_activity

Expand Down
2 changes: 1 addition & 1 deletion V2/tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
from tests.api.api_fixtures import _activity_factory, _create_fake_dao, _create_fake_database
from api_fixtures import _activity_factory, _create_fake_dao, _create_fake_database
34 changes: 8 additions & 26 deletions V2/tests/integration/daos/activities_sql_dao_test.py
Original file line number Diff line number Diff line change
@@ -1,28 +1,10 @@
import pytest
import typing

from sqlalchemy.sql.expression import update

import time_tracker.activities._domain as domain
import time_tracker.activities._infrastructure as infrastructure
from time_tracker._infrastructure import DB

DEMO_DATA = [
{
'id': 1,
'name': 'Activity Demo create',
'description': 'test demo create an new activity',
'deleted': None,
'status': None,
},
{
'id': 2,
'name': 'Activity Demo create',
'description': 'test demo create an new activity',
'deleted': None,
'status': None,
},
]

@pytest.fixture(name='insert_activity')
def _insert_activity() -> domain.Activity:
Expand All @@ -41,7 +23,7 @@ def _clean_database():

def test__create_activity__returns_a_activity_dto__when_saves_correctly_with_sql_database(create_fake_dao, activity_factory):
dao = create_fake_dao
existent_activity = activity_factory(DEMO_DATA[0])
existent_activity = activity_factory()

inserted_activity = dao.create(existent_activity.__dict__)

Expand All @@ -51,7 +33,7 @@ def test__create_activity__returns_a_activity_dto__when_saves_correctly_with_sql

def test_update__returns_an_update_activity__when_an_activity_matching_its_id_is_found_with_sql_database(create_fake_dao, activity_factory, insert_activity):
dao = create_fake_dao
existent_activity = activity_factory(DEMO_DATA[0])
existent_activity = activity_factory()
inserted_activity = insert_activity(existent_activity.__dict__, dao)

updated_activity = dao.update(inserted_activity.id, {'description': 'test demo 2 create an new activity'})
Expand All @@ -63,7 +45,7 @@ def test_update__returns_an_update_activity__when_an_activity_matching_its_id_is

def test_update__returns_none__when_no_activity_matching_its_id_is_found_with_sql_database(create_fake_dao, activity_factory):
dao = create_fake_dao
existent_activity = activity_factory(DEMO_DATA[0])
existent_activity = activity_factory()

results = dao.update(existent_activity.id,{'description': 'test demo'})

Expand All @@ -72,7 +54,7 @@ def test_update__returns_none__when_no_activity_matching_its_id_is_found_with_sq

def test__get_all__returns_a_list_of_activity_dto_objects__when_one_or_more_activities_are_found_with_sql_database(create_fake_dao, activity_factory, insert_activity):
dao = create_fake_dao
existent_activities= [activity_factory(DEMO_DATA[0]), activity_factory(DEMO_DATA[1])]
existent_activities= [activity_factory(), activity_factory()]
inserted_activities = [insert_activity(existent_activities[0].__dict__, dao), insert_activity(existent_activities[1].__dict__, dao)]

activities = dao.get_all()
Expand All @@ -83,7 +65,7 @@ def test__get_all__returns_a_list_of_activity_dto_objects__when_one_or_more_acti

def test_get_by_id__returns_an_activity_dto__when_found_one_activity_that_matches_its_id_with_sql_database(create_fake_dao, activity_factory, insert_activity):
dao = create_fake_dao
existent_activity = activity_factory(DEMO_DATA[0])
existent_activity = activity_factory()
inserted_activity = insert_activity(existent_activity.__dict__, dao)

activity = dao.get_by_id(inserted_activity.id)
Expand All @@ -95,7 +77,7 @@ def test_get_by_id__returns_an_activity_dto__when_found_one_activity_that_matche

def test__get_by_id__returns_none__when_no_activity_matches_its_id_with_sql_database(create_fake_dao, activity_factory):
dao = create_fake_dao
existent_activity = activity_factory(DEMO_DATA[0])
existent_activity = activity_factory()

activity = dao.get_by_id(existent_activity.id)

Expand All @@ -111,7 +93,7 @@ def test_get_all__returns_an_empty_list__when_doesnt_found_any_activities_with_s

def test_delete__returns_an_activity_with_inactive_status__when_an_activity_matching_its_id_is_found_with_sql_database(create_fake_dao, activity_factory, insert_activity):
dao = create_fake_dao
existent_activity = activity_factory(DEMO_DATA[0])
existent_activity = activity_factory()
inserted_activity = insert_activity(existent_activity.__dict__, dao)

activity = dao.delete(inserted_activity.id)
Expand All @@ -124,7 +106,7 @@ def test_delete__returns_an_activity_with_inactive_status__when_an_activity_matc

def test_delete__returns_none__when_no_activity_matching_its_id_is_found_with_sql_database(create_fake_dao, activity_factory):
dao = create_fake_dao
existent_activity = activity_factory(DEMO_DATA[0])
existent_activity = activity_factory()

results = dao.delete(existent_activity.id)

Expand Down
1 change: 0 additions & 1 deletion V2/tests/unit/use_cases/activities_use_case_test.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from time_tracker.activities._domain import ActivityService
from time_tracker.activities._domain import _use_cases
from pytest_mock import MockFixture
from faker import Faker
Expand Down
3 changes: 0 additions & 3 deletions V2/time_tracker/_infrastructure/_db.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
import uuid

import sqlalchemy

from . import _config

DIALECT = 'postgresql'
class DB():
config = _config.load_config()
connection = None
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,14 @@ def create_activity(req: func.HttpRequest) -> func.HttpResponse:
activity_service = _domain.ActivityService(activity_dao)
use_case = _domain._use_cases.CreateActivityUseCase(activity_service)


activity_data = req.get_json()


validation_errors = _validate_activity(activity_data)
if validation_errors:
return func.HttpResponse(
body=json.dumps(validation_errors), status_code=400, mimetype="application/json"
)


activity_to_create = _domain.Activity(
id= None,
name=activity_data['name'],
Expand All @@ -35,7 +32,6 @@ def create_activity(req: func.HttpRequest) -> func.HttpResponse:
deleted=activity_data['deleted']
)


created_activity = use_case.create_activity(activity_to_create.__dict__)
if not create_activity:
return func.HttpResponse(
Expand Down