API - fix workouts sort on duration (= moving time)
This commit is contained in:
parent
7ea74d51e7
commit
1dc35c379d
@ -1,4 +1,5 @@
|
||||
import json
|
||||
from datetime import timedelta
|
||||
from typing import List
|
||||
from unittest.mock import patch
|
||||
from uuid import uuid4
|
||||
@ -6,6 +7,7 @@ from uuid import uuid4
|
||||
import pytest
|
||||
from flask import Flask
|
||||
|
||||
from fittrackee import db
|
||||
from fittrackee.users.models import User
|
||||
from fittrackee.workouts.models import Sport, Workout
|
||||
|
||||
@ -558,7 +560,7 @@ class TestGetWorkoutsWithOrderBy(ApiTestCaseMixin):
|
||||
'total': 7,
|
||||
}
|
||||
|
||||
def test_it_gets_workouts_ordered_by_duration(
|
||||
def test_it_gets_workouts_ordered_by_moving_time(
|
||||
self,
|
||||
app: Flask,
|
||||
user_1: User,
|
||||
@ -568,6 +570,10 @@ class TestGetWorkoutsWithOrderBy(ApiTestCaseMixin):
|
||||
client, auth_token = self.get_test_client_and_auth_token(
|
||||
app, user_1.email
|
||||
)
|
||||
seven_workouts_user_1[6].duration = seven_workouts_user_1[
|
||||
6
|
||||
].moving + timedelta(seconds=1000)
|
||||
db.session.commit()
|
||||
|
||||
response = client.get(
|
||||
'/api/workouts?order_by=duration',
|
||||
@ -579,7 +585,23 @@ class TestGetWorkoutsWithOrderBy(ApiTestCaseMixin):
|
||||
assert 'success' in data['status']
|
||||
assert len(data['data']['workouts']) == 5
|
||||
assert '1:40:00' == data['data']['workouts'][0]['duration']
|
||||
assert '0:17:04' == data['data']['workouts'][4]['duration']
|
||||
assert '1:40:00' == data['data']['workouts'][0]['moving']
|
||||
assert (
|
||||
'Sun, 01 Apr 2018 00:00:00 GMT'
|
||||
== data['data']['workouts'][0]['workout_date']
|
||||
)
|
||||
assert '0:57:36' == data['data']['workouts'][1]['duration']
|
||||
assert '0:57:36' == data['data']['workouts'][1]['moving']
|
||||
assert (
|
||||
'Thu, 01 Jun 2017 00:00:00 GMT'
|
||||
== data['data']['workouts'][1]['workout_date']
|
||||
)
|
||||
assert '1:06:40' == data['data']['workouts'][2]['duration']
|
||||
assert '0:50:00' == data['data']['workouts'][2]['moving']
|
||||
assert (
|
||||
'Wed, 09 May 2018 00:00:00 GMT'
|
||||
== data['data']['workouts'][2]['workout_date']
|
||||
)
|
||||
assert data['pagination'] == {
|
||||
'has_next': True,
|
||||
'has_prev': False,
|
||||
|
@ -224,8 +224,9 @@ def get_workouts(auth_user: User) -> Union[Dict, HttpResponse]:
|
||||
ave_speed_to = params.get('ave_speed_to')
|
||||
max_speed_from = params.get('max_speed_from')
|
||||
max_speed_to = params.get('max_speed_to')
|
||||
order_by = params.get('order_by', 'workout_date')
|
||||
workout_column = getattr(
|
||||
Workout, params.get('order_by', 'workout_date')
|
||||
Workout, 'moving' if order_by == 'duration' else order_by
|
||||
)
|
||||
order = params.get('order', 'desc')
|
||||
sport_id = params.get('sport_id')
|
||||
|
Loading…
Reference in New Issue
Block a user