fix rojabo permissions
This commit is contained in:
@@ -49,13 +49,31 @@ class RojaboObjects(DjangoTestCase):
|
|||||||
self.r.defaulttimezone = 'Europe/Prague'
|
self.r.defaulttimezone = 'Europe/Prague'
|
||||||
self.r.rowerplan = 'plan'
|
self.r.rowerplan = 'plan'
|
||||||
self.r.save()
|
self.r.save()
|
||||||
self.c.login(username='john',password='koeinsloot')
|
|
||||||
|
self.u2 = User.objects.create_user('john2',
|
||||||
|
'sander@ds2.ds',
|
||||||
|
'stierinsloot')
|
||||||
|
|
||||||
|
self.u2.first_name = 'Sander'
|
||||||
|
self.u2.last_name = 'John'
|
||||||
|
self.u2.save()
|
||||||
|
self.r2 = Rower.objects.create(user=self.u2,gdproptin=True, ftpset=True,surveydone=True,
|
||||||
|
gdproptindate=timezone.now()
|
||||||
|
)
|
||||||
|
|
||||||
|
self.r2.rojabo_token = '12'
|
||||||
|
self.r2.rojabo_refreshtoken = 'ab'
|
||||||
|
self.r2.rojabo_tokenexpirydate = arrow.get(datetime.datetime.now()+datetime.timedelta(days=1)).datetime
|
||||||
|
self.r2.defaulttimezone = 'Europe/Prague'
|
||||||
|
self.r2.rowerplan = 'pro'
|
||||||
|
self.r2.save()
|
||||||
|
|
||||||
self.nu = datetime.datetime.now()
|
self.nu = datetime.datetime.now()
|
||||||
|
|
||||||
@patch('rowers.rojabo_stuff.requests.get', side_effect=mocked_requests)
|
@patch('rowers.rojabo_stuff.requests.get', side_effect=mocked_requests)
|
||||||
@patch('rowers.rojabo_stuff.requests.post', side_effect=mocked_requests)
|
@patch('rowers.rojabo_stuff.requests.post', side_effect=mocked_requests)
|
||||||
def test_rojabo_import(self, mock_get, mock_post):
|
def test_rojabo_import(self, mock_get, mock_post):
|
||||||
|
self.c.login(username='john',password='koeinsloot')
|
||||||
url = '/rowers/session/rojaboimport/'
|
url = '/rowers/session/rojaboimport/'
|
||||||
response = self.c.get(url)
|
response = self.c.get(url)
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
@@ -79,6 +97,26 @@ class RojaboObjects(DjangoTestCase):
|
|||||||
self.assertEqual(len(ps.steps['steps']),20)
|
self.assertEqual(len(ps.steps['steps']),20)
|
||||||
|
|
||||||
|
|
||||||
|
@patch('rowers.rojabo_stuff.requests.get', side_effect=mocked_requests)
|
||||||
|
@patch('rowers.rojabo_stuff.requests.post', side_effect=mocked_requests)
|
||||||
|
def test_rojabo_import_denied(self, mock_get, mock_post):
|
||||||
|
self.c.login(username='john2',password='stierinsloot')
|
||||||
|
url = '/rowers/session/rojaboimport/'
|
||||||
|
response = self.c.get(url)
|
||||||
|
self.assertEqual(response.status_code, 302)
|
||||||
|
|
||||||
|
form_data = {
|
||||||
|
'csrfmiddlewaretoken': ['xalRrf8y7P2Hhobges9QC4aKCWg4l06gexDc8g2DeuVExgadfk4YhV8oSE1Yu43U'],
|
||||||
|
'sessions': ['Import selected sessions'],
|
||||||
|
'sessionid': ['862172']
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
response = self.c.post(url,form_data)
|
||||||
|
self.assertEqual(response.status_code,302)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
@override_settings(TESTING=True)
|
@override_settings(TESTING=True)
|
||||||
class GarminObjects(DjangoTestCase):
|
class GarminObjects(DjangoTestCase):
|
||||||
|
|||||||
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
Binary file not shown.
@@ -649,10 +649,10 @@ def rower_process_testcallback(request): # pragma: no cover
|
|||||||
|
|
||||||
# The page where you select which Strava workout to import
|
# The page where you select which Strava workout to import
|
||||||
@login_required()
|
@login_required()
|
||||||
@user_passes_test(ispromember, login_url="/rowers/paidplans/",
|
@user_passes_test(isplanmember, login_url="/rowers/paidplans/",
|
||||||
message="This functionality requires a Pro plan or higher",
|
message="This functionality requires a Self-coach plan or higher",
|
||||||
redirect_field_name=None)
|
redirect_field_name=None)
|
||||||
@permission_required('rower.is_planmember', fn=get_user_by_userid, raise_exception=True)
|
@permission_required('plannedsession.add_session', fn=get_user_by_userid, raise_exception=True)
|
||||||
def workout_rojaboimport_view(request, message="", userid=0): # pragma: no cover
|
def workout_rojaboimport_view(request, message="", userid=0): # pragma: no cover
|
||||||
r = getrequestrower(request, userid=userid)
|
r = getrequestrower(request, userid=userid)
|
||||||
if r.user != request.user:
|
if r.user != request.user:
|
||||||
|
|||||||
Reference in New Issue
Block a user