Refactored tests and added test_subscribe_customer_to_plan
This commit is contained in:
		
					parent
					
						
							
								ffd0d24f1a
							
						
					
				
			
			
				commit
				
					
						0bc1766e4a
					
				
			
		
					 1 changed files with 21 additions and 13 deletions
				
			
		| 
						 | 
					@ -2,13 +2,13 @@ import uuid
 | 
				
			||||||
from unittest.mock import patch
 | 
					from unittest.mock import patch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import stripe
 | 
					import stripe
 | 
				
			||||||
from django.conf import settings
 | 
					 | 
				
			||||||
from django.http.request import HttpRequest
 | 
					from django.http.request import HttpRequest
 | 
				
			||||||
from django.test import Client
 | 
					from django.test import Client
 | 
				
			||||||
from django.test import TestCase
 | 
					from django.test import TestCase
 | 
				
			||||||
from model_mommy import mommy
 | 
					from model_mommy import mommy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from datacenterlight.models import StripePlan
 | 
					from datacenterlight.models import StripePlan
 | 
				
			||||||
 | 
					from membership.models import StripeCustomer
 | 
				
			||||||
from utils.stripe_utils import StripeUtils
 | 
					from utils.stripe_utils import StripeUtils
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -98,18 +98,15 @@ class TestStripeCustomerDescription(TestCase):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def setUp(self):
 | 
					    def setUp(self):
 | 
				
			||||||
        self.dummy_password = 'test_password'
 | 
					        self.customer_password = 'test_password'
 | 
				
			||||||
        self.dummy_email = 'test@ungleich.ch'
 | 
					        self.customer_email = 'test@ungleich.ch'
 | 
				
			||||||
 | 
					        self.customer_name = "Monty Python"
 | 
				
			||||||
        self.customer = mommy.make('membership.CustomUser')
 | 
					        self.customer = mommy.make('membership.CustomUser')
 | 
				
			||||||
        self.customer.set_password(self.dummy_password)
 | 
					        self.customer.set_password(self.customer_password)
 | 
				
			||||||
        self.customer.email = self.dummy_email
 | 
					        self.customer.email = self.customer_email
 | 
				
			||||||
        self.customer.save()
 | 
					        self.customer.save()
 | 
				
			||||||
        self.stripe_utils = StripeUtils()
 | 
					        self.stripe_utils = StripeUtils()
 | 
				
			||||||
        # self.stripe.api_key = settings.STRIPE_API_PRIVATE_KEY
 | 
					        self.token = stripe.Token.create(
 | 
				
			||||||
 | 
					 | 
				
			||||||
    def test_creating_stripe_customer(self):
 | 
					 | 
				
			||||||
        test_name = "Monty Python"
 | 
					 | 
				
			||||||
        token = stripe.Token.create(
 | 
					 | 
				
			||||||
            card={
 | 
					            card={
 | 
				
			||||||
                "number": '4111111111111111',
 | 
					                "number": '4111111111111111',
 | 
				
			||||||
                "exp_month": 12,
 | 
					                "exp_month": 12,
 | 
				
			||||||
| 
						 | 
					@ -118,10 +115,11 @@ class TestStripeCustomerDescription(TestCase):
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        stripe_data = self.stripe_utils.create_customer(token.id, self.customer.email, test_name)
 | 
					    def test_creating_stripe_customer(self):
 | 
				
			||||||
 | 
					        stripe_data = self.stripe_utils.create_customer(self.token.id, self.customer.email, self.customer_name)
 | 
				
			||||||
        self.assertEqual(stripe_data.get('error'), None)
 | 
					        self.assertEqual(stripe_data.get('error'), None)
 | 
				
			||||||
        customer_data = stripe_data.get('response_object')
 | 
					        customer_data = stripe_data.get('response_object')
 | 
				
			||||||
        self.assertEqual(customer_data.description, test_name)
 | 
					        self.assertEqual(customer_data.description, self.customer_name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class StripePlanTestCase(TestStripeCustomerDescription):
 | 
					class StripePlanTestCase(TestStripeCustomerDescription):
 | 
				
			||||||
| 
						 | 
					@ -144,7 +142,7 @@ class StripePlanTestCase(TestStripeCustomerDescription):
 | 
				
			||||||
        Test details:
 | 
					        Test details:
 | 
				
			||||||
            1. Create a test plan in Stripe with a particular id
 | 
					            1. Create a test plan in Stripe with a particular id
 | 
				
			||||||
            2. Try to recreate the plan with the same id
 | 
					            2. Try to recreate the plan with the same id
 | 
				
			||||||
            3. The code should be able to handle this
 | 
					            3. This creates a Stripe error, the code should be able to handle the error
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        :param mock_logger:
 | 
					        :param mock_logger:
 | 
				
			||||||
        :return:
 | 
					        :return:
 | 
				
			||||||
| 
						 | 
					@ -177,3 +175,13 @@ class StripePlanTestCase(TestStripeCustomerDescription):
 | 
				
			||||||
        self.assertIsInstance(result, dict)
 | 
					        self.assertIsInstance(result, dict)
 | 
				
			||||||
        self.assertEqual(result.get('response_object'), False)
 | 
					        self.assertEqual(result.get('response_object'), False)
 | 
				
			||||||
        mock_logger.debug.assert_called_with(self.stripe_utils.PLAN_DOES_NOT_EXIST_ERROR_MSG.format(plan_id))
 | 
					        mock_logger.debug.assert_called_with(self.stripe_utils.PLAN_DOES_NOT_EXIST_ERROR_MSG.format(plan_id))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_subscribe_customer_to_plan(self):
 | 
				
			||||||
 | 
					        stripe_plan = self.stripe_utils.get_or_create_stripe_plan(2000, "test plan 1", stripe_plan_id='test-plan-1')
 | 
				
			||||||
 | 
					        stripe_customer = StripeCustomer.get_or_create(email=self.customer_email,
 | 
				
			||||||
 | 
					                                                       token=self.token)
 | 
				
			||||||
 | 
					        result = self.stripe_utils.subscribe_customer_to_plan(stripe_customer.stripe_id,
 | 
				
			||||||
 | 
					                                                              [{"plan": stripe_plan.get(
 | 
				
			||||||
 | 
					                                                                  'response_object').stripe_plan_id}])
 | 
				
			||||||
 | 
					        self.assertIsInstance(result.get('response_object'), stripe.Subscription)
 | 
				
			||||||
 | 
					        self.assertIsNone(result.get('error'))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue