Private
Public Access
1
0

adding strava

This commit is contained in:
Sander Roosendaal
2023-02-11 17:20:02 +01:00
parent da9998eaf1
commit eaedf30369
20 changed files with 474 additions and 626 deletions

View File

@@ -14,7 +14,7 @@ import rowers
from rowers import dataprep
from rowers import tasks
from rowers import c2stuff
from rowers import stravastuff
import urllib
import json
import pandas as pd

View File

@@ -14,7 +14,7 @@ import rowers
from rowers import dataprep
from rowers import tasks
from rowers import c2stuff
from rowers import stravastuff
import urllib
import json

View File

@@ -15,7 +15,6 @@ import rowers
from rowers import dataprep
from rowers import tasks
from rowers import stravastuff
from rowers import polarstuff
import urllib
import json
@@ -26,6 +25,7 @@ from rowers.integrations import *
from django.db import transaction
import rowers.garmin_stuff as gs
import rowers.integrations.strava as strava
@pytest.mark.django_db
@override_settings(TESTING=True)
@@ -1059,14 +1059,14 @@ class StravaObjects(DjangoTestCase):
csvfilename=filename,uploadedtostrava=123,
)
@patch('rowers.stravastuff.requests.post', side_effect=mocked_requests)
@patch('rowers.stravastuff.requests.get', side_effect=mocked_requests)
@patch('rowers.integrations.strava.requests.post', side_effect=mocked_requests)
@patch('rowers.integrations.strava.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,
'hub.verify_token':strava.webhookverification,
}
url2 = url+'?'+urllib.parse.urlencode(params)
@@ -1117,21 +1117,18 @@ class StravaObjects(DjangoTestCase):
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_workout_strava_upload(self, mock_get, mock_post,MockStravalibClient):
@patch('rowers.integrations.strava.requests.post', side_effect=mocked_requests)
@patch('rowers.integrations.strava.requests.get', side_effect=mocked_requests)
def test_workout_strava_upload(self, mock_get, mock_post):
w = Workout.objects.get(id=1)
res = stravastuff.workout_strava_upload(self.r.user,w,asynchron=True)
self.assertEqual(res[1],-1)
res = stravastuff.workout_strava_upload(self.r.user,w,asynchron=False)
integration = StravaIntegration(self.r.user)
res = integration.workout_export(w)
self.assertEqual(len(res[0]),43)
self.assertEqual(res,1)
@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):
@patch('rowers.integrations.strava.requests.post', side_effect=mocked_requests)
@patch('rowers.integrations.strava.requests.get', side_effect=mocked_requests)
def test_strava_upload(self, mock_get, mock_post):
response = self.c.get('/rowers/workout/'+encoded1+'/stravauploadw/')
self.assertRedirects(response,
@@ -1142,17 +1139,18 @@ class StravaObjects(DjangoTestCase):
self.assertEqual(response.status_code, 302)
@patch('rowers.stravastuff.requests.get', side_effect=mocked_requests)
@patch('rowers.stravastuff.requests.post', side_effect=mocked_requests)
@patch('rowers.integrations.strava.requests.get', side_effect=mocked_requests)
@patch('rowers.integrations.strava.requests.post', side_effect=mocked_requests)
def test_strava_list(self, mock_get, mockpost):
result = rowers.stravastuff.rower_strava_token_refresh(self.u)
integration = StravaIntegration(self.u)
result = integration.token_refresh()
self.assertEqual(result,"987654321234567898765432123456789")
response = self.c.get('/rowers/workout/stravaimport/')
self.assertEqual(response.status_code,200)
@patch('rowers.utils.requests.get', side_effect=mocked_requests)
@patch('rowers.stravastuff.requests.post', side_effect=mocked_requests)
@patch('rowers.integrations.strava.requests.post', side_effect=mocked_requests)
@patch('rowers.dataprep.getsmallrowdata_db')
def test_strava_import(self, mock_get, mock_post,
mocked_getsmallrowdata_db):
@@ -1166,16 +1164,11 @@ class StravaObjects(DjangoTestCase):
self.assertEqual(response.status_code, 200)
@patch('rowers.stravastuff.requests.post', side_effect=mocked_requests)
@patch('rowers.integrations.strava.requests.post', side_effect=mocked_requests)
def test_strava_callback(self, mock_post):
response = self.c.get('/stravacall_back?code=absdef23&scope=read',follow=True)
self.assertEqual(response.status_code, 200)
@patch('rowers.stravastuff.requests.post', side_effect=mocked_requests)
def test_strava_token_refresh(self, mock_post):
result = rowers.stravastuff.rower_strava_token_refresh(self.u)
self.assertEqual(result,"987654321234567898765432123456789")
#@pytest.mark.django_db

View File

@@ -424,7 +424,7 @@ class PermissionsViewTests(TestCase):
@patch('rowers.dataprep.get_video_data',side_effect=mocked_get_video_data)
def test_permissions_coachee(
self,view,permissions,
mock_Session,
mocked_session,
mock_c2open,
mocked_sqlalchemy,
mocked_read_df_sql,

View File

@@ -20,7 +20,7 @@ from rowers import dataprep
from rowers import tasks
from rowers import plannedsessions
from rowers.views.workoutviews import get_video_id
from rowers import stravastuff
import rowingdata
from rowers.c2stuff import getagegrouprecord

View File

@@ -84,7 +84,7 @@
95,112,WorkoutDelete,delete workout,TRUE,403,basic,200,302,basic,403,403,coach,403,403,FALSE,FALSE,TRUE,FALSE,FALSE,
96,113,workout_smoothenpace_view,smoothen pace,TRUE,403,pro,302,302,pro,403,403,coach,302,403,FALSE,FALSE,TRUE,TRUE,TRUE,
97,114,workout_undo_smoothenpace_view,unsmoothen pace,TRUE,403,pro,302,302,pro,403,403,coach,302,403,FALSE,FALSE,TRUE,TRUE,TRUE,
98,115,workout_c2import_view,list workouts to be imported (test stops at notokenerror),TRUE,302,basic,302,302,basic,403,403,coach,302,403,FALSE,TRUE,FALSE,TRUE,TRUE,
98,115,workout_c2import_view,list workouts to be imported (test stops at notokenerror),TRUE,302,basic,200,302,basic,403,403,coach,302,403,FALSE,TRUE,FALSE,TRUE,TRUE,
99,120,workout_stravaimport_view,list workouts to be imported (test stops at notokenerror),TRUE,302,basic,302,302,basic,403,403,coach,302,403,FALSE,TRUE,FALSE,TRUE,TRUE,
101,124,workout_getimportview,imports a workout from third party,TRUE,200,basic,200,302,FALSE,200,302,FALSE,200,302,FALSE,FALSE,FALSE,FALSE,FALSE,
103,126,workout_getstravaworkout_next,gets all strava workouts,TRUE,302,basic,302,302,FALSE,200,302,FALSE,200,302,FALSE,FALSE,FALSE,FALSE,FALSE,
1 id view function anonymous anonymous_response own own_response own_nonperm member member_response member_nonperm coachee coachee_response coachee_nonperm is_staff userid workoutid dotest realtest kwargs
84 95 112 WorkoutDelete delete workout TRUE 403 basic 200 302 basic 403 403 coach 403 403 FALSE FALSE TRUE FALSE FALSE
85 96 113 workout_smoothenpace_view smoothen pace TRUE 403 pro 302 302 pro 403 403 coach 302 403 FALSE FALSE TRUE TRUE TRUE
86 97 114 workout_undo_smoothenpace_view unsmoothen pace TRUE 403 pro 302 302 pro 403 403 coach 302 403 FALSE FALSE TRUE TRUE TRUE
87 98 115 workout_c2import_view list workouts to be imported (test stops at notokenerror) TRUE 302 basic 302 200 302 basic 403 403 coach 302 403 FALSE TRUE FALSE TRUE TRUE
88 99 120 workout_stravaimport_view list workouts to be imported (test stops at notokenerror) TRUE 302 basic 302 302 basic 403 403 coach 302 403 FALSE TRUE FALSE TRUE TRUE
89 101 124 workout_getimportview imports a workout from third party TRUE 200 basic 200 302 FALSE 200 302 FALSE 200 302 FALSE FALSE FALSE FALSE FALSE
90 103 126 workout_getstravaworkout_next gets all strava workouts TRUE 302 basic 302 302 FALSE 200 302 FALSE 200 302 FALSE FALSE FALSE FALSE FALSE