Private
Public Access
1
0

going through importviews ... coverage

This commit is contained in:
Sander Roosendaal
2021-04-20 10:41:32 +02:00
parent f413af91e6
commit 9677d5166e
7 changed files with 464 additions and 239 deletions

View File

@@ -14,6 +14,9 @@ import rowers
from rowers import dataprep
from rowers import tasks
from rowers import c2stuff
from rowers import stravastuff
import urllib
import json
@pytest.mark.django_db
@override_settings(TESTING=True)
@@ -461,6 +464,11 @@ class NKObjects(DjangoTestCase):
)
self.assertTrue(res>0)
@patch('rowers.nkstuff.requests.post', side_effect=mocked_requests)
def notest_nk_callback(self, mock_post):
response = self.c.get('/nk_callback?code=absdef23&scope=read',follow=True)
self.assertEqual(response.status_code, 200)
@patch('rowers.nkstuff.requests.get', side_effect=mocked_requests)
@patch('rowers.nkstuff.requests.post', side_effect=mocked_requests)
@@ -609,6 +617,10 @@ class RP3Objects(DjangoTestCase):
res = tasks.handle_rp3_async_workout(userid,rp3token,rp3id,startdatetime,max_attempts)
self.assertEqual(res,1)
@patch('rowers.rp3stuff.requests.post', side_effect=mocked_requests)
def notest_rp3_callback(self, mock_post):
response = self.c.get('/rp3_callback?code=absdef23&scope=read',follow=True)
self.assertEqual(response.status_code, 200)
#@pytest.mark.django_db
@@ -630,6 +642,7 @@ class StravaObjects(DjangoTestCase):
self.r.stravatoken = '12'
self.r.stravarefreshtoken = '123'
self.r.stravatokenexpirydate = arrow.get(datetime.datetime.now()-datetime.timedelta(days=1)).datetime
self.r.strava_owner_id = 4
self.r.save()
self.c.login(username='john',password='koeinsloot')
@@ -666,6 +679,79 @@ class StravaObjects(DjangoTestCase):
csvfilename=filename
)
@patch('rowers.stravastuff.requests.post', side_effect=mocked_requests)
@patch('rowers.stravastuff.requests.get', side_effect=mocked_requests)
def test_strava_webhook(self, mock_get, mock_post):
url = reverse('strava_webhook_view')
params = {
'hub.challenge':'aap',
'hub.verify_token':stravastuff.webhookverification,
}
url2 = url+'?'+urllib.parse.urlencode(params)
response = self.c.get(url2)
self.assertEqual(response.status_code,200)
data = {
'aspect_type':'create',
'object_id': 123,
'object_type':'activity',
'strava_owner': self.r.strava_owner_id,
'starttimeunix': arrow.get(datetime.datetime.now()).timestamp(),
}
raw_data = json.dumps(data)
response = self.c.generic('POST', url, raw_data)
self.assertEqual(response.status_code,200)
data = {
'aspect_type':'update',
'updates':{
'title':faker.word(),
'type': 'Ride',
},
'object_id': 123,
'object_type':'activity',
'strava_owner': self.r.strava_owner_id,
'starttimeunix': arrow.get(datetime.datetime.now()).timestamp(),
}
raw_data = json.dumps(data)
response = self.c.generic('POST', url, raw_data)
self.assertEqual(response.status_code,200)
data = {
'aspect_type':'delete',
'object_id': 123,
'object_type':'activity',
'strava_owner': self.r.strava_owner_id,
'starttimeunix': arrow.get(datetime.datetime.now()).timestamp(),
}
raw_data = json.dumps(data)
response = self.c.generic('POST', url, raw_data)
self.assertEqual(response.status_code,200)
@patch('rowers.stravastuff.requests.post', side_effect=mocked_requests)
@patch('rowers.stravastuff.requests.get', side_effect=mocked_requests)
@patch('rowers.stravastuff.stravalib.Client',side_effect=MockStravalibClient)
def test_strava_upload(self, mock_get, mock_post,MockStravalibClient):
response = self.c.get('/rowers/workout/'+encoded1+'/stravauploadw/')
self.assertRedirects(response,
expected_url = '/rowers/workout/'+encoded1+'/edit/',
status_code=302,target_status_code=200)
self.assertEqual(response.url, '/rowers/workout/'+encoded1+'/edit/')
self.assertEqual(response.status_code, 302)
@patch('rowers.stravastuff.requests.get', side_effect=mocked_requests)
@patch('rowers.stravastuff.requests.post', side_effect=mocked_requests)

View File

@@ -9,6 +9,14 @@ from .statements import *
nu = datetime.datetime.now()
from rowers.rower_rules import is_workout_user
from rowers.models import update_records
class MiscTests(TestCase):
def setUp(self):
pass
def test_c2records(self):
update_records(verbose=False)
#@pytest.mark.django_db
class WorkoutTests(TestCase):

View File

@@ -1442,6 +1442,104 @@ class PlannedSessionsView(TestCase):
added = plannedsessions.add_team_session(self.team,self.ps_trimp)
self.ps_trimp.save()
s = b"""filename: britishrowing.json
name: British Rowing Training Plan Beginner Week 1
trainingDays:
- order: 1
workouts:
- workoutName: Week 1 Session 1
steps:
- stepId: 0
wkt_step_name: Warmup
durationType: Time
durationValue: 300000
intensity: Warmup
description: ""
- stepId: 1
wkt_step_name: Intervals
durationType: Time
durationValue: 60000
intensity: Active
description: ""
- stepId: 2
wkt_step_name: Interval Rest
durationType: Time
durationValue: 60000
intensity: Rest
description: ""
- stepId: 3
wkt_step_name: Rep
durationType: RepeatUntilStepsCmplt
durationValue: 1
targetValue: 5
- stepId: 4
wkt_step_name: Cooldown
durationType: Time
durationValue: 300000
intensity: Cooldown
description: ""
sport: ""
description: ""
- order: 4
workouts:
- workoutName: Week 1 Session 2
steps:
- stepId: 0
wkt_step_name: Warmup
durationType: Time
durationValue: 300000
intensity: Warmup
description: ""
- stepId: 1
wkt_step_name: Interval
durationType: Time
durationValue: 300000
intensity: Active
description: ""
- stepId: 2
wkt_step_name: Interval Rest
durationType: Time
durationValue: 180000
intensity: Rest
description: ""
- stepId: 3
wkt_step_name: Rep
durationType: RepeatUntilStepsCmplt
durationValue: 1
targetValue: 5
- stepId: 4
wkt_step_name: Cooldown
durationType: Time
durationValue: 300000
intensity: Cooldown
description: ""
sport: ""
description: ""
duration: 7
description: ""
"""
self.file_data = {'yaml': SimpleUploadedFile('britishrowing.yml', s)}
with open('media/temp.yml','wb') as f:
f.write(s)
self.instantplan = InstantPlan(
uuid = "79b0dacf-9b49-4f33-9acf-e2e6734e22dc",
url = "https://thepeteplan.wordpress.com/beginner-training/",
name = faker.word(),
goal = faker.word(),
duration = 42,
description = faker.word(),
target = faker.word(),
hoursperweek = 3,
sessionsperweek = 3,
price = 0,
yaml = 'temp.yml',
)
self.instantplan.save()
def tearDown(self):
@@ -1555,6 +1653,29 @@ class PlannedSessionsView(TestCase):
response = self.c.post(url,formdata,follow=True)
self.assertEqual(response.status_code,200)
def test_deletetarget_view(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
url = reverse('rower_delete_trainingtarget',kwargs={'id':self.target.id})
response = self.c.get(url)
self.assertEqual(response.status_code,302)
def test_deletetrainingplan_view(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
url = reverse('trainingplan_delete_view',kwargs={'pk':self.plan.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
form = {}
response = self.c.post(url,form)
self.assertEqual(response.status_code,302)
def test_multicreate_view(self):
login = self.c.login(username=self.u.username, password=self.password)
@@ -1637,6 +1758,10 @@ class PlannedSessionsView(TestCase):
response = self.c.post(url,form_data,follow=True)
self.assertEqual(response.status_code,200)
url = reverse('remove_groupsession_view',kwargs={'id':self.ps_trimp.id})
response = self.c.get(url)
self.assertEqual(response.status_code,302)
def test_teamedit_view(self):
login = self.c.login(username=self.u.username, password=self.password)
@@ -1908,86 +2033,29 @@ class PlannedSessionsView(TestCase):
#'yaml': {'yaml': SimpleUploadedFile('britishrowing.yml', f.read())}
}
s = b"""filename: britishrowing.json
name: British Rowing Training Plan Beginner Week 1
trainingDays:
- order: 1
workouts:
- workoutName: Week 1 Session 1
steps:
- stepId: 0
wkt_step_name: Warmup
durationType: Time
durationValue: 300000
intensity: Warmup
description: ""
- stepId: 1
wkt_step_name: Intervals
durationType: Time
durationValue: 60000
intensity: Active
description: ""
- stepId: 2
wkt_step_name: Interval Rest
durationType: Time
durationValue: 60000
intensity: Rest
description: ""
- stepId: 3
wkt_step_name: Rep
durationType: RepeatUntilStepsCmplt
durationValue: 1
targetValue: 5
- stepId: 4
wkt_step_name: Cooldown
durationType: Time
durationValue: 300000
intensity: Cooldown
description: ""
sport: ""
description: ""
- order: 4
workouts:
- workoutName: Week 1 Session 2
steps:
- stepId: 0
wkt_step_name: Warmup
durationType: Time
durationValue: 300000
intensity: Warmup
description: ""
- stepId: 1
wkt_step_name: Interval
durationType: Time
durationValue: 300000
intensity: Active
description: ""
- stepId: 2
wkt_step_name: Interval Rest
durationType: Time
durationValue: 180000
intensity: Rest
description: ""
- stepId: 3
wkt_step_name: Rep
durationType: RepeatUntilStepsCmplt
durationValue: 1
targetValue: 5
- stepId: 4
wkt_step_name: Cooldown
durationType: Time
durationValue: 300000
intensity: Cooldown
description: ""
sport: ""
description: ""
duration: 7
description: ""
"""
file_data = {'yaml': SimpleUploadedFile('britishrowing.yml', s)}
form = InstantPlanForm(form_data,file_data)
form = InstantPlanForm(form_data,self.file_data)
if not form.is_valid():
print(form.errors)
self.assertTrue(form.is_valid())
# look at a instant plan
url = reverse('rower_view_instantplan',kwargs={'id':self.instantplan.uuid})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
form_data = {
'name':faker.word(),
'target': '',
'startdate':datetime.datetime.now().strftime('%Y-%m-%d'),
'enddate':(datetime.datetime.now()+datetime.timedelta(days=self.instantplan.duration)).strftime('%Y-%m-%d'),
'notes': faker.word(),
'datechoice':'startdate',
}
form = InstantPlanSelectForm(form_data)
self.assertTrue(form.is_valid())
response = self.c.post(url,form_data,follow=True)
self.assertEqual(response.status_code,200)

75
rowers/tests/testdata/temp.yml vendored Normal file
View File

@@ -0,0 +1,75 @@
filename: britishrowing.json
name: British Rowing Training Plan Beginner Week 1
trainingDays:
- order: 1
workouts:
- workoutName: Week 1 Session 1
steps:
- stepId: 0
wkt_step_name: Warmup
durationType: Time
durationValue: 300000
intensity: Warmup
description: ""
- stepId: 1
wkt_step_name: Intervals
durationType: Time
durationValue: 60000
intensity: Active
description: ""
- stepId: 2
wkt_step_name: Interval Rest
durationType: Time
durationValue: 60000
intensity: Rest
description: ""
- stepId: 3
wkt_step_name: Rep
durationType: RepeatUntilStepsCmplt
durationValue: 1
targetValue: 5
- stepId: 4
wkt_step_name: Cooldown
durationType: Time
durationValue: 300000
intensity: Cooldown
description: ""
sport: ""
description: ""
- order: 4
workouts:
- workoutName: Week 1 Session 2
steps:
- stepId: 0
wkt_step_name: Warmup
durationType: Time
durationValue: 300000
intensity: Warmup
description: ""
- stepId: 1
wkt_step_name: Interval
durationType: Time
durationValue: 300000
intensity: Active
description: ""
- stepId: 2
wkt_step_name: Interval Rest
durationType: Time
durationValue: 180000
intensity: Rest
description: ""
- stepId: 3
wkt_step_name: Rep
durationType: RepeatUntilStepsCmplt
durationValue: 1
targetValue: 5
- stepId: 4
wkt_step_name: Cooldown
durationType: Time
durationValue: 300000
intensity: Cooldown
description: ""
sport: ""
description: ""
duration: 7
description: ""

Binary file not shown.