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())
							 |