more tests unit tests on dataprep
This commit is contained in:
@@ -949,21 +949,6 @@ def update_c2id_sql(id,c2id):
|
|||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
def fitnessmetric_to_sql(m,table='powertimefitnessmetric',debug=False):
|
|
||||||
engine = create_engine(database_url, echo=False)
|
|
||||||
columns = ', '.join(m.keys())
|
|
||||||
placeholders = ", ".join(["?"] * len(m))
|
|
||||||
|
|
||||||
query = "INSERT into %s ( %s ) Values (%s)" % (table, columns, placeholders)
|
|
||||||
|
|
||||||
values = tuple(m[key] for key in m.keys())
|
|
||||||
with engine.connect() as conn, conn.begin():
|
|
||||||
result = conn.execute(query,values)
|
|
||||||
|
|
||||||
conn.close()
|
|
||||||
engine.dispose()
|
|
||||||
|
|
||||||
return 1
|
|
||||||
|
|
||||||
|
|
||||||
def getcpdata_sql(rower_id,table='cpdata'):
|
def getcpdata_sql(rower_id,table='cpdata'):
|
||||||
|
|||||||
@@ -543,40 +543,6 @@ def update_c2id_sql(id,c2id):
|
|||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
def fitnessmetric_to_sql(m,table='powertimefitnessmetric',debug=False,
|
|
||||||
doclean=False):
|
|
||||||
# test if nan among values
|
|
||||||
for key in m.keys():
|
|
||||||
if str(m[key]) == 'nan':
|
|
||||||
m[key] = -1
|
|
||||||
if 'inf' in str(m[key]):
|
|
||||||
m[key] = -1
|
|
||||||
|
|
||||||
if debug:
|
|
||||||
engine = create_engine(database_url_debug, echo=False)
|
|
||||||
else:
|
|
||||||
engine = create_engine(database_url, echo=False)
|
|
||||||
|
|
||||||
columns = ', '.join(m.keys())
|
|
||||||
if use_sqlite:
|
|
||||||
placeholders = ", ".join(["?"] * len(m))
|
|
||||||
else:
|
|
||||||
placeholders = ", ".join(["%s"] * len(m))
|
|
||||||
|
|
||||||
query = "INSERT into %s ( %s ) Values (%s)" % (table, columns, placeholders)
|
|
||||||
query2 = "DELETE FROM %s WHERE PowerFourMin < 0 and PowerOneHour < 0 and PowerTwoK < 0 and user_id = %s " % (table,m['user_id'])
|
|
||||||
|
|
||||||
values = tuple(m[key] for key in m.keys())
|
|
||||||
with engine.connect() as conn, conn.begin():
|
|
||||||
if doclean:
|
|
||||||
result2 = conn.execute(query2)
|
|
||||||
result = conn.execute(query,values)
|
|
||||||
|
|
||||||
|
|
||||||
conn.close()
|
|
||||||
engine.dispose()
|
|
||||||
|
|
||||||
return 1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ from rowers.dataprepnodjango import (
|
|||||||
update_strokedata,
|
update_strokedata,
|
||||||
getsmallrowdata_db, updatecpdata_sql,update_c2id_sql,
|
getsmallrowdata_db, updatecpdata_sql,update_c2id_sql,
|
||||||
update_workout_field_sql,
|
update_workout_field_sql,
|
||||||
update_agegroup_db,fitnessmetric_to_sql,
|
update_agegroup_db,
|
||||||
add_c2_stroke_data_db,totaltime_sec_to_string,
|
add_c2_stroke_data_db,totaltime_sec_to_string,
|
||||||
create_c2_stroke_data_db,update_empower,
|
create_c2_stroke_data_db,update_empower,
|
||||||
database_url_debug,database_url,dataprep,
|
database_url_debug,database_url,dataprep,
|
||||||
|
|||||||
@@ -11,6 +11,72 @@ nu = datetime.datetime.now()
|
|||||||
|
|
||||||
# interactive plots
|
# interactive plots
|
||||||
from rowers import interactiveplots
|
from rowers import interactiveplots
|
||||||
|
from rowers import dataprep
|
||||||
|
|
||||||
|
class DataPrepTests(TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
self.u = UserFactory()
|
||||||
|
|
||||||
|
self.r = Rower.objects.create(user=self.u,
|
||||||
|
birthdate=faker.profile()['birthdate'],
|
||||||
|
gdproptin=True,surveydone=True,
|
||||||
|
gdproptindate=timezone.now(),
|
||||||
|
rowerplan='coach')
|
||||||
|
|
||||||
|
self.c = Client()
|
||||||
|
self.user_workouts = WorkoutFactory.create_batch(5, user=self.r)
|
||||||
|
self.factory = RequestFactory()
|
||||||
|
self.password = faker.word()
|
||||||
|
self.u.set_password(self.password)
|
||||||
|
self.u.save()
|
||||||
|
|
||||||
|
result = get_random_file(filename='rowers/tests/testdata/uherskehradiste_otw.csv')
|
||||||
|
|
||||||
|
self.wuh_otw = WorkoutFactory(user=self.r,
|
||||||
|
csvfilename=result['filename'],
|
||||||
|
starttime=result['starttime'],
|
||||||
|
startdatetime=result['startdatetime'],
|
||||||
|
duration=result['duration'],
|
||||||
|
distance=result['totaldist'],
|
||||||
|
workouttype = 'water',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_uh)
|
||||||
|
def test_get_videodata(self,mocked_getsmallrowdata_uh):
|
||||||
|
data, metrics, maxtime = dataprep.get_video_data(self.wuh_otw)
|
||||||
|
|
||||||
|
self.assertEqual(len(data),9)
|
||||||
|
self.assertEqual(len(metrics),6)
|
||||||
|
self.assertEqual(int(maxtime),1737)
|
||||||
|
|
||||||
|
def test_polarization_index(self):
|
||||||
|
df = pd.read_csv('rowers/tests/testdata/uhfull.csv')
|
||||||
|
index = dataprep.polarization_index(df,self.r)
|
||||||
|
self.assertEqual(int(100*index),-67)
|
||||||
|
|
||||||
|
def test_get_latlon(self):
|
||||||
|
data = dataprep.get_latlon(self.wuh_otw.id)
|
||||||
|
self.assertEqual(len(data),2)
|
||||||
|
|
||||||
|
def test_workout_summary_to_df(self):
|
||||||
|
df = dataprep.workout_summary_to_df(self.r)
|
||||||
|
self.assertEqual(len(df),6)
|
||||||
|
|
||||||
|
@patch('rowers.dataprep.create_engine')
|
||||||
|
def test_update_c2id(self,mocked_sqlalchemy):
|
||||||
|
res = dataprep.update_c2id_sql(1,1)
|
||||||
|
self.assertEqual(res,1)
|
||||||
|
|
||||||
|
def test_checkmarker(self):
|
||||||
|
workouts = Workout.objects.all().order_by("-date")
|
||||||
|
wmax = dataprep.check_marker(workouts[0])
|
||||||
|
self.assertTrue(wmax.rankingpiece)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class InteractivePlotTests(TestCase):
|
class InteractivePlotTests(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
@@ -29,6 +95,9 @@ class InteractivePlotTests(TestCase):
|
|||||||
self.u.set_password(self.password)
|
self.u.set_password(self.password)
|
||||||
self.u.save()
|
self.u.save()
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
pass
|
||||||
|
|
||||||
def test_interactive_hr_piechart(self):
|
def test_interactive_hr_piechart(self):
|
||||||
df = pd.read_csv('rowers/tests/testdata/getrowdata_mock.csv')
|
df = pd.read_csv('rowers/tests/testdata/getrowdata_mock.csv')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user