API & Client - move user preferences + add picture edition
This commit is contained in:
@ -529,9 +529,6 @@ class TestUserProfileUpdate(ApiTestCaseMixin):
|
||||
birth_date='1980-01-01',
|
||||
password='87654321',
|
||||
password_conf='87654321',
|
||||
timezone='America/New_York',
|
||||
weekm=True,
|
||||
language='fr',
|
||||
)
|
||||
),
|
||||
headers=dict(Authorization=f'Bearer {auth_token}'),
|
||||
@ -550,9 +547,9 @@ class TestUserProfileUpdate(ApiTestCaseMixin):
|
||||
assert data['data']['birth_date']
|
||||
assert data['data']['bio'] == 'Nothing to tell'
|
||||
assert data['data']['location'] == 'Somewhere'
|
||||
assert data['data']['timezone'] == 'America/New_York'
|
||||
assert data['data']['weekm'] is True
|
||||
assert data['data']['language'] == 'fr'
|
||||
assert data['data']['timezone'] is None
|
||||
assert data['data']['weekm'] is False
|
||||
assert data['data']['language'] is None
|
||||
assert data['data']['nb_sports'] == 0
|
||||
assert data['data']['nb_workouts'] == 0
|
||||
assert data['data']['records'] == []
|
||||
@ -575,9 +572,6 @@ class TestUserProfileUpdate(ApiTestCaseMixin):
|
||||
location='Somewhere',
|
||||
bio='Nothing to tell',
|
||||
birth_date='1980-01-01',
|
||||
timezone='America/New_York',
|
||||
weekm=True,
|
||||
language='fr',
|
||||
)
|
||||
),
|
||||
headers=dict(Authorization=f'Bearer {auth_token}'),
|
||||
@ -596,9 +590,9 @@ class TestUserProfileUpdate(ApiTestCaseMixin):
|
||||
assert data['data']['birth_date']
|
||||
assert data['data']['bio'] == 'Nothing to tell'
|
||||
assert data['data']['location'] == 'Somewhere'
|
||||
assert data['data']['timezone'] == 'America/New_York'
|
||||
assert data['data']['weekm'] is True
|
||||
assert data['data']['language'] == 'fr'
|
||||
assert data['data']['timezone'] is None
|
||||
assert data['data']['weekm'] is False
|
||||
assert data['data']['language'] is None
|
||||
assert data['data']['nb_sports'] == 0
|
||||
assert data['data']['nb_workouts'] == 0
|
||||
assert data['data']['records'] == []
|
||||
@ -657,9 +651,6 @@ class TestUserProfileUpdate(ApiTestCaseMixin):
|
||||
birth_date='1980-01-01',
|
||||
password='87654321',
|
||||
password_conf='876543210',
|
||||
timezone='America/New_York',
|
||||
weekm=True,
|
||||
language='en',
|
||||
)
|
||||
),
|
||||
headers=dict(Authorization=f'Bearer {auth_token}'),
|
||||
@ -689,9 +680,6 @@ class TestUserProfileUpdate(ApiTestCaseMixin):
|
||||
bio='just a random guy',
|
||||
birth_date='1980-01-01',
|
||||
password='87654321',
|
||||
timezone='America/New_York',
|
||||
weekm=True,
|
||||
language='en',
|
||||
)
|
||||
),
|
||||
headers=dict(Authorization=f'Bearer {auth_token}'),
|
||||
@ -706,6 +694,83 @@ class TestUserProfileUpdate(ApiTestCaseMixin):
|
||||
assert response.status_code == 400
|
||||
|
||||
|
||||
class TestUserPreferencesUpdate(ApiTestCaseMixin):
|
||||
def test_it_updates_user_preferences(
|
||||
self, app: Flask, user_1: User
|
||||
) -> None:
|
||||
client, auth_token = self.get_test_client_and_auth_token(app)
|
||||
|
||||
response = client.post(
|
||||
'/api/auth/profile/edit/preferences',
|
||||
content_type='application/json',
|
||||
data=json.dumps(
|
||||
dict(
|
||||
timezone='America/New_York',
|
||||
weekm=True,
|
||||
language='fr',
|
||||
)
|
||||
),
|
||||
headers=dict(Authorization=f'Bearer {auth_token}'),
|
||||
)
|
||||
|
||||
data = json.loads(response.data.decode())
|
||||
assert data['status'] == 'success'
|
||||
assert data['message'] == 'User preferences updated.'
|
||||
assert response.status_code == 200
|
||||
assert data['data']['username'] == 'test'
|
||||
assert data['data']['email'] == 'test@test.com'
|
||||
assert not data['data']['admin']
|
||||
assert data['data']['created_at']
|
||||
assert data['data']['first_name'] is None
|
||||
assert data['data']['last_name'] is None
|
||||
assert data['data']['birth_date'] is None
|
||||
assert data['data']['bio'] is None
|
||||
assert data['data']['location'] is None
|
||||
assert data['data']['timezone'] == 'America/New_York'
|
||||
assert data['data']['weekm'] is True
|
||||
assert data['data']['language'] == 'fr'
|
||||
assert data['data']['nb_sports'] == 0
|
||||
assert data['data']['nb_workouts'] == 0
|
||||
assert data['data']['records'] == []
|
||||
assert data['data']['sports_list'] == []
|
||||
assert data['data']['total_distance'] == 0
|
||||
assert data['data']['total_duration'] == '0:00:00'
|
||||
|
||||
def test_it_returns_error_if_fields_are_missing(
|
||||
self, app: Flask, user_1: User
|
||||
) -> None:
|
||||
client, auth_token = self.get_test_client_and_auth_token(app)
|
||||
|
||||
response = client.post(
|
||||
'/api/auth/profile/edit/preferences',
|
||||
content_type='application/json',
|
||||
data=json.dumps(dict(weekm=True)),
|
||||
headers=dict(Authorization=f'Bearer {auth_token}'),
|
||||
)
|
||||
|
||||
data = json.loads(response.data.decode())
|
||||
assert data['status'] == 'error'
|
||||
assert data['message'] == 'Invalid payload.'
|
||||
assert response.status_code == 400
|
||||
|
||||
def test_it_returns_error_if_payload_is_empty(
|
||||
self, app: Flask, user_1: User
|
||||
) -> None:
|
||||
client, auth_token = self.get_test_client_and_auth_token(app)
|
||||
|
||||
response = client.post(
|
||||
'/api/auth/profile/edit/preferences',
|
||||
content_type='application/json',
|
||||
data=json.dumps(dict()),
|
||||
headers=dict(Authorization=f'Bearer {auth_token}'),
|
||||
)
|
||||
|
||||
data = json.loads(response.data.decode())
|
||||
assert response.status_code == 400
|
||||
assert 'Invalid payload.' in data['message']
|
||||
assert 'error' in data['status']
|
||||
|
||||
|
||||
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