def __init__(self, checkout, request, address): super(BaseShippingStep, self).__init__(checkout, request) if address: address_dict = model_to_dict(address, exclude=['id', 'user']) self.address = Address(**address_dict) else: self.address = Address() address_list = UserAddressesForm(request.POST or None, user=request.user) if (address_list.is_valid() and not address_list.cleaned_data['address']): address_form = AddressForm(request.POST, instance=self.address) else: address_form = AddressForm(instance=self.address) self.forms = {'address_list': address_list, 'address': address_form}
def __init__(self, checkout, request, address): super(BaseAddressStep, self).__init__(checkout, request) if address: address_dict = model_to_dict(address, exclude=['id', 'user']) self.address = Address(**address_dict) else: self.address = Address() address_list = UserAddressesForm(request.POST or None, user=request.user, purpose=self.address_purpose) if (address_list.is_valid() and not address_list.cleaned_data['address']): address_form = AddressForm(request.POST, instance=self.address) else: address_form = AddressForm(instance=self.address) self.forms = {'address_list': address_list, 'address': address_form}
class BaseAddressStep(BaseCheckoutStep): method = None address = None template = 'checkout/address.html' address_purpose = None def __init__(self, checkout, request, address): super(BaseAddressStep, self).__init__(checkout, request) if address: address_dict = model_to_dict(address, exclude=['id', 'user']) self.address = Address(**address_dict) else: self.address = Address() address_list = UserAddressesForm(request.POST or None, user=request.user, purpose=self.address_purpose) if (address_list.is_valid() and not address_list.cleaned_data['address']): address_form = AddressForm(request.POST, instance=self.address) else: address_form = AddressForm(instance=self.address) self.forms = {'address_list': address_list, 'address': address_form} def forms_are_valid(self): self.cleaned_data = {} address_list = self.forms['address_list'] address_form = self.forms['address'] if address_list.is_valid(): if address_list.cleaned_data['address']: address_book = address_list.cleaned_data['address'] address_book.address.id = None self.address = address_book.address return True if address_form.is_valid(): return True return False def validate(self): try: self.address.clean_fields() except ValidationError as e: raise InvalidData(e.messages)
def test_address_save_with_address_in_group(self, mock_save): self.request.POST = NEW_ADDRESS_POST self.request.POST['method'] = 0 group = MagicMock() group.address = Address() group.get_delivery_methods.return_value = [DummyShipping(group)] step = ShippingStep(self.checkout, self.request, group) self.assertTrue(step.forms_are_valid(), 'Forms don\'t validate.') step.save() self.assertEqual(mock_save.call_count, 0)
def test_address_save_with_address_in_checkout(self, mock_save): self.request.POST = NEW_ADDRESS_POST self.request.POST['method'] = 0 original_billing_address_data = { 'first_name': 'Change', 'last_name': 'Me', 'id': 10 } original_billing_address = Address(**original_billing_address_data) self.checkout.billing_address = original_billing_address group = MagicMock() group.address = None group.get_delivery_methods.return_value = [DummyShipping(group)] step = ShippingStep(self.checkout, self.request, group) self.assertTrue(step.forms_are_valid(), 'Forms don\'t validate.') step.save() self.assertEqual(mock_save.call_count, 0) self.assertEqual(self.checkout.billing_address, Address(**original_billing_address_data)) self.assertEqual(step.group['address'].id, None)
def test_address_save_with_address_in_checkout(self): self.request.POST = NEW_ADDRESS_POST self.request.POST['email'] = '*****@*****.**' self.checkout.billing_address = Address() step = BillingAddressStep(self.checkout, self.request) self.assertTrue(step.forms_are_valid(), 'Forms don\'t validate.')
def setUp(self): self.request = MagicMock() self.request.user.is_authenticated.return_value = False self.checkout = MagicMock() self.address = Address()