Example #1
0
 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}
Example #2
0
 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}
Example #3
0
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)
Example #4
0
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)
Example #5
0
 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)
Example #6
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)
Example #7
0
 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.')
Example #8
0
 def setUp(self):
     self.request = MagicMock()
     self.request.user.is_authenticated.return_value = False
     self.checkout = MagicMock()
     self.address = Address()