testing otw race register, submit
This commit is contained in:
@@ -1464,7 +1464,6 @@ def default_class(r,w,race):
|
|||||||
sex='male'
|
sex='male'
|
||||||
|
|
||||||
if w is not None:
|
if w is not None:
|
||||||
print('noot')
|
|
||||||
boatclass = w.workouttype
|
boatclass = w.workouttype
|
||||||
boattype = w.boattype
|
boattype = w.boattype
|
||||||
|
|
||||||
@@ -1475,7 +1474,7 @@ def default_class(r,w,race):
|
|||||||
boatclass = 'water'
|
boatclass = 'water'
|
||||||
else:
|
else:
|
||||||
boatclass = 'rower'
|
boatclass = 'rower'
|
||||||
print(boatclass)
|
|
||||||
boattype = '1x'
|
boattype = '1x'
|
||||||
adaptiveclass = 'None'
|
adaptiveclass = 'None'
|
||||||
weightclass = 'hwt'
|
weightclass = 'hwt'
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ def mocked_grpc(*args, **kwargs):
|
|||||||
class Result:
|
class Result:
|
||||||
def __init__(*args,**kwargs):
|
def __init__(*args,**kwargs):
|
||||||
self.result = 1
|
self.result = 1
|
||||||
|
|
||||||
class calculator_pb2_grpc:
|
class calculator_pb2_grpc:
|
||||||
def PowerStub(*args,**kwargs):
|
def PowerStub(*args,**kwargs):
|
||||||
def __init__(*args,**kwargs):
|
def __init__(*args,**kwargs):
|
||||||
@@ -114,11 +114,17 @@ def mocked_sqlalchemy(*args, **kwargs):
|
|||||||
def raw_connection(self):
|
def raw_connection(self):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
class QueryResult:
|
||||||
|
def fetchall(self):
|
||||||
|
return []
|
||||||
|
|
||||||
class MockConnection:
|
class MockConnection:
|
||||||
def begin(self):
|
def begin(self):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def execute(self):
|
def execute(self,query):
|
||||||
|
if 'polygon' in query:
|
||||||
|
return QueryResult()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def execute(self):
|
def execute(self):
|
||||||
|
|||||||
@@ -11,7 +11,9 @@ from rowers.utils import allmonths,allsundays
|
|||||||
|
|
||||||
import rowers.plannedsessions as plannedsessions
|
import rowers.plannedsessions as plannedsessions
|
||||||
import rowers.courses as courses
|
import rowers.courses as courses
|
||||||
|
import rowers.tasks as tasks
|
||||||
from rowers.views.racesviews import *
|
from rowers.views.racesviews import *
|
||||||
|
from rowers.utils import calculate_age
|
||||||
|
|
||||||
@override_settings(TESTING=True)
|
@override_settings(TESTING=True)
|
||||||
class ChallengesTest(TestCase):
|
class ChallengesTest(TestCase):
|
||||||
@@ -19,7 +21,7 @@ class ChallengesTest(TestCase):
|
|||||||
self.u = UserFactory()
|
self.u = UserFactory()
|
||||||
|
|
||||||
self.r = Rower.objects.create(user=self.u,
|
self.r = Rower.objects.create(user=self.u,
|
||||||
birthdate=faker.profile()['birthdate'],
|
birthdate=datetime.datetime.now()-datetime.timedelta(days=25*365),
|
||||||
gdproptin=True,surveydone=True,
|
gdproptin=True,surveydone=True,
|
||||||
gdproptindate=timezone.now(),
|
gdproptindate=timezone.now(),
|
||||||
rowerplan='coach')
|
rowerplan='coach')
|
||||||
@@ -52,6 +54,10 @@ class ChallengesTest(TestCase):
|
|||||||
workouttype = 'water',
|
workouttype = 'water',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self.wthyro.startdatetime = nu
|
||||||
|
self.wthyro.date = nu.date()
|
||||||
|
self.wthyro.save()
|
||||||
|
|
||||||
startdate = arrow.get(datetime.datetime.now()-datetime.timedelta(days=1)).datetime
|
startdate = arrow.get(datetime.datetime.now()-datetime.timedelta(days=1)).datetime
|
||||||
start_time = datetime.time()
|
start_time = datetime.time()
|
||||||
enddate = startdate+datetime.timedelta(days=5)
|
enddate = startdate+datetime.timedelta(days=5)
|
||||||
@@ -259,6 +265,7 @@ class ChallengesTest(TestCase):
|
|||||||
login = self.c.login(username=self.u.username, password=self.password)
|
login = self.c.login(username=self.u.username, password=self.password)
|
||||||
self.assertTrue(login)
|
self.assertTrue(login)
|
||||||
|
|
||||||
|
# check virtual events
|
||||||
url = reverse('virtualevents_view')
|
url = reverse('virtualevents_view')
|
||||||
response = self.c.get(url)
|
response = self.c.get(url)
|
||||||
self.assertEqual(response.status_code,200)
|
self.assertEqual(response.status_code,200)
|
||||||
@@ -268,6 +275,7 @@ class ChallengesTest(TestCase):
|
|||||||
'regattatype':'upcoming',
|
'regattatype':'upcoming',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# make various selections
|
||||||
form = VirtualRaceSelectForm(form_data)
|
form = VirtualRaceSelectForm(form_data)
|
||||||
self.assertTrue(form.is_valid())
|
self.assertTrue(form.is_valid())
|
||||||
|
|
||||||
@@ -306,3 +314,109 @@ class ChallengesTest(TestCase):
|
|||||||
|
|
||||||
response = self.c.post(url)
|
response = self.c.post(url)
|
||||||
self.assertEqual(response.status_code,200)
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
@patch('rowers.views.racesviews.myqueue')
|
||||||
|
def test_virtualevent_view(self,mocked_myqueue):
|
||||||
|
login = self.c.login(username=self.u.username, password=self.password)
|
||||||
|
self.assertTrue(login)
|
||||||
|
|
||||||
|
race = self.SpeedOrder
|
||||||
|
# look at event
|
||||||
|
url = reverse('virtualevent_view',kwargs={'id':race.id})
|
||||||
|
response = self.c.get(url)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
(
|
||||||
|
hasinitial,
|
||||||
|
boattype,
|
||||||
|
boatclass,
|
||||||
|
adaptiveclass,
|
||||||
|
weightclass,
|
||||||
|
sex,
|
||||||
|
referencespeed,
|
||||||
|
initialcategory
|
||||||
|
) = plannedsessions.default_class(self.r,None,race)
|
||||||
|
self.assertTrue(hasinitial)
|
||||||
|
|
||||||
|
if self.r.birthdate:
|
||||||
|
age = calculate_age(self.r.birthdate)
|
||||||
|
else:
|
||||||
|
age = 25
|
||||||
|
|
||||||
|
# register
|
||||||
|
url = reverse('virtualevent_register_view',kwargs={'id':race.id})
|
||||||
|
response = self.c.get(url)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
categories = CourseStandard.objects.filter(standardcollection=race.coursestandards).order_by("name")
|
||||||
|
|
||||||
|
form_data = {
|
||||||
|
'teamname': 'ApeTeam',
|
||||||
|
'boattype': boattype,
|
||||||
|
'boatclass': boatclass,
|
||||||
|
'weightcategory': weightclass,
|
||||||
|
'adaptiveclass': adaptiveclass,
|
||||||
|
'age': age,
|
||||||
|
'mix': False,
|
||||||
|
'acceptsocialmedia': True,
|
||||||
|
'entrycategory':initialcategory.id,
|
||||||
|
}
|
||||||
|
form = VirtualRaceResultForm(form_data,categories=categories)
|
||||||
|
self.assertTrue(form.is_valid())
|
||||||
|
|
||||||
|
|
||||||
|
response = self.c.post(url,form_data,follow=True)
|
||||||
|
expected_url = reverse('virtualevent_view',kwargs={'id':race.id})
|
||||||
|
self.assertRedirects(response, expected_url=expected_url,
|
||||||
|
status_code=302,target_status_code=200)
|
||||||
|
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
# toggle email
|
||||||
|
url = reverse('virtualevent_toggle_email_view',kwargs={'id':race.id})
|
||||||
|
response = self.c.get(url,follow=True)
|
||||||
|
expected_url = reverse('virtualevent_view',kwargs={'id':race.id})
|
||||||
|
self.assertRedirects(response, expected_url=expected_url,
|
||||||
|
status_code=302,target_status_code=200)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
records = VirtualRaceResult.objects.filter(userid=self.u.id)
|
||||||
|
self.assertEqual(len(records),1)
|
||||||
|
|
||||||
|
record = records[0]
|
||||||
|
|
||||||
|
# withdraw
|
||||||
|
url = reverse('virtualevent_withdrawresult_view',kwargs={'id':race.id,'recordid':record.id})
|
||||||
|
response = self.c.get(url)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
|
||||||
|
# register again
|
||||||
|
url = reverse('virtualevent_register_view',kwargs={'id':race.id})
|
||||||
|
response = self.c.post(url,form_data,follow=True)
|
||||||
|
expected_url = reverse('virtualevent_view',kwargs={'id':race.id})
|
||||||
|
self.assertRedirects(response, expected_url=expected_url,
|
||||||
|
status_code=302,target_status_code=200)
|
||||||
|
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
records = VirtualRaceResult.objects.filter(userid=self.u.id)
|
||||||
|
self.assertEqual(len(records),1)
|
||||||
|
|
||||||
|
record = records[0]
|
||||||
|
|
||||||
|
# submit workout
|
||||||
|
url = reverse('virtualevent_submit_result_view',kwargs={'id':race.id,'workoutid':self.wthyro.id})
|
||||||
|
response = self.c.get(url)
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
form_data = {
|
||||||
|
'workouts':[self.wthyro.id],
|
||||||
|
'record':record.id,
|
||||||
|
}
|
||||||
|
|
||||||
|
response = self.c.post(url,form_data,follow=True)
|
||||||
|
self.assertRedirects(response, expected_url=expected_url,
|
||||||
|
status_code=302,target_status_code=200)
|
||||||
|
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|||||||
6
rowers/tests/testdata/thyro.kml
vendored
6
rowers/tests/testdata/thyro.kml
vendored
@@ -5,7 +5,7 @@
|
|||||||
<Folder>
|
<Folder>
|
||||||
<name>Courses</name>
|
<name>Courses</name>
|
||||||
<Folder>
|
<Folder>
|
||||||
<name>Thyro Oefenbaantje</name>
|
<name> - Thyro Oefenbaantje</name>
|
||||||
<open>1</open>
|
<open>1</open>
|
||||||
<Placemark>
|
<Placemark>
|
||||||
<name>Start</name>
|
<name>Start</name>
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
<tessellate>1</tessellate>
|
<tessellate>1</tessellate>
|
||||||
<outerBoundaryIs>
|
<outerBoundaryIs>
|
||||||
<LinearRing>
|
<LinearRing>
|
||||||
<coordinates>6.848141106797385,52.22397960128134,0 6.847604734558461,52.22366336501974,0 6.84775082703156,52.22348501076475,0 6.848327567214691,52.22382735084554,0 6.848141106797385,52.22397960128134,0 6.848141106797385,52.22397960128134,0</coordinates>
|
<coordinates>6.848141106797385,52.22397960128134,0 6.847604734558461,52.22366336501974,0 6.84775082703156,52.22348501076475,0 6.848327567214691,52.22382735084554,0 6.848141106797385,52.22397960128134,0 6.848141106797385,52.22397960128134,0 6.848141106797385,52.22397960128134,0</coordinates>
|
||||||
</LinearRing>
|
</LinearRing>
|
||||||
</outerBoundaryIs>
|
</outerBoundaryIs>
|
||||||
</Polygon>
|
</Polygon>
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
<tessellate>1</tessellate>
|
<tessellate>1</tessellate>
|
||||||
<outerBoundaryIs>
|
<outerBoundaryIs>
|
||||||
<LinearRing>
|
<LinearRing>
|
||||||
<coordinates>6.845667068529353,52.22505473275959,0 6.846124505574835,52.2253406573624,0 6.845843953045947,52.22551933313507,0 6.845303793589403,52.22520820682232,0 6.845667068529353,52.22505473275959,0 6.845667068529353,52.22505473275959,0</coordinates>
|
<coordinates>6.845667068529353,52.22505473275959,0 6.846124505574835,52.2253406573624,0 6.845843953045947,52.22551933313507,0 6.845303793589403,52.22520820682232,0 6.845667068529353,52.22505473275959,0 6.845667068529353,52.22505473275959,0 6.845667068529353,52.22505473275959,0</coordinates>
|
||||||
</LinearRing>
|
</LinearRing>
|
||||||
</outerBoundaryIs>
|
</outerBoundaryIs>
|
||||||
</Polygon>
|
</Polygon>
|
||||||
|
|||||||
@@ -2080,6 +2080,7 @@ def virtualevent_register_view(request,id=0):
|
|||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
# process form
|
# process form
|
||||||
form = VirtualRaceResultForm(request.POST,categories=categories)
|
form = VirtualRaceResultForm(request.POST,categories=categories)
|
||||||
|
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
cd = form.cleaned_data
|
cd = form.cleaned_data
|
||||||
teamname = cd['teamname']
|
teamname = cd['teamname']
|
||||||
@@ -2159,6 +2160,7 @@ def virtualevent_register_view(request,id=0):
|
|||||||
|
|
||||||
record.save()
|
record.save()
|
||||||
|
|
||||||
|
|
||||||
add_rower_race(r,race)
|
add_rower_race(r,race)
|
||||||
# send email about opt out
|
# send email about opt out
|
||||||
if not acceptsocialmedia:
|
if not acceptsocialmedia:
|
||||||
@@ -2217,6 +2219,8 @@ def virtualevent_register_view(request,id=0):
|
|||||||
"You have successfully registered for this race. Good luck!"
|
"You have successfully registered for this race. Good luck!"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
url = reverse('virtualevent_view',
|
url = reverse('virtualevent_view',
|
||||||
kwargs = {
|
kwargs = {
|
||||||
'id':race.id
|
'id':race.id
|
||||||
|
|||||||
Reference in New Issue
Block a user