Skip to content

Commit

Permalink
Adjusted tests and PEP-8 conformance (resolves #1).
Browse files Browse the repository at this point in the history
  • Loading branch information
dessibelle committed Feb 16, 2015
1 parent fc6ba1c commit 7ac3b55
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 28 deletions.
15 changes: 7 additions & 8 deletions django_shop_payer_backend/backends.py
Expand Up @@ -14,7 +14,12 @@
from shop.order_signals import confirmed, completed

from forms import PayerRedirectForm
from helper import payer_order_item_from_order_item, buyer_details_from_user, payer_order_item_from_extra_order_price
from helper import (
payer_order_item_from_order_item,
buyer_details_from_user,
payer_order_item_from_extra_order_price,
string_chunks,
)
from payer_api.postapi import PayerPostAPI
from payer_api.xml import PayerXMLDocument
from payer_api.order import PayerProcessingControl, PayerOrder
Expand Down Expand Up @@ -113,14 +118,8 @@ def payer_redirect_view(self, request):
for extra_order_price in order.extraorderpricefield_set.all():
payer_order.add_order_item(payer_order_item_from_extra_order_price(extra_order_price))

def chunks(l, n):
""" Yield successive n-sized chunks from l.
"""
for i in xrange(0, len(l), n):
yield l[i:i + n]

for info in order.extra_info.all():
for t in list(chunks(info.text, 255)):
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))
Expand Down
7 changes: 7 additions & 0 deletions django_shop_payer_backend/helper.py
Expand Up @@ -26,6 +26,13 @@ class AddressParsingFailedException(Exception):
"extra_order_price"])


def string_chunks(l, n):
""" Yield successive n-sized chunks from l.
"""
for i in xrange(0, len(l), n):
yield l[i:i + n]


def payer_order_item_from_order_item(order_item):

order_item_dict = {
Expand Down
48 changes: 28 additions & 20 deletions django_shop_payer_backend/tests.py
Expand Up @@ -8,6 +8,7 @@
from shop.models.ordermodel import (
Order,
OrderItem,
OrderExtraInfo,
ExtraOrderItemPriceField,
ExtraOrderPriceField,
)
Expand Down Expand Up @@ -403,6 +404,11 @@ class Mock(object):
self.orderitem.line_total = Decimal('110')
self.orderitem.save()

oi = OrderExtraInfo()
oi.order = self.order
oi.text = "buffalo " * 64
oi.save()

eoif = ExtraOrderItemPriceField()
eoif.order_item = self.orderitem
eoif.label = 'Fake extra field'
Expand Down Expand Up @@ -561,36 +567,37 @@ def test_processing_control(self):
self.assertEqual(pc.settle_notification_url, urljoin(base_url, reverse('%s-%s' % ("payer", "settle",))))
self.assertEqual(pc.redirect_back_to_shop_url, urljoin(base_url, self.shop.get_cancel_url()))

def assertOrderDetails(self, request):
order = self.backend.shop.get_order(request)
order_id = self.backend.shop.get_order_unique_id(order)

try:
assert order
except:
self.fail("payer_redirect_view could not fetch order from request.")

self.assertEqual(order_id, order_id)

response = self.backend.payer_redirect_view(request)
self.assertEqual(response.status_code, 200)
self.assertIn("text/html", response['Content-Type'])

def test_redirect_view_with_user(self):
request = self.factory.get("/")
request.user = self.user

self.assertTrue(request.user.is_authenticated())

view = self.backend.payer_redirect_view(request)
order = self.backend.shop.get_order(request)

# TODO: Make some assertions
self.assertOrderDetails(request)

def test_redirect_view_with_anonymous_user(self):
request = self.factory.get("/")
request.user = AnonymousUser()

self.assertFalse(request.user.is_authenticated())

view = self.backend.payer_redirect_view(request)
order = self.backend.shop.get_order(request)
setattr(request, 'session', {'order_id': self.order.id})
self.assertEqual(request.session.get('order_id', None), self.order.id)

# TODO: Make some assertions

def test_redirect_view_without_user(self):
request = self.factory.get("/")
request.user = None

view = self.backend.payer_redirect_view(request)
order = self.backend.shop.get_order(request)

# TODO: Make some assertions
self.assertFalse(request.user.is_authenticated())
self.assertOrderDetails(request)

def test_ip_validation(self):

Expand Down Expand Up @@ -718,7 +725,8 @@ def test_handle_order_notifications(self):
order = Order.objects.get(pk=self.order.id)
self.assertEqual(order.status, Order.CONFIRMED)

test_cart = lambda: Cart.objects.get(pk=order.cart_pk)
def test_cart():
Cart.objects.get(pk=order.cart_pk)
self.assertRaises(Cart.DoesNotExist, test_cart)

# Settle notification
Expand Down

0 comments on commit 7ac3b55

Please sign in to comment.