API - refacto tests
move some tests in models tests (to simplify api tests) + doc fix
This commit is contained in:
@@ -7,41 +7,7 @@ from fittrackee.users.models import User, UserSportPreference
|
||||
from fittrackee.workouts.models import Sport, Workout
|
||||
|
||||
from ..mixins import ApiTestCaseMixin
|
||||
|
||||
expected_sport_1_cycling_result = {
|
||||
'id': 1,
|
||||
'label': 'Cycling',
|
||||
'is_active': True,
|
||||
'is_active_for_user': True,
|
||||
'color': None,
|
||||
'stopped_speed_threshold': 1,
|
||||
}
|
||||
expected_sport_1_cycling_admin_result = expected_sport_1_cycling_result.copy()
|
||||
expected_sport_1_cycling_admin_result['has_workouts'] = False
|
||||
|
||||
expected_sport_2_running_result = {
|
||||
'id': 2,
|
||||
'label': 'Running',
|
||||
'is_active': True,
|
||||
'is_active_for_user': True,
|
||||
'color': None,
|
||||
'stopped_speed_threshold': 0.1,
|
||||
}
|
||||
expected_sport_2_running_admin_result = expected_sport_2_running_result.copy()
|
||||
expected_sport_2_running_admin_result['has_workouts'] = False
|
||||
|
||||
expected_sport_1_cycling_inactive_result = {
|
||||
'id': 1,
|
||||
'label': 'Cycling',
|
||||
'is_active': False,
|
||||
'is_active_for_user': False,
|
||||
'color': None,
|
||||
'stopped_speed_threshold': 1,
|
||||
}
|
||||
expected_sport_1_cycling_inactive_admin_result = (
|
||||
expected_sport_1_cycling_inactive_result.copy()
|
||||
)
|
||||
expected_sport_1_cycling_inactive_admin_result['has_workouts'] = False
|
||||
from ..utils import jsonify_dict
|
||||
|
||||
|
||||
class TestGetSports(ApiTestCaseMixin):
|
||||
@@ -75,8 +41,12 @@ class TestGetSports(ApiTestCaseMixin):
|
||||
assert response.status_code == 200
|
||||
assert 'success' in data['status']
|
||||
assert len(data['data']['sports']) == 2
|
||||
assert data['data']['sports'][0] == expected_sport_1_cycling_result
|
||||
assert data['data']['sports'][1] == expected_sport_2_running_result
|
||||
assert data['data']['sports'][0] == jsonify_dict(
|
||||
sport_1_cycling.serialize()
|
||||
)
|
||||
assert data['data']['sports'][1] == jsonify_dict(
|
||||
sport_2_running.serialize()
|
||||
)
|
||||
|
||||
def test_it_gets_all_sports_with_inactive_one(
|
||||
self,
|
||||
@@ -98,11 +68,12 @@ class TestGetSports(ApiTestCaseMixin):
|
||||
assert response.status_code == 200
|
||||
assert 'success' in data['status']
|
||||
assert len(data['data']['sports']) == 2
|
||||
assert (
|
||||
data['data']['sports'][0]
|
||||
== expected_sport_1_cycling_inactive_result
|
||||
assert data['data']['sports'][0] == jsonify_dict(
|
||||
sport_1_cycling_inactive.serialize()
|
||||
)
|
||||
assert data['data']['sports'][1] == jsonify_dict(
|
||||
sport_2_running.serialize()
|
||||
)
|
||||
assert data['data']['sports'][1] == expected_sport_2_running_result
|
||||
|
||||
def test_it_gets_all_sports_with_admin_rights(
|
||||
self,
|
||||
@@ -124,12 +95,11 @@ class TestGetSports(ApiTestCaseMixin):
|
||||
assert response.status_code == 200
|
||||
assert 'success' in data['status']
|
||||
assert len(data['data']['sports']) == 2
|
||||
assert (
|
||||
data['data']['sports'][0]
|
||||
== expected_sport_1_cycling_inactive_admin_result
|
||||
assert data['data']['sports'][0] == jsonify_dict(
|
||||
sport_1_cycling_inactive.serialize(is_admin=True)
|
||||
)
|
||||
assert (
|
||||
data['data']['sports'][1] == expected_sport_2_running_admin_result
|
||||
assert data['data']['sports'][1] == jsonify_dict(
|
||||
sport_2_running.serialize(is_admin=True)
|
||||
)
|
||||
|
||||
def test_it_gets_sports_with_auth_user_preferences(
|
||||
@@ -158,11 +128,14 @@ class TestGetSports(ApiTestCaseMixin):
|
||||
assert response.status_code == 200
|
||||
assert 'success' in data['status']
|
||||
assert len(data['data']['sports']) == 2
|
||||
assert data['data']['sports'][0]['color'] == '#000000'
|
||||
assert data['data']['sports'][0]['stopped_speed_threshold'] == 0.5
|
||||
assert data['data']['sports'][0]['is_active_for_user'] is False
|
||||
assert (
|
||||
data['data']['sports'][1] == expected_sport_2_running_admin_result
|
||||
assert data['data']['sports'][0] == jsonify_dict(
|
||||
sport_1_cycling.serialize(
|
||||
is_admin=True,
|
||||
sport_preferences=user_admin_sport_1_preference.serialize(),
|
||||
)
|
||||
)
|
||||
assert data['data']['sports'][1] == jsonify_dict(
|
||||
sport_2_running.serialize(is_admin=True)
|
||||
)
|
||||
|
||||
|
||||
@@ -183,7 +156,9 @@ class TestGetSport(ApiTestCaseMixin):
|
||||
assert response.status_code == 200
|
||||
assert 'success' in data['status']
|
||||
assert len(data['data']['sports']) == 1
|
||||
assert data['data']['sports'][0] == expected_sport_1_cycling_result
|
||||
assert data['data']['sports'][0] == jsonify_dict(
|
||||
sport_1_cycling.serialize()
|
||||
)
|
||||
|
||||
def test_it_gets_a_sport_with_preferences(
|
||||
self,
|
||||
@@ -205,7 +180,11 @@ class TestGetSport(ApiTestCaseMixin):
|
||||
assert response.status_code == 200
|
||||
assert 'success' in data['status']
|
||||
assert len(data['data']['sports']) == 1
|
||||
assert data['data']['sports'][0] == expected_sport_1_cycling_result
|
||||
assert data['data']['sports'][0] == jsonify_dict(
|
||||
sport_1_cycling.serialize(
|
||||
sport_preferences=user_sport_1_preference.serialize()
|
||||
)
|
||||
)
|
||||
|
||||
def test_it_returns_404_if_sport_does_not_exist(
|
||||
self, app: Flask, user_1: User
|
||||
@@ -238,9 +217,8 @@ class TestGetSport(ApiTestCaseMixin):
|
||||
assert response.status_code == 200
|
||||
assert 'success' in data['status']
|
||||
assert len(data['data']['sports']) == 1
|
||||
assert (
|
||||
data['data']['sports'][0]
|
||||
== expected_sport_1_cycling_inactive_result
|
||||
assert data['data']['sports'][0] == jsonify_dict(
|
||||
sport_1_cycling_inactive.serialize()
|
||||
)
|
||||
|
||||
def test_it_get_an_inactive_sport_with_admin_rights(
|
||||
@@ -259,9 +237,8 @@ class TestGetSport(ApiTestCaseMixin):
|
||||
assert response.status_code == 200
|
||||
assert 'success' in data['status']
|
||||
assert len(data['data']['sports']) == 1
|
||||
assert (
|
||||
data['data']['sports'][0]
|
||||
== expected_sport_1_cycling_inactive_admin_result
|
||||
assert data['data']['sports'][0] == jsonify_dict(
|
||||
sport_1_cycling_inactive.serialize(is_admin=True)
|
||||
)
|
||||
|
||||
|
||||
@@ -388,7 +365,6 @@ class TestUpdateSport(ApiTestCaseMixin):
|
||||
assert len(data['data']['sports']) == 1
|
||||
assert data['data']['sports'][0]['is_active'] is False
|
||||
assert data['data']['sports'][0]['is_active_for_user'] is False
|
||||
assert data['data']['sports'][0]['is_active_for_user'] is False
|
||||
assert data['data']['sports'][0]['has_workouts'] is False
|
||||
|
||||
def test_it_enables_a_sport_with_preferences(
|
||||
|
||||
Reference in New Issue
Block a user