API & Client: add timezone to user - #11

This commit is contained in:
Sam
2018-06-11 15:10:18 +02:00
parent 793ef22c59
commit fe91040370
17 changed files with 98 additions and 4 deletions

View File

@ -49,6 +49,7 @@ def user_1_full():
user.last_name = 'Doe'
user.bio = 'just a random guy'
user.location = 'somewhere'
user.timezone = 'America/New_York'
user.birth_date = datetime.datetime.strptime('01/01/1980', '%d/%m/%Y')
db.session.add(user)
db.session.commit()

View File

@ -397,6 +397,7 @@ def test_user_profile_minimal(app, user_1):
assert data['data']['email'] == 'test@test.com'
assert data['data']['created_at']
assert not data['data']['admin']
assert data['data']['timezone'] is None
assert data['data']['nb_activities'] == 0
assert data['data']['nb_sports'] == 0
assert data['data']['total_distance'] == 0
@ -434,6 +435,7 @@ def test_user_profile_full(app, user_1_full):
assert data['data']['birth_date']
assert data['data']['bio'] == 'just a random guy'
assert data['data']['location'] == 'somewhere'
assert data['data']['timezone'] == 'America/New_York'
assert data['data']['nb_activities'] == 0
assert data['data']['nb_sports'] == 0
assert data['data']['total_distance'] == 0
@ -469,6 +471,7 @@ def test_user_profile_with_activities(
assert data['data']['email'] == 'test@test.com'
assert data['data']['created_at']
assert not data['data']['admin']
assert data['data']['timezone'] is None
assert data['data']['nb_activities'] == 2
assert data['data']['nb_sports'] == 2
assert data['data']['total_distance'] == 22
@ -507,7 +510,8 @@ def test_user_profile_valid_update(app, user_1):
bio='just a random guy',
birth_date='1980-01-01',
password='87654321',
password_conf='87654321'
password_conf='87654321',
timezone='America/New_York'
)),
headers=dict(
Authorization='Bearer ' + json.loads(
@ -627,7 +631,8 @@ def test_user_profile_invalid_password(app, user_1):
bio='just a random guy',
birth_date='1980-01-01',
password='87654321',
password_conf='876543210'
password_conf='876543210',
timezone='America/New_York'
)),
headers=dict(
Authorization='Bearer ' + json.loads(
@ -661,6 +666,7 @@ def test_user_profile_missing_password_conf(app, user_1):
bio='just a random guy',
birth_date='1980-01-01',
password='87654321',
timezone='America/New_York'
)),
headers=dict(
Authorization='Bearer ' + json.loads(

View File

@ -32,6 +32,7 @@ def test_single_user(app, user_1):
assert data['data']['birth_date'] is None
assert data['data']['bio'] is None
assert data['data']['location'] is None
assert data['data']['timezone'] is None
assert data['data']['nb_activities'] == 0
assert data['data']['nb_sports'] == 0
assert data['data']['total_distance'] == 0
@ -60,6 +61,7 @@ def test_single_user_with_activities(
assert data['data']['birth_date'] is None
assert data['data']['bio'] is None
assert data['data']['location'] is None
assert data['data']['timezone'] is None
assert data['data']['nb_activities'] == 2
assert data['data']['nb_sports'] == 2
assert data['data']['total_distance'] == 22
@ -105,10 +107,12 @@ def test_users_list(app, user_1, user_2):
assert 'toto' in data['data']['users'][1]['username']
assert 'test@test.com' in data['data']['users'][0]['email']
assert 'toto@toto.com' in data['data']['users'][1]['email']
assert data['data']['users'][0]['timezone'] is None
assert data['data']['users'][0]['nb_activities'] == 0
assert data['data']['users'][0]['nb_sports'] == 0
assert data['data']['users'][0]['total_distance'] == 0
assert data['data']['users'][0]['total_duration'] == '0:00:00'
assert data['data']['users'][1]['timezone'] is None
assert data['data']['users'][1]['nb_activities'] == 0
assert data['data']['users'][1]['nb_sports'] == 0
assert data['data']['users'][1]['total_distance'] == 0

View File

@ -12,6 +12,7 @@ def test_user_model(app, user_1):
assert serialized_user['location'] is None
assert serialized_user['birth_date'] is None
assert serialized_user['picture'] is False
assert serialized_user['timezone'] is None
assert serialized_user['nb_activities'] == 0
assert serialized_user['nb_sports'] == 0
assert serialized_user['total_distance'] == 0

View File

@ -185,6 +185,7 @@ def edit_user(user_id):
location = post_data.get('location')
password = post_data.get('password')
password_conf = post_data.get('password_conf')
timezone = post_data.get('timezone')
if password is not None and password != '':
if password_conf != password:
@ -211,6 +212,7 @@ def edit_user(user_id):
)
if password is not None and password != '':
user.password = password
user.timezone = timezone
db.session.commit()
response_object = {

View File

@ -22,6 +22,7 @@ class User(db.Model):
location = db.Column(db.String(80), nullable=True)
bio = db.Column(db.String(200), nullable=True)
picture = db.Column(db.String(255), nullable=True)
timezone = db.Column(db.String(50), nullable=True)
activities = db.relationship('Activity',
lazy=True,
backref=db.backref('users', lazy='joined'))
@ -111,6 +112,7 @@ class User(db.Model):
'location': self.location,
'birth_date': self.birth_date,
'picture': self.picture is not None,
'timezone': self.timezone,
'nb_activities': nb_activity,
'nb_sports': len(sports),
'total_distance': float(total[0]) if total[0] else 0,