Merge branch 'release/v22.1.21'
This commit is contained in:
@@ -370,6 +370,7 @@ def coursetokml(course,cn=False):
|
||||
|
||||
def kmltocourse(f):
|
||||
doc = et.parse(f)
|
||||
|
||||
courses = doc.findall('.//opengis:Folder[opengis:Placemark]', ns)
|
||||
|
||||
if not courses: # pragma: no cover
|
||||
|
||||
@@ -539,7 +539,10 @@ def setcp(workout, background=False, recurrance=True):
|
||||
if df['delta'][0] in tarr:
|
||||
return(df, df['delta'], df['cp'])
|
||||
except Exception as e:
|
||||
pass
|
||||
try:
|
||||
os.remove(filename)
|
||||
except:
|
||||
pass
|
||||
|
||||
strokesdf = read_data(
|
||||
['power', 'workoutid', 'time'], ids=[workout.id])
|
||||
@@ -597,9 +600,8 @@ def setcp(workout, background=False, recurrance=True):
|
||||
})
|
||||
|
||||
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:
|
||||
dologging("metrics.log", "setcp: "+ str(e))
|
||||
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)
|
||||
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):
|
||||
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
|
||||
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
|
||||
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:
|
||||
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:
|
||||
cname = name+' - '+course['name']
|
||||
|
||||
Reference in New Issue
Block a user