Example #1
0
    def test_shipping_address_form_post(self):
        setattr(self.request, "method", "POST")
        setattr(self.request, "POST", {})

        view = CheckoutSelectionView(request=self.request)
        res = view.get_shipping_address_form()
        self.assertNotEqual(res, None)
Example #2
0
    def test_billing_address_form_post(self):
        setattr(self.request, 'method', 'POST')
        setattr(self.request, 'POST', {})

        view = CheckoutSelectionView(request=self.request)
        res = view.get_billing_address_form()
        self.assertNotEqual(res, None)
Example #3
0
 def test_get_context_data(self):
     setattr(self.request, "method", "GET")
     view = CheckoutSelectionView(request=self.request)
     ctx = view.get_context_data()
     self.assertNotEqual(ctx, None)
     self.assertNotEqual(ctx["shipping_address"], None)
     self.assertNotEqual(ctx["billing_address"], None)
     self.assertNotEqual(ctx["billing_shipping_form"], None)
Example #4
0
 def test_get_context_data(self):
     setattr(self.request, 'method', 'GET')
     view = CheckoutSelectionView(request=self.request)
     ctx = view.get_context_data()
     self.assertNotEqual(ctx, None)
     self.assertNotEqual(ctx['shipping_address'], None)
     self.assertNotEqual(ctx['billing_address'], None)
     self.assertNotEqual(ctx['billing_shipping_form'], None)
Example #5
0
    def test_billing_address_cache(self):
        setattr(self.request, "method", "POST")
        setattr(self.request, "POST", {})

        view = CheckoutSelectionView(request=self.request)
        res = view.get_billing_address_form()
        self.assertNotEqual(res, None)
        res2 = view.get_billing_address_form()
        self.assertEqual(res, res2)
Example #6
0
    def test_shipping_address_cache(self):
        setattr(self.request, 'method', 'POST')
        setattr(self.request, 'POST', {})

        view = CheckoutSelectionView(request=self.request)
        res = view.get_shipping_address_form()
        self.assertNotEqual(res, None)
        res2 = view.get_shipping_address_form()
        self.assertEqual(res, res2)
 def test_billing_address_form_user_no_preset(self):
     setattr(self.request, 'user', self.user)
     
     address = Address.objects.create(country=self.country, user_billing=self.user)
     address.save()
     
     view = CheckoutSelectionView(request=self.request)
     res = view.get_billing_address_form()
     self.assertEqual(res.instance, address)
Example #8
0
 def test_billing_address_form_user_no_preset(self):
     setattr(self.request, 'user', self.user)
     
     address = Address.objects.create(country=self.country, user_billing=self.user)
     address.save()
     
     view = CheckoutSelectionView(request=self.request)
     res = view.get_billing_address_form()
     self.assertEqual(res.instance, address)
Example #9
0
    def test_processing_signal(self):
        view = CheckoutSelectionView(request=self.request)

        order_from_signal = []
        def receiver(sender, order=None, **kwargs):
            order_from_signal.append(order)

        processing.connect(receiver)
        res = view.create_order_object_from_cart()

        self.assertIs(res, order_from_signal[0])
Example #10
0
    def test_assigning_to_order_from_view_works_with_name_and_address(self):
        self.s_add.name = 'toto'
        self.s_add.address2 = 'address2'
        self.s_add.save()
        self.b_add.name = 'toto'
        self.b_add.address2 = 'address2'
        self.b_add.save()

        view = CheckoutSelectionView(request=self.request)
        view.save_addresses_to_order(self.order, self.s_add, self.b_add)
        self.check_order_address()
Example #11
0
 def test_order_added_to_session_if_no_user(self):
     """
     Check that the order_id is saved on the session if
     no user is available.
     """
     setattr(self.request, 'user', None)
     self.request.session["cart_id"] = self.cart.pk
     view = CheckoutSelectionView(request=self.request)
     order = view.create_order_object_from_cart()
     self.assertEquals(self.request.session.get("order_id"), order.pk)
     setattr(self.request, 'user', self.user)
Example #12
0
 def test_orders_are_created_and_cleaned_up(self):
     view = CheckoutSelectionView(request=self.request)
     # create a new order with pk 1
     old_order = view.create_order_object_from_cart()
     # create order with pk 2 so sqlite doesn't reuse pk 1
     Order.objects.create()
     # then create a different new order, from a different cart with pk 3
     # order pk 1 should be deleted here
     self.cart.add_product(self.product)
     new_order = view.create_order_object_from_cart()
     self.assertFalse(Order.objects.filter(pk=old_order.pk).exists()) # check it was deleted
     self.assertNotEqual(old_order.order_total, new_order.order_total)
Example #13
0
    def test_save_extra_info_to_order(self):
        """
        Check that extra info associated with the order is saved.
        """
        # Set the request to a POST and add data for the form to parse.
        setattr(self.request, 'method', 'POST')
        setattr(self.request, 'POST', {"text": "blah blah"})

        view = CheckoutSelectionView(request=self.request)
        form = view.get_extra_info_form()
        self.assertTrue(form.is_valid())
        order = view.create_order_object_from_cart()
        view.save_extra_info_to_order(order, form)
        self.assertTrue(OrderExtraInfo.objects.filter(order=order).exists())

        # Set the request back to how it was in setUp()
        setattr(self.request, 'method', 'GET')
        del self.request.POST
Example #14
0
from django.conf.urls.defaults import url, patterns

from shop.views.checkout import (
    # SelectPaymentView,
    # SelectShippingView,
    CheckoutSelectionView,
    PaymentBackendRedirectView,
    ShippingBackendRedirectView,
    ThankYouView,
)

urlpatterns = patterns(
    '',
    url(
        r'^$',
        CheckoutSelectionView.as_view(),
        name='checkout_selection'  # First step of the checkout process
    ),
    #url(r'^checkout/ship/$', SelectShippingView.as_view(),
    #    name='checkout_shipping'  # First step of the checkout process
    #    ),
    url(
        r'^ship/$',
        ShippingBackendRedirectView.as_view(),
        name='checkout_shipping'  # First step of the checkout process
    ),
    #url(r'^checkout/pay/$', SelectPaymentView.as_view(),
    #    name='checkout_payment'  # Second step of the checkout process
    #    ),
    url(
        r'^pay/$',
Example #15
0
 def test_order_created(self):
     view = CheckoutSelectionView(request=self.request)
     res = view.create_order_object_from_cart()
     self.assertEqual(res.order_total, Decimal('0'))
Example #16
0
    def test_assigning_to_order_from_view_works(self):
        view = CheckoutSelectionView(request=self.request)
        view.save_addresses_to_order(self.order, self.s_add, self.b_add)

        self.check_order_address()
Example #17
0
 def test_billing_and_shipping_selection_cached(self):
     view = CheckoutSelectionView(request=self.request)
     res = view.get_billing_and_shipping_selection_form()
     res2 = view.get_billing_and_shipping_selection_form()
     self.assertEqual(res, res2)
Example #18
0
 def test_billing_and_shipping_selection_get(self):
     view = CheckoutSelectionView(request=self.request)
     res = view.get_billing_and_shipping_selection_form()
     self.assertNotEqual(res, None)
Example #19
0
from django.conf.urls import patterns, url
from shop.util.decorators import cart_required

from shop.views.checkout import (
    CheckoutSelectionView,
    PaymentBackendRedirectView,
    ShippingBackendRedirectView,
    OrderConfirmView,
    ThankYouView,
)

urlpatterns = patterns('',
    url(r'^$', cart_required(CheckoutSelectionView.as_view()),
        name='checkout_selection'  # first step of the checkout process
        ),
    url(r'^ship/$', ShippingBackendRedirectView.as_view(),
        name='checkout_shipping'  # second step of the checkout process
        ),
    url(r'^confirm/$', OrderConfirmView.as_view(),
        name='checkout_confirm'  # third step of the checkout process
        ),
    url(r'^pay/$', PaymentBackendRedirectView.as_view(),
        name='checkout_payment'  # fourth step of the checkout process
        ),
    url(r'^thank_you/$', ThankYouView.as_view(),
        name='thank_you_for_your_order'  # final step of the checkout process
        ),
    )
Example #20
0
from django.conf.urls.defaults import url, patterns
from shop.util.decorators import cart_required

from shop.views.checkout import (
    CheckoutSelectionView,
    PaymentBackendRedirectView,
    ShippingBackendRedirectView,
    OrderConfirmView,
    ThankYouView,
)

urlpatterns = patterns(
    '',
    url(
        r'^$',
        cart_required(CheckoutSelectionView.as_view()),
        name='checkout_selection'  # first step of the checkout process
    ),
    url(
        r'^ship/$',
        ShippingBackendRedirectView.as_view(),
        name='checkout_shipping'  # second step of the checkout process
    ),
    url(
        r'^confirm/$',
        OrderConfirmView.as_view(),
        name='checkout_confirm'  # third step of the checkout process
    ),
    url(
        r'^pay/$',
        PaymentBackendRedirectView.as_view(),
Example #21
0
    
    # Cart
    url(r'^cart/delete/$', CartDetails.as_view(action='delete'), # DELETE 
        name='cart_delete'),
    url('^cart/item/$', CartDetails.as_view(action='post'), # POST
        name='cart_item_add' ),
    url(r'^cart/$', CartDetails.as_view(), name='cart'), # GET
    url(r'^cart/update/$', CartDetails.as_view(action='put'), 
        name='cart_update'),

    # CartItems
    url('^cart/item/(?P<id>[0-9A-Za-z-_.//]+)$', CartItemDetail.as_view(),
        name='cart_item' ),
    
    # Checkout
    url(r'^checkout/$', CheckoutSelectionView.as_view(), 
        name='checkout_selection' # First step of the checkout process
        ),
    #url(r'^checkout/ship/$', SelectShippingView.as_view(), 
    #    name='checkout_shipping' # First step of the checkout process
    #    ),
    url(r'^checkout/ship/$', ShippingBackendRedirectView.as_view(), 
        name='checkout_shipping' # First step of the checkout process
        ),
    #url(r'^checkout/pay/$', SelectPaymentView.as_view(), 
    #    name='checkout_payment' # Second step of the checkout process
    #    ),
    url(r'^checkout/pay/$', PaymentBackendRedirectView.as_view(), 
        name='checkout_payment' # First step of the checkout process
        ),
    url(r'^checkout/thank_you/$', ThankYouView.as_view(), 
Example #22
0
 def test_billing_address_form_user_preset(self):
     view = CheckoutSelectionView(request=self.request)
     res = view.get_billing_address_form()
     self.assertNotEqual(res, None)
Example #23
0
from django.conf.urls.defaults import url, patterns

from shop.views.checkout import (
    # SelectPaymentView,
    # SelectShippingView,
    CheckoutSelectionView,
    PaymentBackendRedirectView,
    ShippingBackendRedirectView,
    ThankYouView,
)

urlpatterns = patterns('',
    url(r'^checkout/$', CheckoutSelectionView.as_view(),
        name='checkout_selection'  # First step of the checkout process
        ),
    #url(r'^checkout/ship/$', SelectShippingView.as_view(),
    #    name='checkout_shipping'  # First step of the checkout process
    #    ),
    url(r'^checkout/ship/$', ShippingBackendRedirectView.as_view(),
        name='checkout_shipping'  # First step of the checkout process
        ),
    #url(r'^checkout/pay/$', SelectPaymentView.as_view(),
    #    name='checkout_payment'  # Second step of the checkout process
    #    ),
    url(r'^checkout/pay/$', PaymentBackendRedirectView.as_view(),
        name='checkout_payment'  # First step of the checkout process
        ),
    url(r'^checkout/thank_you/$', ThankYouView.as_view(),
        name='thank_you_for_your_order'  # Second step of the checkout process
        ),
    )