API & Client: use segment index on API only - fix #14
This commit is contained in:
@ -123,13 +123,20 @@ def get_gpx_info(gpx_file, update_map_data=True, update_weather_data=True):
|
||||
|
||||
def get_gpx_segments(track_segments, segment_id=None):
|
||||
if segment_id is not None:
|
||||
if segment_id > (len(track_segments) - 1):
|
||||
segment_index = segment_id - 1
|
||||
if segment_index > (len(track_segments) - 1):
|
||||
raise ActivityGPXException(
|
||||
'not found',
|
||||
f'No segment with id \'{segment_id}\'',
|
||||
None
|
||||
)
|
||||
segments = [track_segments[segment_id]]
|
||||
if segment_index < 0:
|
||||
raise ActivityGPXException(
|
||||
'error',
|
||||
'Incorrect segment id',
|
||||
None
|
||||
)
|
||||
segments = [track_segments[segment_index]]
|
||||
else:
|
||||
segments = track_segments
|
||||
|
||||
|
@ -275,7 +275,7 @@ def activity_assertion(app, user_1, sport_1_cycling, gpx_file, with_segments):
|
||||
assert len(data['data']['gpx']) != ''
|
||||
|
||||
response = client.get(
|
||||
'/api/activities/1/gpx/segment/0',
|
||||
'/api/activities/1/gpx/segment/1',
|
||||
headers=dict(
|
||||
Authorization='Bearer ' + json.loads(
|
||||
resp_login.data.decode()
|
||||
@ -435,7 +435,7 @@ def test_get_chart_data_activty_with_gpx(
|
||||
assert data['data']['chart_data'] != ''
|
||||
|
||||
response = client.get(
|
||||
'/api/activities/1/chart_data/segment/0',
|
||||
'/api/activities/1/chart_data/segment/1',
|
||||
headers=dict(
|
||||
Authorization='Bearer ' + json.loads(
|
||||
resp_login.data.decode()
|
||||
@ -449,6 +449,21 @@ def test_get_chart_data_activty_with_gpx(
|
||||
assert data['message'] == ''
|
||||
assert data['data']['chart_data'] != ''
|
||||
|
||||
response = client.get(
|
||||
'/api/activities/1/chart_data/segment/0',
|
||||
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 data['message'] == 'Incorrect segment id'
|
||||
assert 'data' not in data
|
||||
|
||||
response = client.get(
|
||||
'/api/activities/1/chart_data/segment/999999',
|
||||
headers=dict(
|
||||
|
Reference in New Issue
Block a user