116 lines
		
	
	
	
		
			3.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
	
		
			3.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from django.test import TestCase
 | 
						|
 | 
						|
from unittest import mock
 | 
						|
from model_mommy import mommy
 | 
						|
 | 
						|
from .forms import HostingOrderAdminForm, HostingUserLoginForm, HostingUserSignupForm
 | 
						|
from .models import VirtualMachinePlan
 | 
						|
 | 
						|
 | 
						|
class HostingUserLoginFormTest(TestCase):
 | 
						|
 | 
						|
    def setUp(self):
 | 
						|
        password = 'user_password'
 | 
						|
        self.user = mommy.make('CustomUser')
 | 
						|
 | 
						|
        self.user.set_password(password)
 | 
						|
        self.user.save()
 | 
						|
        self.completed_data = {
 | 
						|
            'email': self.user.email,
 | 
						|
            'password': password
 | 
						|
        }
 | 
						|
 | 
						|
        self.incorrect_data = {
 | 
						|
            'email': 'test',
 | 
						|
        }
 | 
						|
 | 
						|
    def test_valid_form(self):
 | 
						|
        form = HostingUserLoginForm(data=self.completed_data)
 | 
						|
        self.assertTrue(form.is_valid())
 | 
						|
 | 
						|
    def test_invalid_form(self):
 | 
						|
        form = HostingUserLoginForm(data=self.incorrect_data)
 | 
						|
        self.assertFalse(form.is_valid())
 | 
						|
 | 
						|
 | 
						|
class HostingUserSignupFormTest(TestCase):
 | 
						|
 | 
						|
    def setUp(self):
 | 
						|
 | 
						|
        self.completed_data = {
 | 
						|
            'name': 'test name',
 | 
						|
            'email': 'test@ungleich.com',
 | 
						|
            'password': 'test_password',
 | 
						|
            'confirm_password': 'test_password'
 | 
						|
        }
 | 
						|
 | 
						|
        self.incorrect_data = {
 | 
						|
            'email': 'test',
 | 
						|
        }
 | 
						|
 | 
						|
    def test_valid_form(self):
 | 
						|
        form = HostingUserSignupForm(data=self.completed_data)
 | 
						|
        self.assertTrue(form.is_valid())
 | 
						|
 | 
						|
    def test_invalid_form(self):
 | 
						|
        form = HostingUserSignupForm(data=self.incorrect_data)
 | 
						|
        self.assertFalse(form.is_valid())
 | 
						|
 | 
						|
 | 
						|
class HostingOrderAdminFormTest(TestCase):
 | 
						|
 | 
						|
    def setUp(self):
 | 
						|
 | 
						|
        self.customer = mommy.make('StripeCustomer')
 | 
						|
        self.vm_plan = mommy.make('VirtualMachinePlan')
 | 
						|
        self.vm_canceled_plan = mommy.make('VirtualMachinePlan',
 | 
						|
                                           status=VirtualMachinePlan.CANCELED_STATUS)
 | 
						|
 | 
						|
        self.mocked_charge = {
 | 
						|
            'amount': 5100,
 | 
						|
            'amount_refunded': 0,
 | 
						|
            'balance_transaction': 'txn_18U99zGjsLAXdRPzUJKkBx3Q',
 | 
						|
            'captured': True,
 | 
						|
            'created': 1467785123,
 | 
						|
            'currency': 'chf',
 | 
						|
            'customer': 'cus_8V61MvJvMd0PhM',
 | 
						|
            'status': 'succeeded'
 | 
						|
        }
 | 
						|
 | 
						|
        self.completed_data = {
 | 
						|
            'customer': self.customer.id,
 | 
						|
            'vm_plan': self.vm_plan.id,
 | 
						|
        }
 | 
						|
 | 
						|
        self.incompleted_data = {
 | 
						|
            'vm_plan': self.vm_plan.id,
 | 
						|
            'customer': None
 | 
						|
        }
 | 
						|
 | 
						|
    @mock.patch('utils.stripe_utils.StripeUtils.make_charge')
 | 
						|
    def test_valid_form(self, stripe_mocked_call):
 | 
						|
        stripe_mocked_call.return_value = {
 | 
						|
            'paid': True,
 | 
						|
            'response_object': self.mocked_charge,
 | 
						|
            'error': None
 | 
						|
        }
 | 
						|
        form = HostingOrderAdminForm(data=self.completed_data)
 | 
						|
        self.assertTrue(form.is_valid())
 | 
						|
 | 
						|
    @mock.patch('utils.stripe_utils.StripeUtils.make_charge')
 | 
						|
    def test_invalid_form_canceled_vm(self, stripe_mocked_call):
 | 
						|
 | 
						|
        self.completed_data.update({
 | 
						|
            'vm_plan': self.vm_canceled_plan.id
 | 
						|
        })
 | 
						|
        stripe_mocked_call.return_value = {
 | 
						|
            'paid': True,
 | 
						|
            'response_object': self.mocked_charge,
 | 
						|
            'error': None
 | 
						|
        }
 | 
						|
        form = HostingOrderAdminForm(data=self.completed_data)
 | 
						|
        self.assertFalse(form.is_valid())
 | 
						|
 | 
						|
    def test_invalid_form(self):
 | 
						|
        form = HostingOrderAdminForm(data=self.incompleted_data)
 | 
						|
        self.assertFalse(form.is_valid())
 |