Private
Public Access
1
0

going through tests

This commit is contained in:
2024-04-29 20:06:41 +02:00
parent 54e4c8795e
commit f6c535d2d6
15 changed files with 89 additions and 326 deletions
-57
View File
@@ -1,5 +1,4 @@
from rowers.courseutils import coursetime_paths, coursetime_first, time_in_path
import pandas as pd
from rowers.models import (
Rower, Workout,
GeoPoint, GeoPolygon, GeoCourse,
@@ -420,62 +419,6 @@ def createcourse(
return c
def get_time_course(ws, course): # pragma: no cover
coursetimeseconds = 0.0
coursecompleted = False
w = ws[0]
columns = ['time', ' latitude', ' longitude', 'cum_dist']
rowdata = dataprep.getsmallrowdata_db(
columns,
ids=[w.id],
doclean=False,
workstrokesonly=False
)
rowdata.rename(columns={
' latitude': 'latitude',
' longitude': 'longitude',
}, inplace=True)
rowdata['time'] = rowdata['time']/1000.
rowdata.fillna(method='backfill', inplace=True)
rowdata['time'] = rowdata['time']-rowdata.ix[0, 'time']
# we may want to expand the time (interpolate)
rowdata['dt'] = rowdata['time'].apply(
lambda x: timedelta(seconds=x)
)
rowdata = rowdata.resample('100ms', on='dt').mean()
rowdata = rowdata.interpolate()
# create path
polygons = GeoPolygon.objects.filter(
course=course).order_by("order_in_course")
paths = []
for polygon in polygons:
path = polygon_to_path(polygon)
paths.append(path)
(
coursetimeseconds,
coursemeters,
coursecompleted,
) = coursetime_paths(rowdata, paths)
(
coursetimefirst,
coursemetersfirst,
firstcompleted
) = coursetime_first(
rowdata, paths)
coursetimeseconds = coursetimeseconds-coursetimefirst
coursemeters = coursemeters-coursemetersfirst
return coursetimeseconds, coursemeters, coursecompleted
def replacecourse(course1, course2):
ps = PlannedSession.objects.filter(course=course1)
-39
View File
@@ -758,45 +758,6 @@ def fetchcp_new(rower, workouts):
return df['delta'], df['cp'], 0, df['workout'], df['url']
def fetchcp(rower, theworkouts, table='cpdata'): # pragma: no cover
# get all power data from database (plus workoutid)
theids = [int(w.id) for w in theworkouts]
columns = ['power', 'workoutid', 'time']
df = getsmallrowdata_db(columns, ids=theids)
df.dropna(inplace=True, axis=0)
if df.empty:
avgpower2 = {}
for id in theids:
avgpower2[id] = 0
return pd.Series([], dtype='float'), pd.Series([], dtype='float'), avgpower2
try:
dfgrouped = df.groupby(['workoutid'])
except KeyError:
avgpower2 = {}
return pd.Series([], dtype='float'), pd.Series([], dtype='float'), avgpower2
try:
avgpower2 = dict(dfgrouped.mean()['power'].astype(int))
except KeyError:
avgpower2 = {}
for id in theids:
avgpower2[id] = 0
return pd.Series([], dtype='float'), pd.Series([], dtype='float'), avgpower2
cpdf = getcpdata_sql(rower.id, table=table)
if not cpdf.empty:
return cpdf['delta'], cpdf['cp'], avgpower2
else:
_ = myqueue(queuelow,
handle_updatecp,
rower.id,
theids,
table=table)
return pd.Series([], dtype='float'), pd.Series([], dtype='float'), avgpower2
return pd.Series([], dtype='float'), pd.Series([], dtype='float'), avgpower2
def update_rolling_cp(r, types, mode='water', dosend=False):
+3 -3
View File
@@ -205,7 +205,7 @@ def get_video_data(w, groups=['basic'], mode='water'):
columns += [name for name, d in rowingmetrics if d['group']
in groups and d['mode'] in modes]
columns = list(set(columns))
df = getsmallrowdata_db(columns, ids=[w.id],
df = getsmallrowdata_pd(columns, ids=[w.id],
workstrokesonly=False, doclean=False, compute=False)
df['time'] = (df['time']-df['time'].min())/1000.
@@ -1772,7 +1772,7 @@ def read_cols_pl(ids, columns):
if len(ids) == 0:
return pl.DataFrame()
df = getsmallrowdata_pl(columns, ids=ids, doclean=False, compute=False)
df = read_data(columns, ids=ids, doclean=False, compute=False)
if 'peakforce' in columns:
funits = ((w.id, w.forceunit)
@@ -1980,7 +1980,7 @@ def datafusion(id1, id2, columns, offset):
def fix_newtons(id=0, limit=3000): # pragma: no cover
# rowdata,row = getrowdata_db(id=id,doclean=False,convertnewtons=False)
rowdata = getsmallrowdata_db(['peakforce'], ids=[id], doclean=False)
rowdata = read_data(['peakforce'], ids=[id], doclean=False)
try:
peakforce = rowdata['peakforce']
if peakforce.mean() > limit:
+2 -2
View File
@@ -1973,7 +1973,7 @@ def thumbnails_set(r, id, favorites):
columns += [f.yparam2 for f in favorites]
columns += ['time']
rowdata = dataprep.getsmallrowdata_db(columns, ids=[id], doclean=True)
rowdata = dataprep.getsmallrowdata_pd(columns, ids=[id], doclean=True)
try:
rowdata.dropna(axis=1, how='all', inplace=True)
@@ -1987,7 +1987,7 @@ def thumbnails_set(r, id, favorites):
if rowdata.empty:
try:
rowdata = dataprep.getsmallrowdata_db(columns, ids=[id], doclean=False,
rowdata = dataprep.getsmallrowdata_pd(columns, ids=[id], doclean=False,
workstrokesonly=False)
except: # pragma: no cover
return [
-2
View File
@@ -18,13 +18,11 @@ import rowers.dataprep as dataprep
import numpy as np
import rowers.metrics as metrics
import rowers.mytypes as mytypes
from rowers.courses import get_time_course
from rowers.utils import to_pace
from rowers.opaque import encoder
from rowingdata import rower as rrower
from rowingdata import rowingdata as rrdata
import arrow
import pandas as pd
import polars as pl
import json
+5
View File
@@ -58,6 +58,8 @@ class OwnApi(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code,200)
with patch('rowers.dataprep.read_data') as mock_read_data:
mock_read_data.return_value = pl.read_csv('rowers/tests/testdata/colsfromdb.csv')
url = reverse('strokedatajson',kwargs={'id':w.id})
request = self.factory.get(url)
@@ -120,12 +122,15 @@ class OwnApi(TestCase):
request = self.factory.get(url)
request.user = self.u
force_authenticate(request, user=self.u)
with patch('rowers.dataprep.read_data') as mock_read_data:
mock_read_data.return_value = pl.read_csv('rowers/tests/testdata/colsfromdb.csv')
response = strokedatajson_v2(request,id=w.id)
self.assertEqual(response.status_code,200)
# response must be json
strokedata = json.loads(response.content)
df = pl.from_dicts(strokedata['data'])
self.assertFalse(df.is_empty())
+6 -6
View File
@@ -108,8 +108,8 @@ class EmailUpload(TestCase):
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
def test_uploadapi2(self,mocked_sqlalchemy,mocked_getsmallrowdata_db):
@patch('rowers.dataprep.read_data',side_effect=mocked_read_data)
def test_uploadapi2(self,mocked_sqlalchemy,mocked_read_data):
form_data = {"secret": settings.UPLOAD_SERVICE_SECRET,
"user": 1,
"file": 'media/mailbox_attachments/colin3.csv',
@@ -140,8 +140,8 @@ class EmailUpload(TestCase):
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
def test_uploadapi3(self,mocked_sqlalchemy,mocked_getsmallrowdata_db):
@patch('rowers.dataprep.read_data',side_effect=mocked_read_data)
def test_uploadapi3(self,mocked_sqlalchemy,mocked_read_data):
with transaction.atomic():
form_data = {
'title': 'test',
@@ -167,8 +167,8 @@ class EmailUpload(TestCase):
self.assertEqual(w.notes,'aap noot mies')
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
def test_uploadapi_credentials(self,mocked_sqlalchemy,mocked_getsmallrowdata_db):
@patch('rowers.dataprep.read_data',side_effect=mocked_read_data)
def test_uploadapi_credentials(self,mocked_sqlalchemy,mocked_read_data):
form_data = {
'title': 'test',
'workouttype':'rower',
+4 -4
View File
@@ -103,8 +103,8 @@ class WorkoutViewTest(TestCase):
pass
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db')
def test_flexchart_water(self, mocked_sqlalechemy, mocked_getsmallrowdata_db):
@patch('rowers.dataprep.read_data')
def test_flexchart_water(self, mocked_sqlalechemy, mocked_read_data):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
@@ -151,8 +151,8 @@ class WorkoutViewTest(TestCase):
self.assertEqual(response.status_code,200)
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db')
def test_flexchart_erg(self, mocked_sqlalechemy, mocked_getsmallrowdata_db):
@patch('rowers.dataprep.read_data')
def test_flexchart_erg(self, mocked_sqlalechemy, mocked_read_data):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
+12 -12
View File
@@ -720,8 +720,8 @@ class NKObjects(DjangoTestCase):
)
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
def test_nk_intervals(self,mocked_sqlalchemy,mocked_getsmallrowdata_db):
@patch('rowers.dataprep.read_data',side_effect=mocked_read_data)
def test_nk_intervals(self,mocked_sqlalchemy,mocked_read_data):
with open('rowers/tests/testdata/carlos_workout.json','r') as f:
workoutdata = json.load(f)
with open('rowers/tests/testdata/carlos_strokes.json','r') as f:
@@ -817,10 +817,10 @@ class NKObjects(DjangoTestCase):
@patch('rowers.integrations.nk.requests.get', side_effect=mocked_requests)
@patch('rowers.integrations.nk.requests.post', side_effect=mocked_requests)
@patch('rowers.nkimportutils.requests.session', side_effect=mocked_session)
@patch('rowers.dataprep.getsmallrowdata_db', side_effect=mocked_getsmallrowdata_db)
@patch('rowers.dataprep.read_data', side_effect=mocked_read_data)
def test_nk_import(self, mock_get, mock_post,
mocked_session,
mocked_getsmallrowdata_db):
mocked_read_data):
integration = NKIntegration(self.u)
result = integration.token_refresh()
@@ -854,10 +854,10 @@ class NKObjects(DjangoTestCase):
@patch('rowers.integrations.nk.requests.get', side_effect=mocked_requests)
@patch('rowers.integrations.nk.requests.post', side_effect=mocked_requests)
@patch('rowers.nkimportutils.requests.session', side_effect=mocked_session)
@patch('rowers.dataprep.getsmallrowdata_db', side_effect=mocked_getsmallrowdata_db)
@patch('rowers.dataprep.read_data', side_effect=mocked_read_data)
def test_nk_import_task(self, mock_get, mock_post,
mocked_session,
mocked_getsmallrowdata_db):
mocked_read_data):
alldata = {
469: {'elapsedTime': 3901900,
'totalDistanceImp': 0,
@@ -904,10 +904,10 @@ class NKObjects(DjangoTestCase):
@patch('rowers.integrations.nk.requests.get', side_effect=mocked_requests)
@patch('rowers.integrations.nk.requests.post', side_effect=mocked_requests)
@patch('rowers.nkimportutils.requests.session', side_effect=mocked_session)
@patch('rowers.dataprep.getsmallrowdata_db', side_effect=mocked_getsmallrowdata_db)
@patch('rowers.dataprep.read_data', side_effect=mocked_read_data)
def test_nk_import_impeller(self, mock_get, mock_post,
mocked_session,
mocked_getsmallrowdata_db):
mocked_read_data):
integration = NKIntegration(self.u)
result = integration.token_refresh()
@@ -1083,9 +1083,9 @@ class RP3Objects(DjangoTestCase):
@patch('rowers.integrations.rp3.requests.get', side_effect=mocked_requests)
@patch('rowers.integrations.rp3.requests.post', side_effect=mocked_requests)
@patch('rowers.dataprep.getsmallrowdata_db', side_effect=mocked_getsmallrowdata_db)
@patch('rowers.dataprep.read_data', side_effect=mocked_read_data)
def test_rp3_import(self, mock_get, mockpost,
mocked_getsmallrowdata_db):
mocked_read_data):
response = self.c.get('/rowers/workout/rp3import/591621',follow=True)
@@ -1268,9 +1268,9 @@ class StravaObjects(DjangoTestCase):
@patch('rowers.utils.requests.get', side_effect=mocked_requests)
@patch('rowers.integrations.strava.requests.post', side_effect=mocked_requests)
@patch('rowers.dataprep.getsmallrowdata_db')
@patch('rowers.dataprep.read_data')
def test_strava_import(self, mock_get, mock_post,
mocked_getsmallrowdata_db):
mocked_read_data):
response = self.c.get('/rowers/workout/stravaimport/12',follow=True)
expected_url = reverse('workout_import_view',kwargs={'source':'strava'})
+16 -16
View File
@@ -51,16 +51,16 @@ class InteractiveChartTest(TestCase):
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
@patch('rowers.dataprep.read_data',side_effect=mocked_read_data)
def test_interactive_chart1(self, mocked_sqlalchemy,mocked_read_df_sql,
mocked_getsmallrowdata_db):
mocked_read_data):
res = iplots.interactive_chart(self.wote.id)
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
@patch('rowers.dataprep.read_data',side_effect=mocked_read_data)
def test_interactive_chart2(self, mocked_sqlalchemy,mocked_read_df_sql,
mocked_getsmallrowdata_db):
mocked_read_data):
res = iplots.interactive_chart(self.wote.id,promember=1)
@@ -80,52 +80,52 @@ class InteractiveChartTest(TestCase):
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
@patch('rowers.dataprep.read_data',side_effect=mocked_read_data)
def test_interactive_chart7(self, mocked_sqlalchemy,mocked_read_df_sql,
mocked_getsmallrowdata_db):
mocked_read_data):
res = iplots.interactive_flex_chart2(self.wote.id,self.r,promember=0,
xparam='time',
yparam1='pace',yparam2='spm',mode='water')
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
@patch('rowers.dataprep.read_data',side_effect=mocked_read_data)
def test_interactive_chart8(self, mocked_sqlalchemy,mocked_read_df_sql,
mocked_getsmallrowdata_db):
mocked_read_data):
res = iplots.interactive_flex_chart2(self.wote.id,self.r,
promember=0,xparam='distance',
yparam1='pace',yparam2='spm',mode='water')
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
@patch('rowers.dataprep.read_data',side_effect=mocked_read_data)
def test_interactive_chart9(self, mocked_sqlalchemy,mocked_read_df_sql,
mocked_getsmallrowdata_db):
mocked_read_data):
res = iplots.interactive_flex_chart2(self.wote.id,self.r,
promember=1,xparam='time',
yparam1='pace',yparam2='hr',mode='water')
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
@patch('rowers.dataprep.read_data',side_effect=mocked_read_data)
def test_interactive_chart10(self, mocked_sqlalchemy,mocked_read_df_sql,
mocked_getsmallrowdata_db):
mocked_read_data):
res = iplots.interactive_flex_chart2(self.wote.id,self.r,
promember=1,xparam='distance',
yparam1='pace',yparam2='hr',mode='water')
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
@patch('rowers.dataprep.read_data',side_effect=mocked_read_data)
def test_interactive_chart11(self, mocked_sqlalchemy,mocked_read_df_sql,
mocked_getsmallrowdata_db):
mocked_read_data):
res = iplots.interactive_flex_chart2(self.wote.id,self.r,
promember=1,xparam='time',
yparam1='pace',yparam2='spm',mode='water')
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
@patch('rowers.dataprep.read_data',side_effect=mocked_read_data)
def test_interactive_chart12(self, mocked_sqlalchemy,mocked_read_df_sql,
mocked_getsmallrowdata_db):
mocked_read_data):
res = iplots.interactive_flex_chart2(self.wote.id,self.r,
promember=1,
xparam='distance',
+8 -8
View File
@@ -911,8 +911,8 @@ class PermissionsViewTests(TestCase):
## Coach can upload on behalf of athlete - if team allows
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
def test_coach_edit_athlete_upload(self,mocked_sqlalchemy,mocked_getsmallrowdata_db):
@patch('rowers.dataprep.read_data',side_effect=mocked_read_data)
def test_coach_edit_athlete_upload(self,mocked_sqlalchemy,mocked_read_data):
self.rbasic.team.add(self.teamcoach)
self.rbasic.coachinggroups.add(self.coachinggroup)
@@ -957,8 +957,8 @@ class PermissionsViewTests(TestCase):
## Coach can upload on behalf of athlete - if team allows
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
def test_coach_edit_athlete_uploadnot(self,mocked_sqlalchemy,mocked_getsmallrowdata_db):
@patch('rowers.dataprep.read_data',side_effect=mocked_read_data)
def test_coach_edit_athlete_uploadnot(self,mocked_sqlalchemy,mocked_read_data):
self.rbasic.team.add(self.teamcoach)
login = self.c.login(username=self.ucoach.username, password=self.ucoachpassword)
@@ -1168,8 +1168,8 @@ class PermissionsViewTests(TestCase):
## Self Coach cannot upload on behalf of athlete
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
def test_plan_edit_athlete_upload(self,mocked_sqlalchemy,mocked_getsmallrowdata_db):
@patch('rowers.dataprep.read_data',side_effect=mocked_read_data)
def test_plan_edit_athlete_upload(self,mocked_sqlalchemy,mocked_read_data):
self.rpro.team.add(self.teamplan)
login = self.c.login(username=self.uplan2.username, password=self.uplan2password)
@@ -1291,8 +1291,8 @@ class PermissionsViewTests(TestCase):
## Self Coach cannot upload on behalf of athlete
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
def test_plan_edit_athlete_upload(self,mocked_sqlalchemy,mocked_getsmallrowdata_db):
@patch('rowers.dataprep.read_data',side_effect=mocked_read_data)
def test_plan_edit_athlete_upload(self,mocked_sqlalchemy,mocked_read_data):
self.rpro.team.add(self.teamplan)
login = self.c.login(username=self.uplan2.username, password=self.uplan2password)
+8 -8
View File
@@ -218,7 +218,7 @@ class PermissionsViewTests(TestCase):
@patch('rowers.integrations.c2.C2Integration.open')
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db')
@patch('rowers.dataprep.read_data')
@patch('requests.get',side_effect=mocked_requests)
@patch('requests.post',side_effect=mocked_requests)
@patch('rowers.dataprep.get_video_data',side_effect=mocked_get_video_data)
@@ -228,7 +228,7 @@ class PermissionsViewTests(TestCase):
mock_c2open,
mocked_sqlalchemy,
mocked_read_df_sql,
mocked_getsmallrowdata_db,
mocked_read_data,
mock_get,
mock_post,
mocked_get_video_data,
@@ -253,7 +253,7 @@ class PermissionsViewTests(TestCase):
@patch('rowers.integrations.c2.C2Integration.open')
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db')
@patch('rowers.dataprep.read_data')
@patch('requests.get',side_effect=mocked_requests)
@patch('requests.post',side_effect=mocked_requests)
@patch('rowers.dataprep.get_video_data',side_effect=mocked_get_video_data)
@@ -263,7 +263,7 @@ class PermissionsViewTests(TestCase):
mock_c2open,
mocked_sqlalchemy,
mocked_read_df_sql,
mocked_getsmallrowdata_db,
mocked_read_data,
mock_get,
mock_post,
mocked_get_video_data,
@@ -335,7 +335,7 @@ class PermissionsViewTests(TestCase):
@patch('rowers.integrations.c2.C2Integration.open')
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db')
@patch('rowers.dataprep.read_data')
@patch('requests.get',side_effect=mocked_requests)
@patch('requests.post',side_effect=mocked_requests)
@patch('rowers.dataprep.get_video_data',side_effect=mocked_get_video_data)
@@ -345,7 +345,7 @@ class PermissionsViewTests(TestCase):
mock_c2open,
mocked_sqlalchemy,
mocked_read_df_sql,
mocked_getsmallrowdata_db,
mocked_read_data,
mock_get,
mock_post,
mocked_get_video_data,
@@ -418,7 +418,7 @@ class PermissionsViewTests(TestCase):
@patch('rowers.integrations.c2.C2Integration.open')
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db')
@patch('rowers.dataprep.read_data')
@patch('requests.get',side_effect=mocked_requests)
@patch('requests.post',side_effect=mocked_requests)
@patch('rowers.dataprep.get_video_data',side_effect=mocked_get_video_data)
@@ -428,7 +428,7 @@ class PermissionsViewTests(TestCase):
mock_c2open,
mocked_sqlalchemy,
mocked_read_df_sql,
mocked_getsmallrowdata_db,
mocked_read_data,
mock_get,
mock_post,
mocked_get_video_data,
+2 -2
View File
@@ -193,7 +193,7 @@ class URLTests(TestCase):
@parameterized.expand(lijst)
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db')
@patch('rowers.dataprep.read_data')
@patch('requests.get',side_effect=mocked_requests)
@patch('requests.post',side_effect=mocked_requests)
@patch('rowers.dataprep.get_video_data',side_effect=mocked_get_video_data)
@@ -201,7 +201,7 @@ class URLTests(TestCase):
def test_url_generator(self,url,expected,
mocked_sqlalchemy,
mocked_read_df_sql,
mocked_getsmallrowdata_db,
mocked_read_data,
mock_get,
mock_post,
mocked_get_video_data,
Binary file not shown.
-144
View File
@@ -1381,150 +1381,6 @@ def ajax_agegrouprecords(request,
)
@login_required()
def otecp_toadmin_view(request, theuser=0,
startdate=timezone.now() - datetime.timedelta(days=365),
enddate=timezone.now(),
startdatestring="",
enddatestring="",
): # pragma: no cover
if startdatestring != "": # pragma: no cover
try:
startdate = iso8601.parse_date(startdatestring)
except ParseError:
pass
if enddatestring != "": # pragma: no cover
try:
enddate = iso8601.parse_date(enddatestring)
except ParseError:
pass
if theuser == 0: # pragma: no cover
theuser = request.user.id
u = User.objects.get(id=theuser)
r = Rower.objects.get(user=u)
startdate = datetime.datetime.combine(startdate, datetime.time())
enddate = datetime.datetime.combine(enddate, datetime.time(23, 59, 59))
theworkouts = Workout.objects.filter(
user=r, rankingpiece=True,
workouttype__in=[
'rower',
'dynamic',
'slides'
],
startdatetime__gte=startdate,
startdatetime__lte=enddate
).order_by("-startdatetime")
delta, cpvalue, avgpower = dataprep.fetchcp(
r, theworkouts, table='cpergdata'
)
powerdf = pd.DataFrame({
'Delta': delta,
'CP': cpvalue,
})
csvfilename = 'CP_data_user_{id}.csv'.format(
id=theuser
)
powerdf = powerdf[powerdf['CP'] > 0]
powerdf.dropna(axis=0, inplace=True)
powerdf.sort_values(['Delta', 'CP'], ascending=[1, 0], inplace=True)
powerdf.drop_duplicates(subset='Delta', keep='first', inplace=True)
powerdf.to_csv(csvfilename)
_ = myqueue(queuehigh,
handle_sendemailfile,
'Sander',
'Roosendaal',
'roosendaalsander@gmail.com',
csvfilename,
delete=True)
successmessage = "The CSV file was sent to the site admin per email"
messages.info(request, successmessage)
response = HttpResponseRedirect('/rowers/list-workouts/')
return response
@login_required()
def otwcp_toadmin_view(request, theuser=0,
startdate=timezone.now() - datetime.timedelta(days=365),
enddate=timezone.now(),
startdatestring="",
enddatestring="",
): # pragma: no cover
if startdatestring != "":
try:
startdate = iso8601.parse_date(startdatestring)
except ParseError:
pass
if enddatestring != "":
try:
enddate = iso8601.parse_date(enddatestring)
except ParseError:
pass
if theuser == 0:
theuser = request.user.id
u = User.objects.get(id=theuser)
r = Rower.objects.get(user=u)
startdate = datetime.datetime.combine(startdate, datetime.time())
enddate = datetime.datetime.combine(enddate, datetime.time(23, 59, 59))
theworkouts = Workout.objects.filter(
user=r, rankingpiece=True,
workouttype='water',
startdatetime__gte=startdate,
startdatetime__lte=enddate
).order_by("-startdatetime")
delta, cpvalue, avgpower = dataprep.fetchcp(
r, theworkouts, table='cpdata'
)
powerdf = pd.DataFrame({
'Delta': delta,
'CP': cpvalue,
})
csvfilename = 'CP_data_user_{id}.csv'.format(
id=theuser
)
powerdf = powerdf[powerdf['CP'] > 0]
powerdf.dropna(axis=0, inplace=True)
powerdf.sort_values(['Delta', 'CP'], ascending=[1, 0], inplace=True)
powerdf.drop_duplicates(subset='Delta', keep='first', inplace=True)
powerdf.to_csv(csvfilename)
_ = myqueue(queuehigh,
handle_sendemailfile,
'Sander',
'Roosendaal',
'roosendaalsander@gmail.com',
csvfilename,
delete=True)
successmessage = "The CSV file was sent to the site admin per email"
messages.info(request, successmessage)
response = HttpResponseRedirect('/rowers/list-workouts/')
return response
def agegrouprecordview(request, sex='male', weightcategory='hwt',
distance=2000, duration=None):