84 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from django.test import TestCase
 | 
						|
from django.test import Client
 | 
						|
from django.http.request import HttpRequest
 | 
						|
 | 
						|
from model_mommy import mommy
 | 
						|
 | 
						|
 | 
						|
class BaseTestCase(TestCase):
 | 
						|
    """
 | 
						|
    Base class to initialize the test cases
 | 
						|
    """
 | 
						|
 | 
						|
    def setUp(self):
 | 
						|
 | 
						|
        # Password
 | 
						|
        self.dummy_password = 'test_password'
 | 
						|
 | 
						|
        # Users
 | 
						|
        self.customer, self.another_customer = mommy.make('membership.CustomUser',
 | 
						|
                                                          _quantity=2)
 | 
						|
        self.customer.set_password(self.dummy_password)
 | 
						|
        self.customer.save()
 | 
						|
        self.another_customer.set_password(self.dummy_password)
 | 
						|
        self.another_customer.save()
 | 
						|
 | 
						|
        # Stripe mocked data
 | 
						|
        self.stripe_mocked_customer = self.customer_stripe_mocked_data()
 | 
						|
 | 
						|
        #  Clients
 | 
						|
        self.customer_client = self.get_client(self.customer)
 | 
						|
        self.another_customer_client = self.get_client(self.another_customer)
 | 
						|
 | 
						|
        # Request Object
 | 
						|
        self.request = HttpRequest()
 | 
						|
        self.request.META['SERVER_NAME'] = 'ungleich.com'
 | 
						|
        self.request.META['SERVER_PORT'] = '80'
 | 
						|
 | 
						|
    def get_client(self, user):
 | 
						|
        """
 | 
						|
        Authenticate a user and return the client
 | 
						|
        """
 | 
						|
        client = Client()
 | 
						|
        client.login(email=user.email, password=self.dummy_password)
 | 
						|
        return client
 | 
						|
 | 
						|
    def customer_stripe_mocked_data(self):
 | 
						|
        return {
 | 
						|
            "id": "cus_8R1y9UWaIIjZqr",
 | 
						|
            "object": "customer",
 | 
						|
            "currency": "usd",
 | 
						|
            "default_source": "card_18A9up2eZvKYlo2Cq2RJMGeF",
 | 
						|
            "email": "vmedixtodd+1@gmail.com",
 | 
						|
            "livemode": False,
 | 
						|
            "metadata": {
 | 
						|
            },
 | 
						|
            "shipping": None,
 | 
						|
            "sources": {
 | 
						|
                "object": "list",
 | 
						|
                "data": [{
 | 
						|
                    "id": "card_18A9up2eZvKYlo2Cq2RJMGeF",
 | 
						|
                    "object": "card",
 | 
						|
                    "brand": "Visa",
 | 
						|
                    "country": "US",
 | 
						|
                    "customer": "cus_8R1y9UWaIIjZqr",
 | 
						|
                    "cvc_check": "pass",
 | 
						|
                    "dynamic_last4": None,
 | 
						|
                    "exp_month": 12,
 | 
						|
                    "exp_year": 2018,
 | 
						|
                    "funding": "credit",
 | 
						|
                    "last4": "4242",
 | 
						|
                }]
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
    def setup_view(self, view, *args, **kwargs):
 | 
						|
        """Mimic as_view() returned callable, but returns view instance.
 | 
						|
 | 
						|
        args and kwargs are the same you would pass to ``reverse()``
 | 
						|
 | 
						|
        """
 | 
						|
        view.request = self.request
 | 
						|
        view.args = args
 | 
						|
        view.kwargs = kwargs
 | 
						|
        return view
 |