From 0468ebe54b004e58e5ae4f1afc1d022235a3a074 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sun, 3 Nov 2019 10:02:11 +0100 Subject: [PATCH] getting pytest to work --- rowers/tests/mocks.py | 83 +++++++++++++++++++------------------- rowers/tests/test_units.py | 23 ++++++----- 2 files changed, 54 insertions(+), 52 deletions(-) diff --git a/rowers/tests/mocks.py b/rowers/tests/mocks.py index 06622610..f640ddbb 100644 --- a/rowers/tests/mocks.py +++ b/rowers/tests/mocks.py @@ -9,6 +9,7 @@ pytestmark = pytest.mark.django_db from rowers.opaque import encoder encoded1 = str(encoder.encode_hex(1)) encoded2 = str(encoder.encode_hex(2)) +encoded13 = str(encoder.encode_hex(13)) from bs4 import BeautifulSoup import re @@ -102,7 +103,7 @@ def mocked_sqlalchemy(*args, **kwargs): return MockEngine() -#@pytest.mark.django_db +#@pytest.mark.django_db class DjangoTestCase(TestCase): #, MockTestCase): def _pre_setup(self): # MockTestCase.setUp(self) @@ -116,9 +117,9 @@ class DjangoTestCase(TestCase): #, MockTestCase): def mocked_tcx_parser(*args, **kwargs): df = pd.read_csv('rowers/tests/testdata/fake_strokedata.csv') - + return rowingdata(df=df) - + def mocked_polar_notifications(*args, **kwargs): return [] @@ -128,12 +129,12 @@ class mocked_canvas(): return True # Mocked Dataprep - + def mocked_fetchcperg(*args, **kwargs): df = pd.read_csv('rowers/tests/testdata/cpdataerg.csv') return df - + import pandas as pd def mocked_read_df_sql(id): 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') id = kwargs['id'] - + row = Workout.objects.get(id=id) - + return df,row def mocked_getrowdata_uh(*args, **kwargs): @@ -302,7 +303,7 @@ def mock_update_subscription(*args, **kwargs): rower.save() except: amount = 20 - + return True,amount def mock_create_subscription(*args, **kwargs): @@ -339,10 +340,10 @@ class gatewayresult(): self.payment_method = vpayment_method() self.subscription = vsubscription() self.customer = customer() - + def __unicode__(): return "mockedgatewayresult" - + class credit_card(): def __init__(self, *args, **kwargs): self.subscriptions = [vsubscription()] @@ -351,7 +352,7 @@ class credit_card(): class paypal_account(): def __init__(self, *args, **kwargs): self.subscriptions = [vsubscription(),vsubscription()] - + class customer(): def find(*arg, **kwargs): return self @@ -403,7 +404,7 @@ class vtransaction(): } self.created_at = datetime.datetime.now() self.currency_iso_code = 'EUR' - + class vsubscription(): def update(*args, **kwargs): return gatewayresult(is_success=True) @@ -418,17 +419,17 @@ class vsubscription(): self.plan_id = 12 self.price = 15 self.never_expires = True - + class subscription(): def create(*args, **kwargs): return gatewayresult(is_success=True) - + def update(*args, **kwargs): return gatewayresult(is_success=True) - + def cancel(*args, **kwargs): return gatewayresult(is_success=True) - + def __init__(self, *args, **kwargs): self.id = '121' 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): self.token = 'liesjeleerdelotje' - + class payment_method(): def create(*args, **kwargs): return gatewayresult() @@ -463,11 +464,11 @@ class MockBraintreeGateway: self.subscription = subscription() self.payment_method = payment_method() - + def mocked_gateway(*args, **kwargs): return MockBraintreeGateway() - + # Mocked Rowingdata @@ -482,7 +483,7 @@ class mocked_rowingdata(rowingdata): def get_timeplot_erg(self, title): fig1 = figure.Figure(figsize(12,10)) return fig1 - + def get_piechart(self, title): fig1 = figure.Figure(figsize(12,10)) return fig1 @@ -514,10 +515,10 @@ class mocked_rowingdata(rowingdata): def get_power_piechart(self, title): fig1 = figure.Figure(figsize(12,10)) return fig1 - + # Mocked Requests - + # to be done add polar mocks (for email processing) def mocked_requests(*args, **kwargs): with open('rowers/tests/testdata/c2jsonworkoutdata.txt','r') as infile: @@ -529,9 +530,9 @@ def mocked_requests(*args, **kwargs): polar_json = { 'available-user-data': [] } - + c2workoutlist = json.load(open('rowers/tests/testdata/c2workoutlist.txt')) - + c2uploadjson = { "data": { "id": 339, @@ -550,20 +551,20 @@ def mocked_requests(*args, **kwargs): "ranked": False } } - + stravaworkoutlist = json.load(open('rowers/tests/testdata/stravaworkoutlist.txt')) sporttracksworkoutlist = json.load(open('rowers/tests/testdata/sporttracksworkouts.txt')) rkworkoutlistjson = json.load(open('rowers/tests/testdata/rkworkoutslist.txt','r')) uaworkoutlistjson = json.load(open('rowers/tests/testdata/uaworkoutlist.txt','r')) - + stravasummaryjson = json.load(open('rowers/tests/testdata/stravaworkoutsummary.txt','r')) stravatimejson = json.load(open('rowers/tests/testdata/stravatimetestdata.txt','r')) stravavelojson = json.load(open('rowers/tests/testdata/stravavelotestdata.txt','r')) stravapowerjson = json.load(open('rowers/tests/testdata/stravapowertestdata.txt','r')) - + stravadistancejson = json.load(open('rowers/tests/testdata/stravadistancetestdata.txt','r')) stravalatlongjson = json.load(open('rowers/tests/testdata/stravalatlongtestdata.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')) tpuploadresponse = json.load(open('rowers/tests/testdata/tpuploadresponse.txt','r')) - + stravastreamjson = { 'time':stravatimejson, 'velocity_smooth':stravavelojson, @@ -604,14 +605,14 @@ def mocked_requests(*args, **kwargs): def __init__(self, header_data, status_code): self.headers = header_data self.status_code = status_code - + class MockSession: def send(self,prepped): # prepped.url # prepped.body (post data) # prepped.headers # prepped.method - + json_data = { 'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq', 'expires_in': 604800, @@ -620,7 +621,7 @@ def mocked_requests(*args, **kwargs): return MockResponse(json_data,200) - + if not args: return MockSession() @@ -631,7 +632,7 @@ def mocked_requests(*args, **kwargs): rktester = re.compile('.*?runkeeper\.com') uatester = re.compile('.*?mapmyfitness\.com') tptester = re.compile('.*?trainingpeaks\.com') - + c2importregex = '.*?concept2.com\/api\/users\/me\/results\/\d+' c2importtester = re.compile(c2importregex) @@ -701,7 +702,7 @@ def mocked_requests(*args, **kwargs): return MockResponse(json_data,200) elif tpuploadtester.match(args[0]): return MockResponse(tpuploadresponse,200) - + if uaapitester.match(args[0]): if 'access_token' in args[0]: json_data = { @@ -719,8 +720,8 @@ def mocked_requests(*args, **kwargs): return MockResponse(uaworkoutlistjson,200) elif uausertester.match(args[0]): return MockResponse(uauserjson,200) - - + + if uatester.match(args[0]): if 'access_token' in args[0]: json_data = { @@ -729,8 +730,8 @@ def mocked_requests(*args, **kwargs): 'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR' } return MockResponse(json_data,200) - - + + if rktester.match(args[0]): if 'token' in args[0]: json_data = { @@ -768,7 +769,7 @@ def mocked_requests(*args, **kwargs): return MockResponse(json_data, 200) elif rkstrokestester.match(args[0]): return MockResponse(rkstrokesjson,200) - + if sttester.match(args[0]): if 'oauth2/token' in args[0]: json_data = { @@ -792,7 +793,7 @@ def mocked_requests(*args, **kwargs): if stworkoutlisttester.match(args[0]): return MockResponse(sporttracksworkoutlist,200) - + if stravatester.match(args[0]): if stravaworkoutlisttester.match(args[0]): return MockResponse(stravaworkoutlist,200) @@ -811,14 +812,14 @@ def mocked_requests(*args, **kwargs): } return MockResponse(json_data,200) - + if c2tester.match(args[0]): if c2uploadtester.match(args[0]): return MockResponse(c2uploadjson,201) if c2strokestester.match(args[0]): return MockResponse(c2strokedata,200) elif c2importtester.match(args[0]): - return MockResponse(c2workoutdata,200) + return MockResponse(c2workoutdata,200) elif c2workoutlisttester.match(args[0]): return MockResponse(c2workoutlist,200) elif 'access_token' in args[0]: diff --git a/rowers/tests/test_units.py b/rowers/tests/test_units.py index 68246c78..82dd4753 100644 --- a/rowers/tests/test_units.py +++ b/rowers/tests/test_units.py @@ -31,6 +31,7 @@ class ForceUnits(TestCase): rowerplan='coach') + self.user_workouts = WorkoutFactory.create_batch(12, user=self.r) self.factory = RequestFactory() self.password = faker.word() self.u.set_password(self.password) @@ -60,7 +61,7 @@ class ForceUnits(TestCase): form = DocumentsForm(form_data,file_data) 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) self.assertEqual(response.status_code, 200) @@ -70,15 +71,15 @@ class ForceUnits(TestCase): w = Workout.objects.get(id=1) 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()) self.assertEqual(average_N,399) - data = dataprep.read_df_sql(1) + data = dataprep.read_df_sql(13) average_N = int(data['averageforce'].mean()) 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()) self.assertEqual(average_N,398) @@ -107,17 +108,17 @@ class ForceUnits(TestCase): form = DocumentsForm(form_data,file_data) 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) self.assertEqual(response.status_code, 200) f.close() - w = Workout.objects.get(id=1) + w = Workout.objects.get(id=13) 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()) self.assertEqual(average_N,267) @@ -142,17 +143,17 @@ class ForceUnits(TestCase): form = DocumentsForm(form_data,file_data) 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) self.assertEqual(response.status_code, 200) f.close() - w = Workout.objects.get(id=1) + w = Workout.objects.get(id=13) 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()) self.assertEqual(average_N,113) @@ -168,7 +169,7 @@ class TestForceUnit(TestCase): rowerplan='coach') 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.password = faker.word() self.u.set_password(self.password)