Private
Public Access
1
0

increased workoutviews coverage

This commit is contained in:
Sander Roosendaal
2021-01-13 19:07:19 +01:00
parent 975f25ebf0
commit 03a4a67144
3 changed files with 105 additions and 83 deletions

View File

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

View File

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

View File

@@ -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']: