Skip to content

Commit c353fb4

Browse files
committed
refactor: TT-357 remove duplication lines
1 parent 9424efd commit c353fb4

File tree

2 files changed

+107
-86
lines changed

2 files changed

+107
-86
lines changed

V2/tests/api/azure/activity_azure_endpoints_test.py

Lines changed: 19 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,36 +5,35 @@
55

66
import azure.functions as func
77
import sqlalchemy
8-
from sqlalchemy.sql.expression import true
98

109
import time_entries._application._activities as azure_activities
1110
import time_entries._domain as domain
1211
import time_entries._infrastructure as infrastructure
1312

1413
ACTIVITY_URL = '/api/activities/'
1514

16-
1715
@pytest.fixture(name='create_fake_database')
1816
def _create_fake_database() -> domain.ActivitiesDao:
1917
db_fake = infrastructure.DB('sqlite:///:memory:')
2018
demo_data = [
2119
{
22-
'id': Faker().uuid4(),
23-
'name': Faker().user_name(),
24-
'description': Faker().sentence(),
25-
'deleted': Faker().uuid4(),
20+
'id': uuid.UUID('b4327ba6-9f96-49ee-a9ac-3c1edf525172'),
21+
'name': 'Activity Demo create',
22+
'description': 'test demo create an new activity',
23+
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
2624
'status': 'active',
27-
'tenant_id': Faker().uuid4(),
25+
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
2826
},
29-
{
30-
'id': Faker().uuid4(),
31-
'name': Faker().user_name(),
32-
'description': Faker().sentence(),
33-
'deleted': Faker().uuid4(),
27+
{
28+
'id': uuid.UUID('c61a4a49-3364-49a3-a7f7-0c5f2d15072b'),
29+
'name': 'Activity Demo create',
30+
'description': 'test demo create an new activity',
31+
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
3432
'status': 'active',
35-
'tenant_id': Faker().uuid4(),
33+
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
3634
},
3735
]
36+
3837
activity = sqlalchemy.Table('activity', db_fake.metadata,
3938
sqlalchemy.Column('name', sqlalchemy.String),
4039
sqlalchemy.Column('id', infrastructure.GUID(), primary_key=True, default=uuid.uuid4),
@@ -50,18 +49,18 @@ def _create_fake_database() -> domain.ActivitiesDao:
5049
db_fake.get_session().execute(query, demo_data)
5150
return db_fake, demo_data
5251

52+
5353
def test__activity_azure_endpoint__returns_all_activities(
5454
create_fake_database,
5555
):
5656
database, activity_data = create_fake_database
5757
azure_activities._get_activities.DATABASE = database
5858
req = func.HttpRequest(method='GET', body=None, url=ACTIVITY_URL)
59-
6059
response = azure_activities._get_activities.get_activities(req)
6160
activities_json_data = response.get_body().decode("utf-8")
6261

6362
for activity in activity_data:
64-
activity["id"] = uuid.UUID(activity["id"]).hex
63+
activity["id"] = activity["id"].hex
6564

6665
assert response.status_code == 200
6766
assert activities_json_data == json.dumps(activity_data)
@@ -78,12 +77,9 @@ def test__activity_azure_endpoint__returns_an_activity__when_activity_matches_it
7877
url=ACTIVITY_URL,
7978
route_params={"id": str(activity_data[0]['id'])},
8079
)
81-
8280
response = azure_activities._get_activities.get_activities(req)
8381
activitiy_json_data = response.get_body().decode("utf-8")
84-
85-
activity_data[0]["id"] = uuid.UUID(activity_data[0]["id"]).hex
86-
82+
activity_data[0]["id"] = activity_data[0]["id"].hex
8783
assert response.status_code == 200
8884
assert activitiy_json_data == json.dumps(activity_data[0])
8985

@@ -97,12 +93,10 @@ def test__activity_azure_endpoint__returns_an_activity_with_inactive_status__whe
9793
method='DELETE',
9894
body=None,
9995
url=ACTIVITY_URL,
100-
route_params={"id": str(uuid.UUID(activity_data[0]['id']))},
96+
route_params={"id": str(activity_data[0]['id'])},
10197
)
102-
10398
response = azure_activities._delete_activity.delete_activity(req)
10499
activity_json_data = json.loads(response.get_body().decode("utf-8"))
105-
106100
assert response.status_code == 200
107101
assert activity_json_data['status'] == 'inactive'
108102

@@ -117,24 +111,21 @@ def test__update_activity_azure_endpoint__returns_an_activity__when_found_an_act
117111
method='PUT',
118112
body=json.dumps(activity_body).encode("utf-8"),
119113
url=ACTIVITY_URL,
120-
route_params={"id": str(uuid.UUID(activity_data[0]['id']))},
114+
route_params={"id": str(activity_data[0]['id'])},
121115
)
122-
123-
activity_data[0]["id"] = uuid.UUID(activity_data[0]["id"]).hex
124-
116+
activity_data[0]["id"] = activity_data[0]["id"].hex
125117
response = azure_activities._update_activity.update_activity(req)
126118
activitiy_json_data = response.get_body().decode("utf-8")
127119
new_activity = {**activity_data[0], **activity_body}
128-
129120
assert response.status_code == 200
130121
assert activitiy_json_data == json.dumps(new_activity)
131122

123+
132124
def test__activity_azure_endpoint__creates_an_activity__when_activity_has_all_attributes(
133125
create_fake_database,
134126
):
135127
database, activity_data = create_fake_database
136128
azure_activities._create_activity.DATABASE = database
137-
138129
activity_body = {'id': None, 'name': Faker().user_name(), 'description': Faker().sentence(),'deleted': Faker().uuid4() ,'status': 'active', 'tenant_id': Faker().uuid4()}
139130
body = json.dumps(activity_body).encode("utf-8")
140131
req = func.HttpRequest(
@@ -143,7 +134,6 @@ def test__activity_azure_endpoint__creates_an_activity__when_activity_has_all_at
143134
url=ACTIVITY_URL,
144135
)
145136

146-
147137
response = azure_activities._create_activity.create_activity(req)
148138
activitiy_json_data = json.loads(response.get_body())
149139
activity_body['id'] = activitiy_json_data['id']
Lines changed: 88 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
import pytest
22
import uuid
3-
from faker import Faker
3+
4+
import sqlalchemy
45

56
import time_entries._domain as domain
67
import time_entries._infrastructure as infrastructure
7-
import sqlalchemy
88

99
@pytest.fixture(name='create_fake_database')
1010
def _create_fake_database(with_data: bool) -> domain.ActivitiesDao:
1111
db_fake = infrastructure.DB('sqlite:///:memory:')
1212
demo_data = [
1313
{
14-
'id': Faker().uuid4(),
15-
'name': Faker().user_name(),
16-
'description': Faker().sentence(),
17-
'deleted': Faker().uuid4(),
14+
'id': uuid.UUID('b4327ba6-9f96-49ee-a9ac-3c1edf525172'),
15+
'name': 'Activity Demo create',
16+
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
17+
'description': 'test demo create an new activity',
1818
'status': 'active',
19-
'tenant_id': Faker().uuid4(),
19+
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
2020
},
2121
{
22-
'id': Faker().uuid4(),
23-
'name': Faker().user_name(),
24-
'description': Faker().sentence(),
25-
'deleted': Faker().uuid4(),
22+
'id': uuid.UUID('c61a4a49-3364-49a3-a7f7-0c5f2d15072b'),
23+
'name': 'Activity Demo create',
24+
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
25+
'description': 'test demo create an new activity',
2626
'status': 'active',
27-
'tenant_id': Faker().uuid4(),
27+
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
2828
},
2929
]
3030
if with_data:
@@ -39,99 +39,130 @@ def _create_fake_database(with_data: bool) -> domain.ActivitiesDao:
3939
)
4040
query = activity.insert()
4141
db_fake.get_session().execute(query, demo_data)
42-
return db_fake, demo_data
42+
return db_fake
4343

4444

4545
@pytest.mark.parametrize('with_data',[False])
4646
def test__create_activity__returns_a_activity_dto__when_saves_correctly_with_sql_database(create_fake_database):
47-
database, activity_data = create_fake_database
48-
dao = infrastructure.ActivitiesSQLDao(database)
49-
results = dao.create_activity(activity_data[0])
50-
assert results.id != None
51-
47+
activity = {
48+
'name': 'Activity Demo create',
49+
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
50+
'description': 'test demo create an new activity',
51+
'status': 'active',
52+
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
53+
}
54+
dao = infrastructure.ActivitiesSQLDao(create_fake_database)
55+
results = dao.create_activity(activity)
56+
assert results.id != None\
57+
5258

5359
@pytest.mark.parametrize('with_data',[True])
5460
def test_update__returns_an_activity_updated__when_an_activity_matching_its_id_is_found_with_sql_database(create_fake_database):
55-
body = {
61+
activity = {
5662
'name': 'Activity Demo create 3',
5763
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
5864
'description': 'test demo create an new activity',
5965
'status': 'active',
6066
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
6167
}
62-
database, activity_data = create_fake_database
63-
activity_data[0].update(body)
64-
activity_data[0]["id"] = uuid.UUID(activity_data[0]["id"]).hex
65-
expected_result=domain.Activity(**activity_data[0])
66-
dao = infrastructure.ActivitiesSQLDao(database)
67-
results = dao.update(activity_data[0]["id"],body)
68+
expected_result=domain.Activity(**{
69+
'id': 'b4327ba69f9649eea9ac3c1edf525172',
70+
'name': 'Activity Demo create 3',
71+
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
72+
'description': 'test demo create an new activity',
73+
'status': 'active',
74+
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
75+
})
76+
dao = infrastructure.ActivitiesSQLDao(create_fake_database)
77+
results = dao.update('b4327ba69f9649eea9ac3c1edf525172',activity)
6878
assert results == expected_result
6979

7080

7181
@pytest.mark.parametrize('with_data',[False])
7282
def test_update__returns_none__when_no_activity_matching_its_id_is_found_with_sql_database(create_fake_database):
73-
database, activity_data = create_fake_database
74-
activity_data[0]["id"] = uuid.UUID(activity_data[0]["id"]).hex
75-
dao = infrastructure.ActivitiesSQLDao(database)
76-
results = dao.update(activity_data[0]["id"],activity_data[0])
83+
activity = {
84+
'name': 'Activity Demo create 3',
85+
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
86+
'description': 'test demo create an new activity',
87+
'status': 'active',
88+
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
89+
}
90+
dao = infrastructure.ActivitiesSQLDao(create_fake_database)
91+
results = dao.update('b4327ba69f9649eea9ac3c1edf525172',activity)
7792
assert results == None
7893

79-
94+
8095
@pytest.mark.parametrize('with_data',[True])
8196
def test__get_all__returns_a_list_of_activity_dto_objects__when_one_or_more_activities_are_found_with_sql_database(create_fake_database):
82-
database, activity_data = create_fake_database
83-
for activity in activity_data:
84-
activity["id"] = uuid.UUID(activity["id"]).hex
8597
expected_result=[
86-
domain.Activity(**activity_data[0]),
87-
domain.Activity(**activity_data[1]),
98+
domain.Activity(**{
99+
'id': 'b4327ba69f9649eea9ac3c1edf525172',
100+
'name': 'Activity Demo create',
101+
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
102+
'description': 'test demo create an new activity',
103+
'status': 'active',
104+
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
105+
}),
106+
domain.Activity(**{
107+
'id': 'c61a4a49336449a3a7f70c5f2d15072b',
108+
'name': 'Activity Demo create',
109+
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
110+
'description': 'test demo create an new activity',
111+
'status': 'active',
112+
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
113+
}),
88114
]
89-
dao = infrastructure.ActivitiesSQLDao(database)
115+
dao = infrastructure.ActivitiesSQLDao(create_fake_database)
90116
results = dao.get_all()
91117
assert results == expected_result
92118

93119

94120
@pytest.mark.parametrize('with_data',[True])
95121
def test_get_by_id__returns_an_activity_dto__when_found_one_activity_that_matches_its_id_with_sql_database(create_fake_database):
96-
database, activity_data = create_fake_database
97-
activity_data[0]["id"] = uuid.UUID(activity_data[0]["id"]).hex
98-
expected_result=domain.Activity(**activity_data[0])
99-
dao = infrastructure.ActivitiesSQLDao(database)
100-
results = dao.get_by_id(activity_data[0]["id"])
122+
expected_result=domain.Activity(**{
123+
'id': 'b4327ba69f9649eea9ac3c1edf525172',
124+
'name': 'Activity Demo create',
125+
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
126+
'description': 'test demo create an new activity',
127+
'status': 'active',
128+
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
129+
})
130+
dao = infrastructure.ActivitiesSQLDao(create_fake_database)
131+
results = dao.get_by_id('b4327ba69f9649eea9ac3c1edf525172')
101132
assert results == expected_result
102133

103134

104135
@pytest.mark.parametrize('with_data',[False])
105136
def test__get_by_id__returns_none__when_no_activity_matches_its_id_with_sql_database(create_fake_database):
106-
database, activity_data = create_fake_database
107-
activity_data[0]["id"] = uuid.UUID(activity_data[0]["id"]).hex
108-
dao = infrastructure.ActivitiesSQLDao(database)
109-
results = dao.get_by_id(activity_data[0]["id"])
137+
dao = infrastructure.ActivitiesSQLDao(create_fake_database)
138+
results = dao.get_by_id('b4327ba69f9649eea9ac3c1edf525172')
110139
assert results == None
111140

112141

113142
@pytest.mark.parametrize('with_data',[False])
114143
def test_get_all__returns_an_empty_list__when_doesnt_found_any_activities_with_sql_database(create_fake_database):
115-
database, activity_data = create_fake_database
116-
dao = infrastructure.ActivitiesSQLDao(database)
144+
dao = infrastructure.ActivitiesSQLDao(create_fake_database)
117145
results = dao.get_all()
118146
assert results == []
119147

120148

121149
@pytest.mark.parametrize('with_data',[True])
122150
def test_delete__returns_an_activity_with_inactive_status__when_an_activity_matching_its_id_is_found_with_sql_database(create_fake_database):
123-
database, activity_data = create_fake_database
124-
activity_data[0].update({"id":uuid.UUID(activity_data[0]["id"]).hex,"status":"inactive"})
125-
expected_result=domain.Activity(**activity_data[0])
126-
dao = infrastructure.ActivitiesSQLDao(database)
127-
results = dao.delete(activity_data[0]["id"])
151+
expected_result=domain.Activity(**{
152+
'id': 'b4327ba69f9649eea9ac3c1edf525172',
153+
'name': 'Activity Demo create',
154+
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
155+
'description': 'test demo create an new activity',
156+
'status': 'inactive',
157+
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
158+
})
159+
dao = infrastructure.ActivitiesSQLDao(create_fake_database)
160+
results = dao.delete('b4327ba69f9649eea9ac3c1edf525172')
128161
assert results == expected_result
129162

130-
163+
131164
@pytest.mark.parametrize('with_data',[False])
132165
def test_delete__returns_none__when_no_activity_matching_its_id_is_found_with_sql_database(create_fake_database):
133-
database, activity_data = create_fake_database
134-
activity_data[0]["id"] = uuid.UUID(activity_data[0]["id"]).hex
135-
dao = infrastructure.ActivitiesSQLDao(database)
136-
results = dao.delete(activity_data[0]["id"])
166+
dao = infrastructure.ActivitiesSQLDao(create_fake_database)
167+
results = dao.delete('b4327ba69f9649eea9ac3c1edf525172')
137168
assert results == None

0 commit comments

Comments
 (0)