API: tests update
This commit is contained in:
		| @@ -441,3 +441,12 @@ def gpx_file_wo_track(): | ||||
|         '  <metadata/>' | ||||
|         '</gpx>' | ||||
|     ) | ||||
|  | ||||
|  | ||||
| @pytest.fixture() | ||||
| def gpx_file_invalid_xml(): | ||||
|     return ( | ||||
|         '<?xml version=\'1.0\' encoding=\'UTF-8\'?>' | ||||
|         '<gpx xmlns:gpxdata="http://www.cluetrust.com/XML/GPXDATA/1/0" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" xmlns:gpxext="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns="http://www.topografix.com/GPX/1/1">'  # noqa | ||||
|         '  <metadata/>' | ||||
|     ) | ||||
|   | ||||
| @@ -227,3 +227,85 @@ def test_get_an_activity_invalid_id(app, user_1): | ||||
|     assert response.status_code == 404 | ||||
|     assert 'not found' in data['status'] | ||||
|     assert len(data['data']['activities']) == 0 | ||||
|  | ||||
|  | ||||
| def test_get_an_activity_no_actvity_no_gpx(app, user_1): | ||||
|     client = app.test_client() | ||||
|     resp_login = client.post( | ||||
|         '/api/auth/login', | ||||
|         data=json.dumps(dict( | ||||
|             email='test@test.com', | ||||
|             password='12345678' | ||||
|         )), | ||||
|         content_type='application/json' | ||||
|     ) | ||||
|     response = client.get( | ||||
|         '/api/activities/11/gpx', | ||||
|         headers=dict( | ||||
|             Authorization='Bearer ' + json.loads( | ||||
|                 resp_login.data.decode() | ||||
|             )['auth_token'] | ||||
|         ) | ||||
|     ) | ||||
|     data = json.loads(response.data.decode()) | ||||
|  | ||||
|     assert response.status_code == 404 | ||||
|     assert 'not found' in data['status'] | ||||
|     assert 'Activity not found (id: 11)' in data['message'] | ||||
|     assert data['data']['gpx'] == '' | ||||
|  | ||||
|  | ||||
| def test_get_an_activity_actvity_no_gpx( | ||||
|         app, user_1, sport_1_cycling, activity_cycling_user_1 | ||||
| ): | ||||
|     client = app.test_client() | ||||
|     resp_login = client.post( | ||||
|         '/api/auth/login', | ||||
|         data=json.dumps(dict( | ||||
|             email='test@test.com', | ||||
|             password='12345678' | ||||
|         )), | ||||
|         content_type='application/json' | ||||
|     ) | ||||
|     response = client.get( | ||||
|         '/api/activities/1/gpx', | ||||
|         headers=dict( | ||||
|             Authorization='Bearer ' + json.loads( | ||||
|                 resp_login.data.decode() | ||||
|             )['auth_token'] | ||||
|         ) | ||||
|     ) | ||||
|     data = json.loads(response.data.decode()) | ||||
|  | ||||
|     assert response.status_code == 400 | ||||
|     assert 'fail' in data['status'] | ||||
|     assert 'No gpx file for this activity (id: 1)' in data['message'] | ||||
|  | ||||
|  | ||||
| def test_get_an_activity_actvity_invalid_gpx( | ||||
|         app, user_1, sport_1_cycling, activity_cycling_user_1 | ||||
| ): | ||||
|     activity_cycling_user_1.gpx = "some path" | ||||
|     client = app.test_client() | ||||
|     resp_login = client.post( | ||||
|         '/api/auth/login', | ||||
|         data=json.dumps(dict( | ||||
|             email='test@test.com', | ||||
|             password='12345678' | ||||
|         )), | ||||
|         content_type='application/json' | ||||
|     ) | ||||
|     response = client.get( | ||||
|         '/api/activities/1/gpx', | ||||
|         headers=dict( | ||||
|             Authorization='Bearer ' + json.loads( | ||||
|                 resp_login.data.decode() | ||||
|             )['auth_token'] | ||||
|         ) | ||||
|     ) | ||||
|     data = json.loads(response.data.decode()) | ||||
|  | ||||
|     assert response.status_code == 500 | ||||
|     assert 'error' in data['status'] | ||||
|     assert 'internal error' in data['message'] | ||||
|     assert data['data']['gpx'] == '' | ||||
|   | ||||
| @@ -134,7 +134,7 @@ def test_add_an_activity_gpx(app, user_1, sport_1_cycling, gpx_file): | ||||
|     assert_activity_data_with_gpx(data) | ||||
|  | ||||
|  | ||||
| def test_add_an_activity_with_gpx(app, user_1, sport_1_cycling, gpx_file): | ||||
| def test_get_an_activity_with_gpx(app, user_1, sport_1_cycling, gpx_file): | ||||
|     client = app.test_client() | ||||
|     resp_login = client.post( | ||||
|         '/api/auth/login', | ||||
| @@ -173,6 +173,21 @@ def test_add_an_activity_with_gpx(app, user_1, sport_1_cycling, gpx_file): | ||||
|     assert 'just an activity' == data['data']['activities'][0]['title'] | ||||
|     assert_activity_data_with_gpx(data) | ||||
|  | ||||
|     response = client.get( | ||||
|         '/api/activities/1/gpx', | ||||
|         headers=dict( | ||||
|             Authorization='Bearer ' + json.loads( | ||||
|                 resp_login.data.decode() | ||||
|             )['auth_token'] | ||||
|         ) | ||||
|     ) | ||||
|     data = json.loads(response.data.decode()) | ||||
|  | ||||
|     assert response.status_code == 200 | ||||
|     assert 'success' in data['status'] | ||||
|     assert '' in data['message'] | ||||
|     assert len(data['data']['gpx']) != '' | ||||
|  | ||||
|  | ||||
| def test_add_an_activity_with_gpx_without_name( | ||||
|     app, user_1, sport_1_cycling, gpx_file_wo_name | ||||
| @@ -241,6 +256,39 @@ def test_add_an_activity_with_gpx_invalid_file( | ||||
|     assert 'data' not in data | ||||
|  | ||||
|  | ||||
| def test_add_an_activity_with_gpx_invalid_xml( | ||||
|     app, user_1, sport_1_cycling, gpx_file_invalid_xml | ||||
| ): | ||||
|     client = app.test_client() | ||||
|     resp_login = client.post( | ||||
|         '/api/auth/login', | ||||
|         data=json.dumps(dict( | ||||
|             email='test@test.com', | ||||
|             password='12345678' | ||||
|         )), | ||||
|         content_type='application/json' | ||||
|     ) | ||||
|     response = client.post( | ||||
|         '/api/activities', | ||||
|         data=dict( | ||||
|             file=(BytesIO(str.encode(gpx_file_invalid_xml)), 'example.gpx'), | ||||
|             data='{"sport_id": 1}' | ||||
|         ), | ||||
|         headers=dict( | ||||
|             content_type='multipart/form-data', | ||||
|             Authorization='Bearer ' + json.loads( | ||||
|                 resp_login.data.decode() | ||||
|             )['auth_token'] | ||||
|         ) | ||||
|     ) | ||||
|     data = json.loads(response.data.decode()) | ||||
|  | ||||
|     assert response.status_code == 500 | ||||
|     assert 'error' in data['status'] | ||||
|     assert 'Error during gpx file parsing.' in data['message'] | ||||
|     assert 'data' not in data | ||||
|  | ||||
|  | ||||
| def test_add_an_activity_gpx_invalid_extension( | ||||
|     app, user_1, sport_1_cycling, gpx_file | ||||
| ): | ||||
|   | ||||
| @@ -28,6 +28,27 @@ def test_record_model( | ||||
|     assert 'value' in record_serialize | ||||
|  | ||||
|  | ||||
| def test_record_model_none_value( | ||||
|     app,  user_1, sport_1_cycling, activity_cycling_user_1 | ||||
| ): | ||||
|     record_ld = Record.query.filter_by( | ||||
|         user_id=activity_cycling_user_1.user_id, | ||||
|         sport_id=activity_cycling_user_1.sport_id, | ||||
|         record_type='LD', | ||||
|     ).first() | ||||
|     record_ld.value = None | ||||
|     assert 1 == record_ld.user_id | ||||
|     assert 1 == record_ld.sport_id | ||||
|     assert 1 == record_ld.activity_id | ||||
|     assert 'LD' == record_ld.record_type | ||||
|     assert '2018-01-01 00:00:00' == str(record_ld.activity_date) | ||||
|     assert '<Record Cycling - LD - 2018-01-01>' == str(record_ld) | ||||
|     assert record_ld.value is None | ||||
|  | ||||
|     record_serialize = record_ld.serialize() | ||||
|     assert record_serialize['value'] is None | ||||
|  | ||||
|  | ||||
| def test_add_as_records( | ||||
|     app,  user_1, sport_1_cycling, activity_cycling_user_1 | ||||
| ): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user