fixes
This commit is contained in:
@@ -370,6 +370,7 @@ def coursetokml(course,cn=False):
|
|||||||
|
|
||||||
def kmltocourse(f):
|
def kmltocourse(f):
|
||||||
doc = et.parse(f)
|
doc = et.parse(f)
|
||||||
|
|
||||||
courses = doc.findall('.//opengis:Folder[opengis:Placemark]', ns)
|
courses = doc.findall('.//opengis:Folder[opengis:Placemark]', ns)
|
||||||
|
|
||||||
if not courses: # pragma: no cover
|
if not courses: # pragma: no cover
|
||||||
|
|||||||
@@ -539,7 +539,10 @@ def setcp(workout, background=False, recurrance=True):
|
|||||||
if df['delta'][0] in tarr:
|
if df['delta'][0] in tarr:
|
||||||
return(df, df['delta'], df['cp'])
|
return(df, df['delta'], df['cp'])
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
pass
|
try:
|
||||||
|
os.remove(filename)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
strokesdf = read_data(
|
strokesdf = read_data(
|
||||||
['power', 'workoutid', 'time'], ids=[workout.id])
|
['power', 'workoutid', 'time'], ids=[workout.id])
|
||||||
@@ -597,9 +600,8 @@ def setcp(workout, background=False, recurrance=True):
|
|||||||
})
|
})
|
||||||
|
|
||||||
df = df.drop_nulls()
|
df = df.drop_nulls()
|
||||||
|
df.write_parquet(filename,compression='gzip')
|
||||||
|
|
||||||
with gzip.open(filename, 'w') as f:
|
|
||||||
df.write_parquet(f)
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
dologging("metrics.log", "setcp: "+ str(e))
|
dologging("metrics.log", "setcp: "+ str(e))
|
||||||
return pl.DataFrame({'delta': [], 'cp': []}), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64)
|
return pl.DataFrame({'delta': [], 'cp': []}), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64)
|
||||||
|
|||||||
@@ -210,6 +210,24 @@ class OwnApi(TestCase):
|
|||||||
response = strokedata_tcx(request)
|
response = strokedata_tcx(request)
|
||||||
self.assertEqual(response.status_code,200)
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
def test_strokedataform_empty(self):
|
||||||
|
login = self.c.login(username=self.u.username, password=self.password)
|
||||||
|
self.assertTrue(login)
|
||||||
|
|
||||||
|
w = self.user_workouts[1]
|
||||||
|
|
||||||
|
url = reverse('strokedata_tcx')
|
||||||
|
|
||||||
|
request = self.factory.post(url, data = '', content_type='application/xml')
|
||||||
|
request.user = self.u
|
||||||
|
request.content_type = 'application/xml'
|
||||||
|
|
||||||
|
force_authenticate(request, user=self.u)
|
||||||
|
with patch('rowers.dataprep.getrowdata_db') as mock_getrowdata:
|
||||||
|
mock_getrowdata.return_value = (pd.DataFrame(),None)
|
||||||
|
response = strokedata_tcx(request)
|
||||||
|
self.assertEqual(response.status_code,405)
|
||||||
|
|
||||||
|
|
||||||
def test_strokedataform_v3(self):
|
def test_strokedataform_v3(self):
|
||||||
login = self.c.login(username=self.u.username, password=self.password)
|
login = self.c.login(username=self.u.username, password=self.password)
|
||||||
|
|||||||
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
Binary file not shown.
@@ -434,7 +434,7 @@ def strokedata_tcx(request):
|
|||||||
"""
|
"""
|
||||||
if request.method != 'POST': # pragma: no cover
|
if request.method != 'POST': # pragma: no cover
|
||||||
dologging('apilog.log','GET request to TCX endpoint')
|
dologging('apilog.log','GET request to TCX endpoint')
|
||||||
return HttpResponseNotAllowed("Method not supported")
|
return HttpResponseNotAllowed("Method not supported")
|
||||||
|
|
||||||
if 'application/xml' not in request.content_type.lower(): # pragma: no cover
|
if 'application/xml' not in request.content_type.lower(): # pragma: no cover
|
||||||
dologging('apilog.log','POST data not application/xml, request to TCX endpoint')
|
dologging('apilog.log','POST data not application/xml, request to TCX endpoint')
|
||||||
|
|||||||
@@ -812,8 +812,18 @@ def course_upload_view(request):
|
|||||||
|
|
||||||
if f is not None:
|
if f is not None:
|
||||||
filename, path_and_filename = handle_uploaded_file(f)
|
filename, path_and_filename = handle_uploaded_file(f)
|
||||||
|
try:
|
||||||
|
cs = courses.kmltocourse(path_and_filename)
|
||||||
|
except ParseError:
|
||||||
|
os.remove(path_and_filename)
|
||||||
|
messages.error(
|
||||||
|
request, 'Something went wrong - error parsing the file')
|
||||||
|
url = reverse(course_upload_view)
|
||||||
|
|
||||||
cs = courses.kmltocourse(path_and_filename)
|
if is_ajax:
|
||||||
|
return JSONResponse({'result': 0, 'url': 0})
|
||||||
|
else:
|
||||||
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
for course in cs:
|
for course in cs:
|
||||||
cname = name+' - '+course['name']
|
cname = name+' - '+course['name']
|
||||||
|
|||||||
Reference in New Issue
Block a user