API - add endpoint to reset sport preferences - #123
This commit is contained in:
@ -7,7 +7,7 @@ import pytest
|
||||
from flask import Flask
|
||||
from freezegun import freeze_time
|
||||
|
||||
from fittrackee.users.models import User
|
||||
from fittrackee.users.models import User, UserSportPreference
|
||||
from fittrackee.users.utils_token import get_user_token
|
||||
from fittrackee.workouts.models import Sport, Workout
|
||||
|
||||
@ -887,6 +887,7 @@ class TestUserSportPreferencesUpdate(ApiTestCaseMixin):
|
||||
data = json.loads(response.data.decode())
|
||||
assert response.status_code == 404
|
||||
assert 'not found' in data['status']
|
||||
assert 'sport does not exist' in data['message']
|
||||
|
||||
def test_it_returns_error_if_payload_contains_only_sport_id(
|
||||
self, app: Flask, user_1: User, sport_1_cycling: Sport
|
||||
@ -1017,6 +1018,60 @@ class TestUserSportPreferencesUpdate(ApiTestCaseMixin):
|
||||
assert data['data']['stopped_speed_threshold'] == 0.5
|
||||
|
||||
|
||||
class TestUserSportPreferencesReset(ApiTestCaseMixin):
|
||||
def test_it_returns_error_if_sport_does_not_exist(
|
||||
self, app: Flask, user_1: User
|
||||
) -> None:
|
||||
client, auth_token = self.get_test_client_and_auth_token(app)
|
||||
|
||||
response = client.delete(
|
||||
'/api/auth/profile/reset/sports/1',
|
||||
headers=dict(Authorization=f'Bearer {auth_token}'),
|
||||
)
|
||||
|
||||
assert response.status_code == 404
|
||||
data = json.loads(response.data.decode())
|
||||
assert 'not found' in data['status']
|
||||
assert 'sport does not exist' in data['message']
|
||||
|
||||
def test_it_resets_sport_preferences(
|
||||
self,
|
||||
app: Flask,
|
||||
user_1: User,
|
||||
sport_1_cycling: Sport,
|
||||
user_sport_1_preference: UserSportPreference,
|
||||
) -> None:
|
||||
client, auth_token = self.get_test_client_and_auth_token(app)
|
||||
user_sport_1_preference.is_active = False
|
||||
user_sport_1_preference.stopped_speed_threshold = 0.5
|
||||
|
||||
response = client.delete(
|
||||
f'/api/auth/profile/reset/sports/{sport_1_cycling.id}',
|
||||
headers=dict(Authorization=f'Bearer {auth_token}'),
|
||||
)
|
||||
|
||||
assert response.status_code == 204
|
||||
assert (
|
||||
UserSportPreference.query.filter_by(
|
||||
user_id=user_1.id,
|
||||
sport_id=sport_1_cycling.id,
|
||||
).first()
|
||||
is None
|
||||
)
|
||||
|
||||
def test_it_does_not_raise_error_if_sport_preferences_do_not_exist(
|
||||
self, app: Flask, user_1: User, sport_1_cycling: Sport
|
||||
) -> None:
|
||||
client, auth_token = self.get_test_client_and_auth_token(app)
|
||||
|
||||
response = client.delete(
|
||||
f'/api/auth/profile/reset/sports/{sport_1_cycling.id}',
|
||||
headers=dict(Authorization=f'Bearer {auth_token}'),
|
||||
)
|
||||
|
||||
assert response.status_code == 204
|
||||
|
||||
|
||||
class TestUserPicture(ApiTestCaseMixin):
|
||||
def test_it_updates_user_picture(self, app: Flask, user_1: User) -> None:
|
||||
client, auth_token = self.get_test_client_and_auth_token(app)
|
||||
|
Reference in New Issue
Block a user