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

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)

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):

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:

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 [

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

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())

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',

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)

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'})

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',

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)

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,

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.

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):