def setUp(self):
        super(FormsTestCase, self).setUp()
        from django_shop_payer_backend.forms import PayerRedirectForm
        from django_shop_payer_backend.helper import (
            payer_order_item_from_order_item,
            payer_order_item_from_extra_order_price)

        payer_order = PayerOrder(
            order_id=self.shop.get_order_unique_id(self.order),
            description="Test order",
        )
        payer_order.set_buyer_details(buyer_details_from_user(user=self.user, order=self.order))

        for order_item in self.order.items.all():
            payer_order.add_order_item(payer_order_item_from_order_item(order_item))

        for extra_order_price in self.order.extraorderpricefield_set.all():
            payer_order.add_order_item(payer_order_item_from_extra_order_price(extra_order_price))

        pc = PayerProcessingControl(
            success_redirect_url="http://host.com/shop/success/",
            authorize_notification_url="http://host.com/shop/authorize/",
            settle_notification_url="http://host.com/shop/settle/",
            redirect_back_to_shop_url="http://host.com/shop/redirect/",
        )

        self.backend.api.set_processing_control(pc)
        self.backend.api.set_order(payer_order)

        self.redirect_data = self.backend.api.get_post_data()
        self.form = PayerRedirectForm(redirect_data=self.redirect_data)
Example #2
0
    def setUp(self):
        super(FormsTestCase, self).setUp()
        from django_shop_payer_backend.forms import PayerRedirectForm
        from django_shop_payer_backend.helper import (
            payer_order_item_from_order_item,
            payer_order_item_from_extra_order_price)

        payer_order = PayerOrder(
            order_id=self.shop.get_order_unique_id(self.order),
            description="Test order",
        )
        payer_order.set_buyer_details(
            buyer_details_from_user(user=self.user, order=self.order))

        for order_item in self.order.items.all():
            payer_order.add_order_item(
                payer_order_item_from_order_item(order_item))

        for extra_order_price in self.order.extraorderpricefield_set.all():
            payer_order.add_order_item(
                payer_order_item_from_extra_order_price(extra_order_price))

        pc = PayerProcessingControl(
            success_redirect_url="http://host.com/shop/success/",
            authorize_notification_url="http://host.com/shop/authorize/",
            settle_notification_url="http://host.com/shop/settle/",
            redirect_back_to_shop_url="http://host.com/shop/redirect/",
        )

        self.backend.api.set_processing_control(pc)
        self.backend.api.set_order(payer_order)

        self.redirect_data = self.backend.api.get_post_data()
        self.form = PayerRedirectForm(redirect_data=self.redirect_data)
    def test_order_item_from_extra_order_price(self):
        from helper import payer_order_item_from_extra_order_price
        item = payer_order_item_from_extra_order_price(self.extra_order_price_field)

        self.assertEquals(item.price_including_vat, 12.34)
        self.assertEquals(item.description, "Shipping")
        self.assertEquals(item.vat_percentage, 25.0)
        self.assertEquals(item.quantity, 1)
Example #4
0
    def test_order_item_from_extra_order_price(self):
        from helper import payer_order_item_from_extra_order_price
        item = payer_order_item_from_extra_order_price(
            self.extra_order_price_field)

        self.assertEquals(item.price_including_vat, 12.34)
        self.assertEquals(item.description, "Shipping")
        self.assertEquals(item.vat_percentage, 25.0)
        self.assertEquals(item.quantity, 1)
Example #5
0
    def payer_redirect_view(self, request):
        """
        This view generates the order XML data and other key-value pairs needed,
        outputs the as hidden input elemens in a form and redirects to Payer.
        """

        order = self.shop.get_order(request)
        description = self.shop.get_order_short_name(order)
        order_id = self.shop.get_order_unique_id(order)

        user = None
        if request.user.is_authenticated():
            user = request.user

        payer_order = PayerOrder(
            order_id=order_id,
            description=description,
        )
        payer_order.set_buyer_details(buyer_details_from_user(user=user, order=order))

        for order_item in order.items.all():
            payer_order.add_order_item(payer_order_item_from_order_item(order_item))

        for extra_order_price in order.extraorderpricefield_set.all():
            payer_order.add_order_item(payer_order_item_from_extra_order_price(extra_order_price))

        for info in order.extra_info.all():
            for t in list(string_chunks(info.text, 255)):
                payer_order.add_info_line(t)

        self.api.set_processing_control(self.get_processing_control(request))
        self.api.set_order(payer_order)

        redirect_data = self.api.get_post_data()
        form = PayerRedirectForm(redirect_data=redirect_data)

        ctx_data = {
            'order': order,
            'redirect_data': redirect_data,
            'form_action': self.api.get_post_url(),
            'form': form,
        }

        if settings.DEBUG:
            ctx_data['xml_data'] = self.api.get_xml_data(pretty_print=True)

        context = RequestContext(request, ctx_data)

        return render_to_response(self.template, context)