Skip to content

Commit d9eaa42

Browse files
committed
fix: TT-357 change uuid pk of activity for integer and change test
1 parent 98a1dfe commit d9eaa42

File tree

15 files changed

+111
-205
lines changed

15 files changed

+111
-205
lines changed

V2/tests/api/azure/activity_azure_endpoints_test.py

Lines changed: 30 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -5,97 +5,91 @@
55

66
import azure.functions as func
77
import sqlalchemy
8+
from sqlalchemy.sql.sqltypes import Integer
89

910
import time_entries._application._activities as azure_activities
1011
import time_entries._domain as domain
1112
import time_entries._infrastructure as infrastructure
1213

1314
ACTIVITY_URL = '/api/activities/'
1415

15-
16-
@pytest.fixture(name='create_fake_database')
17-
def _create_fake_database() -> domain.ActivitiesDao:
18-
db_fake = infrastructure.DB('sqlite:///:memory:')
19-
demo_data = [
16+
DEMO_DATA = [
2017
{
21-
'id': uuid.UUID('b4327ba6-9f96-49ee-a9ac-3c1edf525172'),
18+
'id': 1,
2219
'name': 'Activity Demo create',
2320
'description': 'test demo create an new activity',
2421
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
2522
'status': 'active',
2623
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
2724
},
2825
{
29-
'id': uuid.UUID('c61a4a49-3364-49a3-a7f7-0c5f2d15072b'),
26+
'id': 2,
3027
'name': 'Activity Demo create',
3128
'description': 'test demo create an new activity',
3229
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
3330
'status': 'active',
3431
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
3532
},
3633
]
34+
35+
@pytest.fixture(name='create_fake_database')
36+
def _create_fake_database() -> domain.ActivitiesDao:
37+
db_fake = infrastructure.DB('sqlite:///:memory:')
38+
3739
activity = sqlalchemy.Table('activity', db_fake.metadata,
38-
sqlalchemy.Column('name', sqlalchemy.String),
39-
sqlalchemy.Column('id', infrastructure.GUID(), primary_key=True, default=uuid.uuid4),
40-
sqlalchemy.Column('description', sqlalchemy.String),
41-
sqlalchemy.Column('deleted', sqlalchemy.String),
42-
sqlalchemy.Column('status', sqlalchemy.String),
43-
sqlalchemy.Column('tenant_id', sqlalchemy.String),
44-
extend_existing=True,
45-
)
40+
sqlalchemy.Column('id',sqlalchemy.Integer, primary_key=True,autoincrement=True),
41+
sqlalchemy.Column('name', sqlalchemy.String),
42+
sqlalchemy.Column('description', sqlalchemy.String),
43+
sqlalchemy.Column('deleted', sqlalchemy.String),
44+
sqlalchemy.Column('status', sqlalchemy.String),
45+
sqlalchemy.Column('tenant_id', sqlalchemy.String),
46+
extend_existing=True,
47+
)
4648

4749
query = activity.insert()
48-
db_fake.get_session().execute(query, demo_data)
49-
return db_fake, demo_data
50+
db_fake.get_session().execute(query, DEMO_DATA)
51+
return db_fake
5052

5153
def test__activity_azure_endpoint__returns_all_activities(
5254
create_fake_database,
5355
):
54-
database, activity_data = create_fake_database
55-
azure_activities._get_activities.DATABASE = database
56+
azure_activities._get_activities.DATABASE = create_fake_database
5657
req = func.HttpRequest(method='GET', body=None, url=ACTIVITY_URL)
5758

5859
response = azure_activities._get_activities.get_activities(req)
5960
activities_json_data = response.get_body().decode("utf-8")
6061

61-
for activity in activity_data:
62-
activity["id"] = activity["id"].hex
63-
6462
assert response.status_code == 200
65-
assert activities_json_data == json.dumps(activity_data)
63+
assert activities_json_data == json.dumps(DEMO_DATA)
6664

6765

6866
def test__activity_azure_endpoint__returns_an_activity__when_activity_matches_its_id(
6967
create_fake_database,
7068
):
71-
database, activity_data = create_fake_database
72-
azure_activities._get_activities.DATABASE = database
69+
azure_activities._get_activities.DATABASE = create_fake_database
7370
req = func.HttpRequest(
7471
method='GET',
7572
body=None,
7673
url=ACTIVITY_URL,
77-
route_params={"id": str(activity_data[0]['id'])},
74+
route_params={"id": str(DEMO_DATA[0]['id'])},
7875
)
7976

8077
response = azure_activities._get_activities.get_activities(req)
8178
activitiy_json_data = response.get_body().decode("utf-8")
8279

83-
activity_data[0]["id"] = activity_data[0]["id"].hex
84-
8580
assert response.status_code == 200
86-
assert activitiy_json_data == json.dumps(activity_data[0])
81+
assert activitiy_json_data == json.dumps(DEMO_DATA[0])
8782

8883

8984
def test__activity_azure_endpoint__returns_an_activity_with_inactive_status__when_an_activity_matching_its_id_is_found(
9085
create_fake_database,
9186
):
92-
database, activity_data = create_fake_database
93-
azure_activities._delete_activity.DATABASE = database
87+
azure_activities._delete_activity.DATABASE = create_fake_database
9488
req = func.HttpRequest(
9589
method='DELETE',
9690
body=None,
9791
url=ACTIVITY_URL,
98-
route_params={"id": str(activity_data[0]['id'])},
92+
route_params={"id": str(DEMO_DATA[0]['id'])},
9993
)
10094

10195
response = azure_activities._delete_activity.delete_activity(req)
@@ -108,30 +102,26 @@ def test__activity_azure_endpoint__returns_an_activity_with_inactive_status__whe
108102
def test__update_activity_azure_endpoint__returns_an_activity__when_found_an_activity_to_update(
109103
create_fake_database,
110104
):
111-
database, activity_data = create_fake_database
112-
azure_activities._update_activity.DATABASE = database
105+
azure_activities._update_activity.DATABASE = create_fake_database
113106
activity_body = {"description": Faker().sentence()}
114107
req = func.HttpRequest(
115108
method='PUT',
116109
body=json.dumps(activity_body).encode("utf-8"),
117110
url=ACTIVITY_URL,
118-
route_params={"id": str(activity_data[0]['id'])},
111+
route_params={"id": str(DEMO_DATA[0]['id'])},
119112
)
120113

121-
activity_data[0]["id"] = activity_data[0]["id"].hex
122-
123114
response = azure_activities._update_activity.update_activity(req)
124115
activitiy_json_data = response.get_body().decode("utf-8")
125-
new_activity = {**activity_data[0], **activity_body}
116+
new_activity = {**DEMO_DATA[0], **activity_body}
126117

127118
assert response.status_code == 200
128119
assert activitiy_json_data == json.dumps(new_activity)
129120

130121
def test__activity_azure_endpoint__creates_an_activity__when_activity_has_all_attributes(
131122
create_fake_database,
132123
):
133-
database, activity_data = create_fake_database
134-
azure_activities._create_activity.DATABASE = database
124+
azure_activities._create_activity.DATABASE = create_fake_database
135125

136126
activity_body = {'id': None, 'name': Faker().user_name(), 'description': Faker().sentence(),'deleted': Faker().uuid4() ,'status': 'active', 'tenant_id': Faker().uuid4()}
137127
body = json.dumps(activity_body).encode("utf-8")

V2/tests/integration/daos/activities_sql_dao_test.py

Lines changed: 34 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,7 @@
44
import time_entries._domain as domain
55
import time_entries._infrastructure as infrastructure
66

7-
8-
@pytest.fixture(name='create_fake_dao')
9-
def _create_fake_dao(with_data: bool) -> domain.ActivitiesDao:
10-
db_fake = infrastructure.DB('sqlite:///:memory:')
11-
demo_data = [
7+
DEMO_DATA = [
128
{
139
'id': uuid.UUID('b4327ba6-9f96-49ee-a9ac-3c1edf525172'),
1410
'name': 'Activity Demo create',
@@ -26,14 +22,14 @@ def _create_fake_dao(with_data: bool) -> domain.ActivitiesDao:
2622
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
2723
},
2824
]
25+
26+
@pytest.fixture(name='create_fake_dao')
27+
def _create_fake_dao() -> domain.ActivitiesDao:
28+
db_fake = infrastructure.DB('sqlite:///:memory:')
2929
dao = infrastructure.ActivitiesSQLDao(db_fake)
30-
if with_data:
31-
query = dao.activity.insert()
32-
db_fake.get_session().execute(query, demo_data)
3330
return dao
3431

3532

36-
@pytest.mark.parametrize('with_data',[False])
3733
def test__create_activity__returns_a_activity_dto__when_saves_correctly_with_sql_database(create_fake_dao):
3834
activity = {
3935
'name': 'Activity Demo create',
@@ -42,110 +38,67 @@ def test__create_activity__returns_a_activity_dto__when_saves_correctly_with_sql
4238
'status': 'active',
4339
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
4440
}
45-
46-
results = create_fake_dao.create_activity(activity)
47-
assert results.id != None
41+
results = create_fake_dao.create(activity)
42+
activity.update({"id":results.id})
43+
expected_result=domain.Activity(**activity)
44+
assert results == expected_result
4845

4946

50-
@pytest.mark.parametrize('with_data',[True])
51-
def test_update__returns_an_activity_updated__when_an_activity_matching_its_id_is_found_with_sql_database(create_fake_dao):
52-
activity = {
53-
'name': 'Activity Demo create 3',
54-
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
55-
'description': 'test demo create an new activity',
56-
'status': 'active',
57-
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
47+
def test_update__returns_an_update_activity__when_an_activity_matching_its_id_is_found_with_sql_database(create_fake_dao):
48+
create_fake_dao.create(DEMO_DATA[0])
49+
activity_body = {
50+
'description': 'test demo 2 create an new activity',
5851
}
59-
expected_result=domain.Activity(**{
60-
'id': 'b4327ba69f9649eea9ac3c1edf525172',
61-
'name': 'Activity Demo create 3',
62-
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
63-
'description': 'test demo create an new activity',
64-
'status': 'active',
65-
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
66-
})
67-
results = create_fake_dao.update_activity('b4327ba69f9649eea9ac3c1edf525172',activity)
52+
new_activity = {**DEMO_DATA[0], **activity_body}
53+
expected_result=domain.Activity(**new_activity)
54+
results = create_fake_dao.update('1',activity_body)
6855
assert results == expected_result
6956

7057

71-
@pytest.mark.parametrize('with_data',[False])
7258
def test_update__returns_none__when_no_activity_matching_its_id_is_found_with_sql_database(create_fake_dao):
73-
activity = {
74-
'name': 'Activity Demo create 3',
75-
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
76-
'description': 'test demo create an new activity',
77-
'status': 'active',
78-
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
79-
}
80-
results = create_fake_dao.update_activity('b4327ba69f9649eea9ac3c1edf525172',activity)
59+
results = create_fake_dao.update('1',DEMO_DATA[0])
8160
assert results == None
8261

8362

84-
@pytest.mark.parametrize('with_data',[True])
8563
def test__get_all__returns_a_list_of_activity_dto_objects__when_one_or_more_activities_are_found_with_sql_database(create_fake_dao):
64+
create_fake_dao.create(DEMO_DATA[0])
65+
create_fake_dao.create(DEMO_DATA[1])
8666
expected_result=[
87-
domain.Activity(**{
88-
'id': 'b4327ba69f9649eea9ac3c1edf525172',
89-
'name': 'Activity Demo create',
90-
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
91-
'description': 'test demo create an new activity',
92-
'status': 'active',
93-
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
94-
}),
95-
domain.Activity(**{
96-
'id': 'c61a4a49336449a3a7f70c5f2d15072b',
97-
'name': 'Activity Demo create',
98-
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
99-
'description': 'test demo create an new activity',
100-
'status': 'active',
101-
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
102-
}),
67+
domain.Activity(**DEMO_DATA[0]),
68+
domain.Activity(**DEMO_DATA[1]),
10369
]
104-
results = create_fake_dao.get_all_activities()
70+
results = create_fake_dao.get_all()
10571
assert results == expected_result
10672

10773

108-
@pytest.mark.parametrize('with_data',[True])
10974
def test_get_by_id__returns_an_activity_dto__when_found_one_activity_that_matches_its_id_with_sql_database(create_fake_dao):
110-
expected_result=domain.Activity(**{
111-
'id': 'b4327ba69f9649eea9ac3c1edf525172',
112-
'name': 'Activity Demo create',
113-
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
114-
'description': 'test demo create an new activity',
115-
'status': 'active',
116-
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
117-
})
118-
results = create_fake_dao.get_activity_by_id('b4327ba69f9649eea9ac3c1edf525172')
75+
create_fake_dao.create(DEMO_DATA[0])
76+
expected_result=domain.Activity(**DEMO_DATA[0])
77+
results = create_fake_dao.get_by_id('1')
11978
assert results == expected_result
12079

12180

122-
@pytest.mark.parametrize('with_data',[False])
12381
def test__get_by_id__returns_none__when_no_activity_matches_its_id_with_sql_database(create_fake_dao):
124-
results = create_fake_dao.get_activity_by_id('b4327ba69f9649eea9ac3c1edf525172')
82+
results = create_fake_dao.get_by_id('1')
12583
assert results == None
12684

12785

128-
@pytest.mark.parametrize('with_data',[False])
12986
def test_get_all__returns_an_empty_list__when_doesnt_found_any_activities_with_sql_database(create_fake_dao):
130-
results = create_fake_dao.get_all_activities()
87+
results = create_fake_dao.get_all()
13188
assert results == []
13289

13390

134-
@pytest.mark.parametrize('with_data',[True])
13591
def test_delete__returns_an_activity_with_inactive_status__when_an_activity_matching_its_id_is_found_with_sql_database(create_fake_dao):
136-
expected_result=domain.Activity(**{
137-
'id': 'b4327ba69f9649eea9ac3c1edf525172',
138-
'name': 'Activity Demo create',
139-
'tenant_id': 'cc925a5d-9644-4a4f-8d99-0bee49aadd05',
140-
'description': 'test demo create an new activity',
92+
create_fake_dao.create(DEMO_DATA[0])
93+
activity_body = {
14194
'status': 'inactive',
142-
'deleted': 'b4327ba6-9f96-49ee-a9ac-3c1edf525172',
143-
})
144-
results = create_fake_dao.delete_activity('b4327ba69f9649eea9ac3c1edf525172')
95+
}
96+
new_activity = {**DEMO_DATA[0], **activity_body}
97+
expected_result=domain.Activity(**new_activity)
98+
results = create_fake_dao.delete('1')
14599
assert results == expected_result
146100

147101

148-
@pytest.mark.parametrize('with_data',[False])
149102
def test_delete__returns_none__when_no_activity_matching_its_id_is_found_with_sql_database(create_fake_dao):
150-
results = create_fake_dao.delete_activity('b4327ba69f9649eea9ac3c1edf525172')
103+
results = create_fake_dao.delete('2')
151104
assert results == None

0 commit comments

Comments
 (0)