Private
Public Access
1
0

getting pytest to work

This commit is contained in:
Sander Roosendaal
2019-11-03 10:02:11 +01:00
parent c4642060a8
commit 0468ebe54b
2 changed files with 54 additions and 52 deletions

View File

@@ -9,6 +9,7 @@ pytestmark = pytest.mark.django_db
from rowers.opaque import encoder from rowers.opaque import encoder
encoded1 = str(encoder.encode_hex(1)) encoded1 = str(encoder.encode_hex(1))
encoded2 = str(encoder.encode_hex(2)) encoded2 = str(encoder.encode_hex(2))
encoded13 = str(encoder.encode_hex(13))
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
import re import re
@@ -102,7 +103,7 @@ def mocked_sqlalchemy(*args, **kwargs):
return MockEngine() return MockEngine()
#@pytest.mark.django_db #@pytest.mark.django_db
class DjangoTestCase(TestCase): #, MockTestCase): class DjangoTestCase(TestCase): #, MockTestCase):
def _pre_setup(self): def _pre_setup(self):
# MockTestCase.setUp(self) # MockTestCase.setUp(self)
@@ -116,9 +117,9 @@ class DjangoTestCase(TestCase): #, MockTestCase):
def mocked_tcx_parser(*args, **kwargs): def mocked_tcx_parser(*args, **kwargs):
df = pd.read_csv('rowers/tests/testdata/fake_strokedata.csv') df = pd.read_csv('rowers/tests/testdata/fake_strokedata.csv')
return rowingdata(df=df) return rowingdata(df=df)
def mocked_polar_notifications(*args, **kwargs): def mocked_polar_notifications(*args, **kwargs):
return [] return []
@@ -128,12 +129,12 @@ class mocked_canvas():
return True return True
# Mocked Dataprep # Mocked Dataprep
def mocked_fetchcperg(*args, **kwargs): def mocked_fetchcperg(*args, **kwargs):
df = pd.read_csv('rowers/tests/testdata/cpdataerg.csv') df = pd.read_csv('rowers/tests/testdata/cpdataerg.csv')
return df return df
import pandas as pd import pandas as pd
def mocked_read_df_sql(id): def mocked_read_df_sql(id):
df = pd.read_csv('rowers/tests/testdata/fake_strokedata.csv') df = pd.read_csv('rowers/tests/testdata/fake_strokedata.csv')
@@ -144,9 +145,9 @@ def mocked_getrowdata_db(*args, **kwargs):
df = pd.read_csv('rowers/tests/testdata/getrowdata_mock.csv') df = pd.read_csv('rowers/tests/testdata/getrowdata_mock.csv')
id = kwargs['id'] id = kwargs['id']
row = Workout.objects.get(id=id) row = Workout.objects.get(id=id)
return df,row return df,row
def mocked_getrowdata_uh(*args, **kwargs): def mocked_getrowdata_uh(*args, **kwargs):
@@ -302,7 +303,7 @@ def mock_update_subscription(*args, **kwargs):
rower.save() rower.save()
except: except:
amount = 20 amount = 20
return True,amount return True,amount
def mock_create_subscription(*args, **kwargs): def mock_create_subscription(*args, **kwargs):
@@ -339,10 +340,10 @@ class gatewayresult():
self.payment_method = vpayment_method() self.payment_method = vpayment_method()
self.subscription = vsubscription() self.subscription = vsubscription()
self.customer = customer() self.customer = customer()
def __unicode__(): def __unicode__():
return "mockedgatewayresult" return "mockedgatewayresult"
class credit_card(): class credit_card():
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.subscriptions = [vsubscription()] self.subscriptions = [vsubscription()]
@@ -351,7 +352,7 @@ class credit_card():
class paypal_account(): class paypal_account():
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.subscriptions = [vsubscription(),vsubscription()] self.subscriptions = [vsubscription(),vsubscription()]
class customer(): class customer():
def find(*arg, **kwargs): def find(*arg, **kwargs):
return self return self
@@ -403,7 +404,7 @@ class vtransaction():
} }
self.created_at = datetime.datetime.now() self.created_at = datetime.datetime.now()
self.currency_iso_code = 'EUR' self.currency_iso_code = 'EUR'
class vsubscription(): class vsubscription():
def update(*args, **kwargs): def update(*args, **kwargs):
return gatewayresult(is_success=True) return gatewayresult(is_success=True)
@@ -418,17 +419,17 @@ class vsubscription():
self.plan_id = 12 self.plan_id = 12
self.price = 15 self.price = 15
self.never_expires = True self.never_expires = True
class subscription(): class subscription():
def create(*args, **kwargs): def create(*args, **kwargs):
return gatewayresult(is_success=True) return gatewayresult(is_success=True)
def update(*args, **kwargs): def update(*args, **kwargs):
return gatewayresult(is_success=True) return gatewayresult(is_success=True)
def cancel(*args, **kwargs): def cancel(*args, **kwargs):
return gatewayresult(is_success=True) return gatewayresult(is_success=True)
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.id = '121' self.id = '121'
self.billing_period_end_date = (datetime.datetime.now()+datetime.timedelta(days=365)).date() self.billing_period_end_date = (datetime.datetime.now()+datetime.timedelta(days=365)).date()
@@ -445,7 +446,7 @@ class vpayment_method():
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.token = 'liesjeleerdelotje' self.token = 'liesjeleerdelotje'
class payment_method(): class payment_method():
def create(*args, **kwargs): def create(*args, **kwargs):
return gatewayresult() return gatewayresult()
@@ -463,11 +464,11 @@ class MockBraintreeGateway:
self.subscription = subscription() self.subscription = subscription()
self.payment_method = payment_method() self.payment_method = payment_method()
def mocked_gateway(*args, **kwargs): def mocked_gateway(*args, **kwargs):
return MockBraintreeGateway() return MockBraintreeGateway()
# Mocked Rowingdata # Mocked Rowingdata
@@ -482,7 +483,7 @@ class mocked_rowingdata(rowingdata):
def get_timeplot_erg(self, title): def get_timeplot_erg(self, title):
fig1 = figure.Figure(figsize(12,10)) fig1 = figure.Figure(figsize(12,10))
return fig1 return fig1
def get_piechart(self, title): def get_piechart(self, title):
fig1 = figure.Figure(figsize(12,10)) fig1 = figure.Figure(figsize(12,10))
return fig1 return fig1
@@ -514,10 +515,10 @@ class mocked_rowingdata(rowingdata):
def get_power_piechart(self, title): def get_power_piechart(self, title):
fig1 = figure.Figure(figsize(12,10)) fig1 = figure.Figure(figsize(12,10))
return fig1 return fig1
# Mocked Requests # Mocked Requests
# to be done add polar mocks (for email processing) # to be done add polar mocks (for email processing)
def mocked_requests(*args, **kwargs): def mocked_requests(*args, **kwargs):
with open('rowers/tests/testdata/c2jsonworkoutdata.txt','r') as infile: with open('rowers/tests/testdata/c2jsonworkoutdata.txt','r') as infile:
@@ -529,9 +530,9 @@ def mocked_requests(*args, **kwargs):
polar_json = { polar_json = {
'available-user-data': [] 'available-user-data': []
} }
c2workoutlist = json.load(open('rowers/tests/testdata/c2workoutlist.txt')) c2workoutlist = json.load(open('rowers/tests/testdata/c2workoutlist.txt'))
c2uploadjson = { c2uploadjson = {
"data": { "data": {
"id": 339, "id": 339,
@@ -550,20 +551,20 @@ def mocked_requests(*args, **kwargs):
"ranked": False "ranked": False
} }
} }
stravaworkoutlist = json.load(open('rowers/tests/testdata/stravaworkoutlist.txt')) stravaworkoutlist = json.load(open('rowers/tests/testdata/stravaworkoutlist.txt'))
sporttracksworkoutlist = json.load(open('rowers/tests/testdata/sporttracksworkouts.txt')) sporttracksworkoutlist = json.load(open('rowers/tests/testdata/sporttracksworkouts.txt'))
rkworkoutlistjson = json.load(open('rowers/tests/testdata/rkworkoutslist.txt','r')) rkworkoutlistjson = json.load(open('rowers/tests/testdata/rkworkoutslist.txt','r'))
uaworkoutlistjson = json.load(open('rowers/tests/testdata/uaworkoutlist.txt','r')) uaworkoutlistjson = json.load(open('rowers/tests/testdata/uaworkoutlist.txt','r'))
stravasummaryjson = json.load(open('rowers/tests/testdata/stravaworkoutsummary.txt','r')) stravasummaryjson = json.load(open('rowers/tests/testdata/stravaworkoutsummary.txt','r'))
stravatimejson = json.load(open('rowers/tests/testdata/stravatimetestdata.txt','r')) stravatimejson = json.load(open('rowers/tests/testdata/stravatimetestdata.txt','r'))
stravavelojson = json.load(open('rowers/tests/testdata/stravavelotestdata.txt','r')) stravavelojson = json.load(open('rowers/tests/testdata/stravavelotestdata.txt','r'))
stravapowerjson = json.load(open('rowers/tests/testdata/stravapowertestdata.txt','r')) stravapowerjson = json.load(open('rowers/tests/testdata/stravapowertestdata.txt','r'))
stravadistancejson = json.load(open('rowers/tests/testdata/stravadistancetestdata.txt','r')) stravadistancejson = json.load(open('rowers/tests/testdata/stravadistancetestdata.txt','r'))
stravalatlongjson = json.load(open('rowers/tests/testdata/stravalatlongtestdata.txt','r')) stravalatlongjson = json.load(open('rowers/tests/testdata/stravalatlongtestdata.txt','r'))
stravahrjson = json.load(open('rowers/tests/testdata/stravahrtestdata.txt','r')) stravahrjson = json.load(open('rowers/tests/testdata/stravahrtestdata.txt','r'))
@@ -572,7 +573,7 @@ def mocked_requests(*args, **kwargs):
uapostworkoutjson = json.load(open('rowers/tests/testdata/uapostworkoutresponse.txt','r')) uapostworkoutjson = json.load(open('rowers/tests/testdata/uapostworkoutresponse.txt','r'))
tpuploadresponse = json.load(open('rowers/tests/testdata/tpuploadresponse.txt','r')) tpuploadresponse = json.load(open('rowers/tests/testdata/tpuploadresponse.txt','r'))
stravastreamjson = { stravastreamjson = {
'time':stravatimejson, 'time':stravatimejson,
'velocity_smooth':stravavelojson, 'velocity_smooth':stravavelojson,
@@ -604,14 +605,14 @@ def mocked_requests(*args, **kwargs):
def __init__(self, header_data, status_code): def __init__(self, header_data, status_code):
self.headers = header_data self.headers = header_data
self.status_code = status_code self.status_code = status_code
class MockSession: class MockSession:
def send(self,prepped): def send(self,prepped):
# prepped.url # prepped.url
# prepped.body (post data) # prepped.body (post data)
# prepped.headers # prepped.headers
# prepped.method # prepped.method
json_data = { json_data = {
'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq', 'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq',
'expires_in': 604800, 'expires_in': 604800,
@@ -620,7 +621,7 @@ def mocked_requests(*args, **kwargs):
return MockResponse(json_data,200) return MockResponse(json_data,200)
if not args: if not args:
return MockSession() return MockSession()
@@ -631,7 +632,7 @@ def mocked_requests(*args, **kwargs):
rktester = re.compile('.*?runkeeper\.com') rktester = re.compile('.*?runkeeper\.com')
uatester = re.compile('.*?mapmyfitness\.com') uatester = re.compile('.*?mapmyfitness\.com')
tptester = re.compile('.*?trainingpeaks\.com') tptester = re.compile('.*?trainingpeaks\.com')
c2importregex = '.*?concept2.com\/api\/users\/me\/results\/\d+' c2importregex = '.*?concept2.com\/api\/users\/me\/results\/\d+'
c2importtester = re.compile(c2importregex) c2importtester = re.compile(c2importregex)
@@ -701,7 +702,7 @@ def mocked_requests(*args, **kwargs):
return MockResponse(json_data,200) return MockResponse(json_data,200)
elif tpuploadtester.match(args[0]): elif tpuploadtester.match(args[0]):
return MockResponse(tpuploadresponse,200) return MockResponse(tpuploadresponse,200)
if uaapitester.match(args[0]): if uaapitester.match(args[0]):
if 'access_token' in args[0]: if 'access_token' in args[0]:
json_data = { json_data = {
@@ -719,8 +720,8 @@ def mocked_requests(*args, **kwargs):
return MockResponse(uaworkoutlistjson,200) return MockResponse(uaworkoutlistjson,200)
elif uausertester.match(args[0]): elif uausertester.match(args[0]):
return MockResponse(uauserjson,200) return MockResponse(uauserjson,200)
if uatester.match(args[0]): if uatester.match(args[0]):
if 'access_token' in args[0]: if 'access_token' in args[0]:
json_data = { json_data = {
@@ -729,8 +730,8 @@ def mocked_requests(*args, **kwargs):
'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR' 'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR'
} }
return MockResponse(json_data,200) return MockResponse(json_data,200)
if rktester.match(args[0]): if rktester.match(args[0]):
if 'token' in args[0]: if 'token' in args[0]:
json_data = { json_data = {
@@ -768,7 +769,7 @@ def mocked_requests(*args, **kwargs):
return MockResponse(json_data, 200) return MockResponse(json_data, 200)
elif rkstrokestester.match(args[0]): elif rkstrokestester.match(args[0]):
return MockResponse(rkstrokesjson,200) return MockResponse(rkstrokesjson,200)
if sttester.match(args[0]): if sttester.match(args[0]):
if 'oauth2/token' in args[0]: if 'oauth2/token' in args[0]:
json_data = { json_data = {
@@ -792,7 +793,7 @@ def mocked_requests(*args, **kwargs):
if stworkoutlisttester.match(args[0]): if stworkoutlisttester.match(args[0]):
return MockResponse(sporttracksworkoutlist,200) return MockResponse(sporttracksworkoutlist,200)
if stravatester.match(args[0]): if stravatester.match(args[0]):
if stravaworkoutlisttester.match(args[0]): if stravaworkoutlisttester.match(args[0]):
return MockResponse(stravaworkoutlist,200) return MockResponse(stravaworkoutlist,200)
@@ -811,14 +812,14 @@ def mocked_requests(*args, **kwargs):
} }
return MockResponse(json_data,200) return MockResponse(json_data,200)
if c2tester.match(args[0]): if c2tester.match(args[0]):
if c2uploadtester.match(args[0]): if c2uploadtester.match(args[0]):
return MockResponse(c2uploadjson,201) return MockResponse(c2uploadjson,201)
if c2strokestester.match(args[0]): if c2strokestester.match(args[0]):
return MockResponse(c2strokedata,200) return MockResponse(c2strokedata,200)
elif c2importtester.match(args[0]): elif c2importtester.match(args[0]):
return MockResponse(c2workoutdata,200) return MockResponse(c2workoutdata,200)
elif c2workoutlisttester.match(args[0]): elif c2workoutlisttester.match(args[0]):
return MockResponse(c2workoutlist,200) return MockResponse(c2workoutlist,200)
elif 'access_token' in args[0]: elif 'access_token' in args[0]:

View File

@@ -31,6 +31,7 @@ class ForceUnits(TestCase):
rowerplan='coach') rowerplan='coach')
self.user_workouts = WorkoutFactory.create_batch(12, user=self.r)
self.factory = RequestFactory() self.factory = RequestFactory()
self.password = faker.word() self.password = faker.word()
self.u.set_password(self.password) self.u.set_password(self.password)
@@ -60,7 +61,7 @@ class ForceUnits(TestCase):
form = DocumentsForm(form_data,file_data) form = DocumentsForm(form_data,file_data)
response = self.c.post('/rowers/workout/upload/', form_data, follow=True) response = self.c.post('/rowers/workout/upload/', form_data, follow=True)
self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit/', self.assertRedirects(response, expected_url='/rowers/workout/'+encoded13+'/edit/',
status_code=302,target_status_code=200) status_code=302,target_status_code=200)
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
@@ -70,15 +71,15 @@ class ForceUnits(TestCase):
w = Workout.objects.get(id=1) w = Workout.objects.get(id=1)
self.assertEqual(w.forceunit,'lbs') self.assertEqual(w.forceunit,'lbs')
df = dataprep.getsmallrowdata_db(['averageforce'],ids=[1]) df = dataprep.getsmallrowdata_db(['averageforce'],ids=[13])
average_N = int(df['averageforce'].mean()) average_N = int(df['averageforce'].mean())
self.assertEqual(average_N,399) self.assertEqual(average_N,399)
data = dataprep.read_df_sql(1) data = dataprep.read_df_sql(13)
average_N = int(data['averageforce'].mean()) average_N = int(data['averageforce'].mean())
self.assertEqual(average_N,398) self.assertEqual(average_N,398)
df,row = dataprep.getrowdata_db(id=1) df,row = dataprep.getrowdata_db(id=13)
average_N = int(df['averageforce'].mean()) average_N = int(df['averageforce'].mean())
self.assertEqual(average_N,398) self.assertEqual(average_N,398)
@@ -107,17 +108,17 @@ class ForceUnits(TestCase):
form = DocumentsForm(form_data,file_data) form = DocumentsForm(form_data,file_data)
response = self.c.post('/rowers/workout/upload/', form_data, follow=True) response = self.c.post('/rowers/workout/upload/', form_data, follow=True)
self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit/', self.assertRedirects(response, expected_url='/rowers/workout/'+encoded13+'/edit/',
status_code=302,target_status_code=200) status_code=302,target_status_code=200)
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
f.close() f.close()
w = Workout.objects.get(id=1) w = Workout.objects.get(id=13)
self.assertEqual(w.forceunit,'lbs') self.assertEqual(w.forceunit,'lbs')
df = dataprep.getsmallrowdata_db(['averageforce'],ids=[1]) df = dataprep.getsmallrowdata_db(['averageforce'],ids=[13])
average_N = int(df['averageforce'].mean()) average_N = int(df['averageforce'].mean())
self.assertEqual(average_N,267) self.assertEqual(average_N,267)
@@ -142,17 +143,17 @@ class ForceUnits(TestCase):
form = DocumentsForm(form_data,file_data) form = DocumentsForm(form_data,file_data)
response = self.c.post('/rowers/workout/upload/', form_data, follow=True) response = self.c.post('/rowers/workout/upload/', form_data, follow=True)
self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit/', self.assertRedirects(response, expected_url='/rowers/workout/'+encoded13+'/edit/',
status_code=302,target_status_code=200) status_code=302,target_status_code=200)
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
f.close() f.close()
w = Workout.objects.get(id=1) w = Workout.objects.get(id=13)
self.assertEqual(w.forceunit,'lbs') self.assertEqual(w.forceunit,'lbs')
df = dataprep.getsmallrowdata_db(['averageforce'],ids=[1]) df = dataprep.getsmallrowdata_db(['averageforce'],ids=[13])
average_N = int(df['averageforce'].mean()) average_N = int(df['averageforce'].mean())
self.assertEqual(average_N,113) self.assertEqual(average_N,113)
@@ -168,7 +169,7 @@ class TestForceUnit(TestCase):
rowerplan='coach') rowerplan='coach')
self.c = Client() self.c = Client()
self.user_workouts = WorkoutFactory.create_batch(12, user=self.r) self.user_workouts = WorkoutFactory.create_batch(14, user=self.r)
self.factory = RequestFactory() self.factory = RequestFactory()
self.password = faker.word() self.password = faker.word()
self.u.set_password(self.password) self.u.set_password(self.password)