increased workoutviews coverage
This commit is contained in:
@@ -158,12 +158,20 @@ class WorkoutViewTest(TestCase):
|
||||
d1 = self.werg1.date-datetime.timedelta(days=2)
|
||||
d2 = self.werg2.date+datetime.timedelta(days=2)
|
||||
|
||||
date_form_data = {
|
||||
'startdate': d1.strftime('%Y-%m%d'),
|
||||
'enddate': d2.strftime('%Y-%m%d')
|
||||
form_data = {
|
||||
'startdate': d1.strftime('%Y-%m-%d'),
|
||||
'enddate': d2.strftime('%Y-%m-%d'),
|
||||
'modality':'water',
|
||||
'waterboattype':['1x'],
|
||||
}
|
||||
|
||||
response = self.c.post(url,date_form_data)
|
||||
form = DateRangeForm(form_data)
|
||||
self.assertTrue(form.is_valid())
|
||||
|
||||
form = TrendFlexModalForm(form_data)
|
||||
self.assertTrue(form.is_valid())
|
||||
|
||||
response = self.c.post(url,form_data)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
url = reverse('workouts_join_view')
|
||||
@@ -215,11 +223,34 @@ class WorkoutViewTest(TestCase):
|
||||
session.save()
|
||||
|
||||
response = self.c.get('/')
|
||||
|
||||
url = reverse('team_comparison_select')
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
d1 = self.werg1.date-datetime.timedelta(days=2)
|
||||
d2 = self.werg2.date+datetime.timedelta(days=2)
|
||||
|
||||
form_data = {
|
||||
'startdate': d1.strftime('%Y-%m-%d'),
|
||||
'enddate': d2.strftime('%Y-%m-%d'),
|
||||
'modality':'water',
|
||||
'waterboattype':['1x'],
|
||||
}
|
||||
|
||||
form = DateRangeForm(form_data)
|
||||
self.assertTrue(form.is_valid())
|
||||
|
||||
form = TrendFlexModalForm(form_data)
|
||||
self.assertTrue(form.is_valid())
|
||||
|
||||
response = self.c.post(url,form_data)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
url = reverse('multi_compare_view',kwargs={
|
||||
'userid':self.u.id,
|
||||
'id':encoder.encode_hex(self.werg1.id),
|
||||
})
|
||||
print(url)
|
||||
|
||||
form_data = {
|
||||
'xparam':'time',
|
||||
@@ -369,7 +400,9 @@ class WorkoutViewTest(TestCase):
|
||||
|
||||
@patch('rowers.dataprep.create_engine')
|
||||
@patch('rowers.dataprep.getsmallrowdata_db')
|
||||
def test_setpowerform(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
|
||||
@patch('rowers.middleware.myqueue')
|
||||
def test_setpowerform(self, mocked_sqlalchemy, mocked_getsmallrowdata_db,
|
||||
mocked_myqueue):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
@@ -383,6 +416,17 @@ class WorkoutViewTest(TestCase):
|
||||
|
||||
self.assertTrue(len(instrokemetrics)>0)
|
||||
|
||||
url = reverse('instroke_chart',
|
||||
kwargs={
|
||||
'id':encoder.encode_hex(self.winstroke.id),
|
||||
'metric':instrokemetrics[0],
|
||||
})
|
||||
url2 = reverse(self.r.defaultlandingpage,kwargs={'id':encoder.encode_hex(self.winstroke.id)})
|
||||
response = self.c.get(url)
|
||||
self.assertRedirects(response,
|
||||
expected_url=url2,
|
||||
status_code=302,target_status_code=200)
|
||||
|
||||
@patch('rowers.dataprep.create_engine')
|
||||
@patch('rowers.dataprep.getsmallrowdata_db')
|
||||
def test_setpowerform(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
|
||||
@@ -543,6 +587,22 @@ class WorkoutViewTest(TestCase):
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
|
||||
def test_remove_power_view(self):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = reverse('remove_power_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
||||
url2 = reverse(self.r.defaultlandingpage,
|
||||
kwargs={
|
||||
'id':encoder.encode_hex(self.wwater.id)
|
||||
}
|
||||
)
|
||||
response = self.c.get(url)
|
||||
self.assertRedirects(response,
|
||||
expected_url=url2,
|
||||
status_code=302,
|
||||
target_status_code=200
|
||||
)
|
||||
|
||||
@patch('rowers.dataprep.create_engine')
|
||||
@patch('rowers.dataprep.getsmallrowdata_db')
|
||||
@@ -597,6 +657,38 @@ class WorkoutViewTest(TestCase):
|
||||
response = self.c.post(url,form_data)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
@patch('rowers.dataprep.create_engine')
|
||||
@patch('rowers.dataprep.getrowdata_db',side_effect=mocked_getrowdata_db)
|
||||
@patch('rowers.dataprep.get_video_data',side_effect=mocked_videodata)
|
||||
def test_video_selectworkout(self, mocked_sqlalchemy, mocked_getsmallrowdata_db,
|
||||
mocked_videodata):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = reverse('video_selectworkout')
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
d1 = self.wwater.date-datetime.timedelta(days=24)
|
||||
d2 = self.wwater.date+datetime.timedelta(days=24)
|
||||
|
||||
|
||||
form_data = {
|
||||
'workout':'1',
|
||||
'startdate': d1.strftime("%Y-%m-%d"),
|
||||
'enddate': d2.strftime("%Y-%m-%d")
|
||||
}
|
||||
|
||||
url2 = reverse('workout_video_create_view',kwargs={'id':encoder.encode_hex(1)})
|
||||
|
||||
response = self.c.post(url,form_data)
|
||||
self.assertRedirects(response,
|
||||
expected_url=url2,
|
||||
status_code=302,
|
||||
target_status_code=200)
|
||||
|
||||
|
||||
|
||||
@patch('rowers.dataprep.create_engine')
|
||||
@patch('rowers.dataprep.getsmallrowdata_db')
|
||||
|
||||
@@ -43,6 +43,8 @@ workout run
|
||||
m.save()
|
||||
a2 = 'media/mailbox_attachments/colin3.csv'
|
||||
copy('rowers/tests/testdata/emails/colin.csv',a2)
|
||||
a3 = 'media/mailbox_attachments/colin4.csv'
|
||||
copy('rowers/tests/testdata/emails/colin.csv',a3)
|
||||
a = MessageAttachment(message=m,document=a2[6:])
|
||||
a.save()
|
||||
|
||||
@@ -76,6 +78,11 @@ workout run
|
||||
response = self.c.post(url,form_data,HTTP_HOST='127.0.0.1:4533')
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
form_data['file'] = 'media/mailbox_attachments/colin4.csv'
|
||||
response = self.c.post(url,json.dumps(form_data),HTTP_HOST='127.0.0.1:4533',
|
||||
content_type='application/json')
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
# should also test if workout is created
|
||||
w = Workout.objects.get(id=1)
|
||||
self.assertEqual(w.name,'test')
|
||||
|
||||
@@ -2621,82 +2621,6 @@ def workout_smoothenpace_view(request,id=0,message="",successmessage=""):
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
# Process CrewNerd Summary CSV and update summary
|
||||
@user_passes_test(ispromember,login_url="/rowers/paidplans",
|
||||
message="This functionality requires a Pro plan or higher. If you are already a Pro user, please log in to access this functionality. If you are already a Pro user, please log in to access this functionality",
|
||||
redirect_field_name=None)
|
||||
def workout_crewnerd_summary_view(request,id=0,message="",successmessage=""):
|
||||
row = get_workoutuser(id, request)
|
||||
r = getrower(request.user)
|
||||
breadcrumbs = [
|
||||
{
|
||||
'url':'/rowers/list-workouts/',
|
||||
'name':'Workouts'
|
||||
},
|
||||
{
|
||||
'url':get_workout_default_page(request,id),
|
||||
'name': row.name
|
||||
},
|
||||
{
|
||||
'url':reverse('workout_crewnerd_summary_view',kwargs={'id':id}),
|
||||
'name': 'CrewNerd Summary'
|
||||
}
|
||||
|
||||
]
|
||||
|
||||
if request.method == 'POST':
|
||||
form = CNsummaryForm(request.POST,request.FILES)
|
||||
if form.is_valid():
|
||||
f = request.FILES['file']
|
||||
res = handle_uploaded_file(f)
|
||||
fname = res[1]
|
||||
try:
|
||||
sumd = summarydata(fname)
|
||||
row.summary = sumd.allstats()
|
||||
row.save()
|
||||
os.remove(fname)
|
||||
successmessage = "CrewNerd summary added"
|
||||
messages.info(request,successmessage)
|
||||
url = reverse('workout_edit_view',
|
||||
kwargs = {
|
||||
'id':id,
|
||||
})
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
except:
|
||||
try:
|
||||
os.remove(fname)
|
||||
except:
|
||||
pass
|
||||
message = "Something went wrong (workout_crewnerd_summary_view)"
|
||||
messages.error(request,message)
|
||||
url = reverse('workout_edit_view',
|
||||
kwargs = {
|
||||
'id':id,
|
||||
})
|
||||
return HttpResponseRedirect(url)
|
||||
else:
|
||||
return render(request,
|
||||
"cn_form.html",
|
||||
{'form':form,
|
||||
'active':'nav-workouts',
|
||||
'rower':r,
|
||||
'workout':row,
|
||||
'breadcrumbs':breadcrumbs,
|
||||
'teams':get_my_teams(request.user),
|
||||
'id':row.id})
|
||||
else:
|
||||
form = CNsummaryForm()
|
||||
|
||||
return render(request,
|
||||
"cn_form.html",
|
||||
{'form':form,
|
||||
'active':'nav-workouts',
|
||||
'rower':r,
|
||||
'workout':row,
|
||||
'breadcrumbs':breadcrumbs,
|
||||
'teams':get_my_teams(request.user),
|
||||
'id':row.id})
|
||||
|
||||
# Get weather for given location and date/time
|
||||
@permission_required('workout.change_workout',fn=get_workout_by_opaqueid,raise_exception=True)
|
||||
@@ -4846,7 +4770,6 @@ def workout_upload_api(request):
|
||||
q = request.POST
|
||||
post_data = {k: q.getlist(k) if len(q.getlist(k))>1 else v for k, v in q.items()}
|
||||
|
||||
|
||||
# only allow local host
|
||||
hostt = request.get_host().split(':')
|
||||
if hostt[0] not in ['localhost','127.0.0.1','dev.rowsandall.com','rowsandall.com']:
|
||||
|
||||
Reference in New Issue
Block a user