Private
Public Access
1
0

got a little further - still failing

This commit is contained in:
Sander Roosendaal
2019-01-15 19:09:12 +01:00
parent 60c7219134
commit 80c04ee9bb
4 changed files with 137 additions and 122 deletions

View File

@@ -43,6 +43,7 @@ else:
)
)
from rowers.models import Rower,PaidPlan
from rowers.utils import ProcessorCustomerError
@@ -208,6 +209,9 @@ def update_subscription(rower,data,method='up'):
def create_subscription(rower,data):
planid = data['plan']
plan = PaidPlan.objects.get(id=planid)
print plan
print data
raise ValueError
nonce_from_the_client = data['payment_method_nonce']
amount = data['amount']
@@ -217,22 +221,18 @@ def create_subscription(rower,data):
"payment_method_nonce": nonce_from_the_client
})
print 'aap'
if result.is_success:
payment_method_token = result.payment_method.token
else:
return False,0
print 'noot'
result = gateway.subscription.create({
"payment_method_token": payment_method_token,
"plan_id": plan.external_id
})
if result.is_success:
print 'mies'
rower.paidplan = plan
rower.planexpires = result.subscription.billing_period_end_date
rower.teamplanexpires = result.subscription.billing_period_end_date

View File

@@ -172,7 +172,8 @@ class MockStravalibClient():
def update_activity(*args, **kwargs):
return StravaActivity()
class gatewayresult():
def mocked_gateway(*args, **kwargs):
class gatewayresult():
def __init__(self,*args,**kwargs):
self.is_success = kwargs.pop('is_success',True)
self.customer_id = 1
@@ -180,16 +181,19 @@ class gatewayresult():
self.payment_method = payment_method()
self.subscription = vsubscription()
class credit_card():
def __unicode__():
return "mockedgatewayresult"
class credit_card():
def __init__(self, *args, **kwargs):
self.subscriptions = [vsubscription()]
self.country_of_issuance = 'US'
class paypal_account():
class paypal_account():
def __init__(self, *args, **kwargs):
self.subscriptions = [vsubscription(),vsubscription()]
class customer():
class customer():
def find(*arg, **kwargs):
return self
@@ -200,17 +204,17 @@ class customer():
self.credit_cards = [credit_card(),credit_card()]
self.paypal_accounts = [paypal_account()]
class client_token():
class client_token():
def generate(*args, **kwargs):
return 'aapnooit'
class plan():
class plan():
def all(*args, **kwargs):
return []
class transaction():
class transaction():
def sale(*args, **kwargs):
return gatewayresult(is_success=True)
@@ -228,7 +232,7 @@ class transaction():
self.created_at = datetime.datetime.now()
self.currency_iso_code = 'EUR'
class vtransaction():
class vtransaction():
def __init__(self,*args, **kwargs):
self.amount = 15
self.credit_card_details = credit_card()
@@ -240,12 +244,13 @@ class vtransaction():
self.created_at = datetime.datetime.now()
self.currency_iso_code = 'EUR'
class vsubscription():
class vsubscription():
def update(*args, **kwargs):
print 'aap vsubscription'
return gatewayresult(is_success=True)
def cancel(*args, **kwargs):
return gatewayresult()
return gatewayresult(is_success=True)
def __init__(self, *args, **kwargs):
self.id = 121
@@ -255,15 +260,16 @@ class vsubscription():
self.price = 15
self.never_expires = True
class subscription():
class subscription():
def create(*args, **kwargs):
print 'aap subscription'
return gatewayresult(is_success=True)
def update(*args, **kwargs):
return gatewayresult(is_success=True)
def cancel(*args, **kwargs):
return gatewayresult()
return gatewayresult(is_success=True)
def __init__(self, *args, **kwargs):
self.id = 121
@@ -275,15 +281,15 @@ class subscription():
self.never_expires = True
class payment_method():
class payment_method():
def create(*args, **kwargs):
return gatewayresult()
def __init__(self, *args, **kwargs):
self.token = 'liesjeleerdelotje'
# mock braintree gateway
class MockBraintreeGateway():
# mock braintree gateway
class MockBraintreeGateway():
def __init__(self,*args, **kwargs):
self.customer = customer()
self.client_token = client_token()

View File

@@ -19,46 +19,54 @@ class PaymentTest(TestCase):
country = faker.country(),
)
p = PaidPlan(
# settings.DEBUG = True
p1 = PaidPlan(
shortname='free',
name='Basic',
external_id='a',
price=0,
clubsize=0,
paymentprocessor='braintree',
paymenttype='single',
)
p.save()
p1.save()
p = PaidPlan(
p2 = PaidPlan(
shortname='pro_recurring',
name='Pro (recurring)',
external_id='b',
price=15,
clubsize=0,
paymentprocessor='braintree',
paymenttype='single',
)
p.save()
p2.save()
p = PaidPlan(
p3 = PaidPlan(
shortname='pro_single',
name='Pro (single)',
external_id='c',
price=20,
clubsize=0,
paymentprocessor='braintree',
paymenttype='single',
)
p.save()
p3.save()
self.c = Client()
self.password = faker.word()
self.u.set_password(self.password)
self.u.save()
@patch('rowers.braintreestuff.braintree.BraintreeGateway',side_effect=MockBraintreeGateway)
def test_billing_view(self,mock_gateway):
# def tearDown(self):
# settings.DEBUG = False
@patch('rowers.braintreestuff.gateway',side_effect=mocked_gateway)
def test_billing_view(self,MockBraintreeGateway):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
@@ -99,8 +107,8 @@ class PaymentTest(TestCase):
expected_url = expected_url,
status_code=302,target_status_code=200)
@patch('rowers.braintreestuff.braintree.BraintreeGateway',side_effect=MockBraintreeGateway)
def test_upgrade_view(self,mock_gateway):
@patch('rowers.braintreestuff.gateway',side_effect=mocked_gateway)
def test_upgrade_view(self,MockBraintreeGateway):
self.r.country = 'NL'
self.r.customer_id = 34
self.r.subscription_id = 34
@@ -146,8 +154,8 @@ class PaymentTest(TestCase):
expected_url = expected_url,
status_code=302,target_status_code=200)
@patch('rowers.braintreestuff.braintree.BraintreeGateway',side_effect=MockBraintreeGateway)
def test_down_view(self,mock_gateway):
@patch('rowers.braintreestuff.gateway',side_effect=mocked_gateway)
def test_down_view(self,MockBraintreeGateway):
self.r.country = 'NL'
self.r.customer_id = 34
self.r.subscription_id = 34
@@ -196,8 +204,8 @@ class PaymentTest(TestCase):
expected_url = expected_url,
status_code=302,target_status_code=200)
@patch('rowers.braintreestuff.braintree.BraintreeGateway',side_effect=MockBraintreeGateway)
def test_planstop_view(self,mock_gateway):
@patch('rowers.braintreestuff.gateway',side_effect=mocked_gateway)
def test_planstop_view(self,MockBraintreeGateway):
self.r.country = 'NL'
self.r.customer_id = 34
self.r.subscription_id = 34
@@ -218,8 +226,8 @@ class PaymentTest(TestCase):
self.assertEqual(response.status_code,200)
@patch('rowers.braintreestuff.braintree.BraintreeGateway',side_effect=MockBraintreeGateway)
def test_planstobasic_view(self,mock_gateway):
@patch('rowers.braintreestuff.gateway',side_effect=mocked_gateway)
def test_planstobasic_view(self,MockBraintreeGateway):
self.r.country = 'NL'
self.r.customer_id = 34
self.r.subscription_id = 34
@@ -242,8 +250,8 @@ class PaymentTest(TestCase):
expected_url = '/rowers/me/cancelsubscriptions/',
status_code=302,target_status_code=200)
@patch('rowers.braintreestuff.braintree.BraintreeGateway',side_effect=MockBraintreeGateway)
def test_checkouts_view(self,mock_gateway):
@patch('rowers.braintreestuff.gateway',side_effect=mocked_gateway)
def test_checkouts_view(self,MockBraintreeGateway):
plans = PaidPlan.objects.all().order_by('price')
plan = plans[1]

View File

@@ -1040,7 +1040,7 @@ def ispromember(user):
if not user.is_anonymous():
try:
r = Rower.objects.get(user=user)
except Rower.DoesNotExists:
except Rower.DoesNotExist:
r = Rower(user=user)
r.save()
@@ -1381,6 +1381,7 @@ def checkouts_view(request):
form = BillingForm(request.POST)
if form.is_valid():
data = form.cleaned_data
print r
success,amount = braintreestuff.create_subscription(r,data)
if success:
messages.info(request,"Your payment has succeeded and your plan has been updated")