Skip to content

Commit 7b582b7

Browse files
committed
refactor: TT-352 improvement of endpoint testing for obtaining activities
1 parent 13133d1 commit 7b582b7

File tree

5 files changed

+82
-16
lines changed

5 files changed

+82
-16
lines changed

V2/tests/entry_points/flask_api/activities_endpoints_test.py renamed to V2/tests/api/flask/activity_endpoints_test.py

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,10 @@ def client():
3131
yield client
3232

3333

34-
def test__activities_class__uses_the_get_activities_use_case__to_retrieve_activities(client: FlaskClient,
35-
mocker: MockFixture):
36-
use_cases.get_list_activities = mocker.Mock(return_value=[])
34+
def test__activity_endpoint__returns_all_activities(
35+
client: FlaskClient, mocker: MockFixture
36+
):
37+
mocker.patch('V2.source.use_cases.get_list_activities', return_value=[])
3738

3839
response = client.get("/activities/")
3940
json_data = json.loads(response.data)
@@ -42,19 +43,27 @@ def test__activities_class__uses_the_get_activities_use_case__to_retrieve_activi
4243
assert [] == json_data
4344

4445

45-
def test__activity_class__returns_an_activity__when_activity_matches_its_id(client: FlaskClient, mocker: MockFixture):
46-
use_cases.get_activity_by_id = mocker.Mock(return_value=fake_activity_dto)
46+
def test__activity_endpoint__returns_an_activity__when_activity_matches_its_id(
47+
client: FlaskClient, mocker: MockFixture
48+
):
49+
mocker.patch(
50+
'V2.source.use_cases.get_activity_by_id',
51+
return_value=fake_activity_dto,
52+
)
4753

4854
response = client.get("/activities/%s" % valid_id)
4955

5056
assert response.status_code == HTTPStatus.OK
5157
assert fake_activity == json.loads(response.data)
5258

5359

54-
def test__activity_class__returns_an_activity__when_no_activity_matches_its_id(client: FlaskClient,
55-
mocker: MockFixture):
60+
def test__activity_endpoint__returns_a_not_found_status__when_no_activity_matches_its_id(
61+
client: FlaskClient, mocker: MockFixture
62+
):
5663
invalid_id = fake.uuid4()
57-
use_cases.get_activity_by_id = mocker.Mock(side_effect=NotFound)
64+
mocker.patch(
65+
'V2.source.use_cases.get_activity_by_id', side_effect=NotFound
66+
)
5867

5968
response = client.get("/activities/%s" % invalid_id)
6069

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
from V2.source.entry_points.flask_api.activities_endpoints import (
2+
Activities,
3+
Activity,
4+
)
5+
from V2.source import use_cases
6+
from V2.source.dtos.activity import Activity as ActivityDTO
7+
from pytest_mock import MockFixture
8+
from faker import Faker
9+
from werkzeug.exceptions import NotFound
10+
11+
fake = Faker()
12+
13+
valid_id = fake.uuid4()
14+
15+
fake_activity = {
16+
"name": fake.company(),
17+
"description": fake.paragraph(),
18+
"tenant_id": fake.uuid4(),
19+
"id": valid_id,
20+
"deleted": fake.date(),
21+
"status": fake.boolean(),
22+
}
23+
fake_activity_dto = ActivityDTO(**fake_activity)
24+
25+
26+
def test__activities_class__uses_the_get_activities_use_case__to_retrieve_activities(
27+
mocker: MockFixture,
28+
):
29+
mocker.patch('V2.source.use_cases.get_list_activities', return_value=[])
30+
31+
activities_class_endpoint = Activities()
32+
activities = activities_class_endpoint.get()
33+
34+
assert use_cases.get_list_activities.called
35+
assert [] == activities
36+
37+
38+
def test__activity_class__uses_the_get_activity_by_id_use_case__to_retrieve__an_activity(
39+
mocker: MockFixture,
40+
):
41+
mocker.patch(
42+
'V2.source.use_cases.get_activity_by_id',
43+
return_value=fake_activity_dto,
44+
)
45+
46+
activity_class_endpoint = Activity()
47+
activity = activity_class_endpoint.get(valid_id)
48+
49+
assert use_cases.get_activity_by_id.called
50+
assert fake_activity == activity

V2/tests/use_cases/activities_use_case_test.py renamed to V2/tests/unit/use_cases/activities_use_case_test.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,33 @@
1-
import pytest
1+
from V2.source import use_cases
22
from pytest_mock import MockFixture
33
from faker import Faker
44

5-
from V2.source import use_cases
6-
from V2.source.daos.activities_json_dao import ActivitiesJsonDao
7-
85
fake = Faker()
96

107

11-
def test__get_list_activities_function__uses_the_activities_service__to_retrieve_activities(mocker: MockFixture):
8+
def test__get_list_activities_function__uses_the_activities_service__to_retrieve_activities(
9+
mocker: MockFixture,
10+
):
1211
expected_activities = mocker.Mock()
13-
mocker.patch('V2.source.use_cases.get_list_activities', return_value=expected_activities);
12+
mocker.patch(
13+
'V2.source.use_cases.get_list_activities',
14+
return_value=expected_activities,
15+
)
1416

1517
actual_activities = use_cases.get_list_activities()
1618

1719
assert use_cases.get_list_activities.called
1820
assert expected_activities == actual_activities
1921

2022

21-
def test__get_activity_by_id_function__uses_the_activities_service__to_retrieve_activity(mocker: MockFixture):
23+
def test__get_activity_by_id_function__uses_the_activities_service__to_retrieve_activity(
24+
mocker: MockFixture,
25+
):
2226
expected_activity = mocker.Mock()
23-
mocker.patch('V2.source.use_cases.get_activity_by_id', return_value=expected_activity);
27+
mocker.patch(
28+
'V2.source.use_cases.get_activity_by_id',
29+
return_value=expected_activity,
30+
)
2431

2532
actual_activity = use_cases.get_activity_by_id(fake.uuid4())
2633

0 commit comments

Comments
 (0)