Private
Public Access
1
0

Merge branch 'develop' into feature/opaqueid

This commit is contained in:
Sander Roosendaal
2019-01-25 08:35:38 +01:00
73 changed files with 59990 additions and 2468 deletions

View File

@@ -34,6 +34,7 @@ from mock import Mock, patch
from minimocktest import MockTestCase
import pandas as pd
import rowers.c2stuff as c2stuff
import arrow
import json
import numpy as np
@@ -110,6 +111,8 @@ class mocked_canvas():
def print_figure(*args, **kwargs):
return True
# Mocked Dataprep
def mocked_fetchcperg(*args, **kwargs):
df = pd.read_csv('rowers/tests/testdata/cpdataerg.csv')
@@ -132,28 +135,83 @@ def mocked_getpowerdata_db(*args, **kwargs):
return df
def mock_for_interactive_chart(*args, **kwargs):
df = pd.read_csv('rowers/tests/testdata/interactivechart.csv')
return df
def mocked_getempowerdata_db(*args, **kwargs):
df = pd.read_csv('rowers/tests/testdata/fake_empowerdata.csv')
return df
def mocked_read_df_cols_sql_multistats(ids,columns,convertnewtons=True):
df = pd.read_csv('rowers/tests/testdata/cumstats.csv')
extracols = []
return df, extracols
def mocked_read_df_cols_sql(ids, columns, convertnewtons=True):
df = pd.read_csv('rowers/tests/testdata/fake_strokedata.csv')
extracols = []
return df, extracols
def mock_workout_summaries(*args, **kwargs):
df = pd.read_csv('rowers/tests/testdata/workout_summaries.csv')
return df
def mocked_read_df_cols_sql_multi(ids, columns, convertnewtons=True):
df = pd.read_csv('rowers/tests/testdata/fake_strokedata2.csv')
extracols = []
return df, extracols
def mocked_read_df_cols_sql_multiflex(ids, columns, convertnewtons=True):
df = pd.read_csv('rowers/tests/testdata/multiflexdata.csv')
extracols = []
return df, extracols
# Mocked Strava
def mocked_stravaexport(f2,workoutname,stravatoken,description='',
activity_type='Rowing'):
print "this is mocked strava export"
return 1,'success'
def mocked_fetchcp(*args, **kwargs):
df = pd.read_csv('rowers/tests/testdata/otwcpresult.csv')
delta = df['delta']
cpvalue = df['cpvalue']
try:
theworkouts = args[1]
except:
theworkouts = []
theids = [int(w.id) for w in theworkouts]
avgpower = {}
thepowers = [203,153,143,152,196,211,223]
for i in range(len(theids)):
avgpower[id[i]] = thepowers[i]
return delta, cpvalue, avgpower
def mocked_getcpdata_sql(*args, **kwargs):
df = pd.read_csv('rowers/tests/testdata/otwcpresult.csv')
df['cp'] = df['cpvalue']
return df
def mocked_cpraw(*args, **kwargs):
df = pd.read_csv('rowers/tests/testdata/otwcp_df.csv')
return df
def StravaActivity():
def wait(*args, **kwargs):
return 1
@@ -165,6 +223,204 @@ class MockStravalibClient():
def update_activity(*args, **kwargs):
return StravaActivity()
# Mocked Braintree
## Higher level - unfortunately didn't succeed in mocking the gateway
def get_client_token(*args, **kwargs):
return "aap"
def mock_create_customer(*args, **kwargs):
return 121
def mock_make_payment(*args, **kwargs):
return 15,''
def mock_update_subscription(*args, **kwargs):
try:
rower = args[0]
data = args[1]
planid = data['plan']
plan = PaidPlan.objects.get(id=planid)
amount = data['amount']
rower.paidplan = plan
rower.planexpires = (datetime.datetime.now()+datetime.timedelta(days=365)).date()
rower.clubsize = plan.clubsize
rower.paymenttype = plan.paymenttype
rower.rowerplan = plan.shortname
rower.subscription_id = 12
rower.save()
except:
amount = 20
return True,amount
def mock_create_subscription(*args, **kwargs):
return mock_update_subscription(*args, **kwargs)
def mock_cancel_subscription(*args, **kwargs):
themessages = []
errormessages = []
try:
basicplans = PaidPlan.objects.filter(price=0,paymentprocessor='braintree')
rower.paidplan = basicplans[0]
rower.teamplanexpires = timezone.now()
rower.planexpires = timezone.now()
rower.clubsize = 0
rower.rowerplan = 'basic'
rower.subscription_id = None
rower.save()
themessages.append("Your plan was reset to basic")
except:
pass
return True, themessages,errormessages
def mock_mocktest(*args, **kwargs):
return '121'
## Gateway stuff (not working)
class gatewayresult():
def __init__(self,*args,**kwargs):
self.is_success = kwargs.pop('is_success',True)
self.customer_id = 1
self.transaction = vtransaction()
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()]
self.country_of_issuance = 'US'
class paypal_account():
def __init__(self, *args, **kwargs):
self.subscriptions = [vsubscription(),vsubscription()]
class customer():
def find(*arg, **kwargs):
return self
def create(*args, **kwargs):
return gatewayresult(is_success=True)
def __init__(self, *args, **kwargs):
self.credit_cards = [credit_card(),credit_card()]
self.paypal_accounts = [paypal_account()]
self.id = 1
class client_token():
def generate(*args, **kwargs):
return 'aapnooit'
class plan():
def all(*args, **kwargs):
return []
class transaction():
def sale(*args, **kwargs):
return gatewayresult(is_success=True)
def search(*args, **kwargs):
return [gatewayresult(is_success=True),gatewayresult(is_success=True)]
def __init__(self,*args, **kwargs):
self.amount = 15
self.credit_card_details = credit_card()
self.customer = {
'first_name': 'John',
'last_name': 'Doe',
'id': 12
}
self.created_at = datetime.datetime.now()
self.currency_iso_code = 'EUR'
class vtransaction():
def __init__(self,*args, **kwargs):
self.amount = 15
self.credit_card_details = credit_card()
self.customer = {
'first_name': 'John',
'last_name': 'Doe',
'id': 12
}
self.created_at = datetime.datetime.now()
self.currency_iso_code = 'EUR'
class vsubscription():
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()
self.status = 'Active'
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()
self.transactions = [vtransaction()]
self.status = 'Active'
self.plan_id = 12
self.price = 15
self.never_expires = True
class vpayment_method():
def create(*args, **kwargs):
return gatewayresult()
def __init__(self, *args, **kwargs):
self.token = 'liesjeleerdelotje'
class payment_method():
def create(*args, **kwargs):
return gatewayresult()
def __init__(self, *args, **kwargs):
self.token = 'liesjeleerdelotje'
# mock braintree gateway
class MockBraintreeGateway:
def __init__(self,*args, **kwargs):
self.customer = customer()
self.client_token = client_token()
self.plan = plan()
self.transaction = transaction()
self.subscription = subscription()
self.payment_method = payment_method()
def mocked_gateway(*args, **kwargs):
return MockBraintreeGateway()
# Mocked Rowingdata
class mocked_rowingdata(rowingdata):
def __init__(self, *args, **kwargs):
@@ -210,7 +466,9 @@ class mocked_rowingdata(rowingdata):
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:
@@ -496,7 +754,7 @@ def mocked_requests(*args, **kwargs):
"token_type": "Bearer",
"access_token": "987654321234567898765432123456789",
"refresh_token": "1234567898765432112345678987654321",
"expires_at": 1531385304
"expires_at": arrow.now().timestamp+3600
}
return MockResponse(json_data,200)