more or less done
This commit is contained in:
@@ -441,6 +441,12 @@ class StravaPrivacy(TestCase):
|
||||
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
# count number of workouts by counting the number of occurences of '<label for="id_workouts_xx">' in response.content where xx is a number
|
||||
# print all lines of response.content that contain '<label for="id_workouts_'
|
||||
#print([line for line in response.content.decode('utf-8').split('\n') if '<label for="id_workouts_' in line])
|
||||
#print(form_data['workouts'])
|
||||
self.assertEqual(response.content.count(b'<label for="id_workouts_'),2)
|
||||
|
||||
# get data from histodata function
|
||||
ws = Workout.objects.filter(user=self.r)
|
||||
|
||||
@@ -455,13 +461,6 @@ class StravaPrivacy(TestCase):
|
||||
self.assertEqual(data.count(','),2062)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# try and fail to submit a workout with workoutsource = strava to a challenge
|
||||
|
||||
|
||||
|
||||
class OwnApi(TestCase):
|
||||
def setUp(self):
|
||||
self.u = UserFactory()
|
||||
|
||||
@@ -106,10 +106,26 @@ class ChallengesTest(TestCase):
|
||||
workouttype = 'water',
|
||||
)
|
||||
|
||||
|
||||
self.wthyro.startdatetime = arrow.get(nu).datetime
|
||||
self.wthyro.date = nu.date()
|
||||
self.wthyro.save()
|
||||
|
||||
result = get_random_file(filename='rowers/tests/testdata/thyro.csv')
|
||||
self.w_strava = WorkoutFactory(user=self.r,
|
||||
csvfilename=result['filename'],
|
||||
starttime=result['starttime'],
|
||||
startdatetime=result['startdatetime'],
|
||||
duration=result['duration'],
|
||||
distance=result['totaldist'],
|
||||
workouttype = 'water',
|
||||
workoutsource = 'strava',
|
||||
privacy = 'hidden',
|
||||
)
|
||||
self.w_strava.startdatetime = arrow.get(nu).datetime
|
||||
self.w_strava.date = nu.date()
|
||||
self.w_strava.save()
|
||||
|
||||
result = get_random_file(filename='rowers/tests/testdata/thyro.csv')
|
||||
self.wthyro2 = WorkoutFactory(user=self.r2,
|
||||
csvfilename=result['filename'],
|
||||
@@ -591,6 +607,78 @@ class ChallengesTest(TestCase):
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
# repeat previous test for self.w_strava, but the response status of virtualevent_submit_result_view should be 403 and len(records) should be 0
|
||||
@patch('django.contrib.gis.geoip2.GeoIP2.city', side_effect=mocked_requests)
|
||||
def test_fastestrace_view_strava(self, mock_get):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
race = self.FastestRace
|
||||
|
||||
if self.r.birthdate:
|
||||
age = calculate_age(self.r.birthdate)
|
||||
else:
|
||||
age = 25
|
||||
|
||||
# look at event
|
||||
url = reverse('virtualevent_view',kwargs={'id':race.id})
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
# register
|
||||
url = reverse('virtualevent_register_view',kwargs={'id':race.id})
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
|
||||
form_data = {
|
||||
'teamname': 'ApeTeam',
|
||||
'boatclass': 'water',
|
||||
'boattype': '1x',
|
||||
'weightcategory': 'hwt',
|
||||
'adaptiveclass': 'None',
|
||||
'age': age,
|
||||
'mix': False,
|
||||
'acceptsocialmedia': True,
|
||||
}
|
||||
form = VirtualRaceResultForm(form_data)
|
||||
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)
|
||||
|
||||
# submit workout
|
||||
url = reverse('virtualevent_submit_result_view',kwargs={'id':race.id,'workoutid':self.w_strava.id})
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
# response.content should have a form with only one instance of <label for="id_workouts_0">
|
||||
self.assertEqual(response.content.count(b'<label for="id_workouts_0">'),1)
|
||||
|
||||
|
||||
|
||||
records = IndoorVirtualRaceResult.objects.filter(userid=self.u.id)
|
||||
self.assertEqual(len(records),1)
|
||||
|
||||
record = records[0]
|
||||
|
||||
|
||||
form_data = {
|
||||
'workouts':[self.w_strava.id],
|
||||
'record':record.id,
|
||||
}
|
||||
|
||||
response = self.c.post(url,form_data,follow=True)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
# in response.content, there should be a p with class errormessage and the text "Error in form"
|
||||
self.assertTrue(b'Error in form' in response.content)
|
||||
|
||||
@patch('django.contrib.gis.geoip2.GeoIP2.city', side_effect=mocked_requests)
|
||||
def test_virtualevents_view(self, mock_get):
|
||||
|
||||
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
Binary file not shown.
Reference in New Issue
Block a user