Fixes tests on Django 1.9

This commit is contained in:
Christopher Neugebauer 2016-04-02 11:02:01 +11:00
parent 3a6b4125e9
commit 69a65ac3ed
2 changed files with 17 additions and 8 deletions

View file

@ -46,10 +46,12 @@ class CategoryConditionController(ConditionController):
carts = rego.Cart.objects.filter(user=user, released=False)
enabling_products = rego.Product.objects.filter(
category=self.condition.enabling_category)
category=self.condition.enabling_category,
)
products = rego.ProductItem.objects.filter(
cart=carts,
product=enabling_products)
product__in=enabling_products,
)
return len(products) > 0
@ -67,7 +69,8 @@ class ProductConditionController(ConditionController):
carts = rego.Cart.objects.filter(user=user, released=False)
products = rego.ProductItem.objects.filter(
cart=carts,
product=self.condition.enabling_products.all())
product__in=self.condition.enabling_products.all(),
)
return len(products) > 0
@ -111,12 +114,12 @@ class TimeOrStockLimitConditionController(ConditionController):
list products differently to discounts. '''
if isinstance(self.ceiling, rego.TimeOrStockLimitEnablingCondition):
category_products = rego.Product.objects.filter(
category=self.ceiling.categories.all()
category=self.ceiling.categories.all(),
)
return self.ceiling.products.all() | category_products
else:
categories = rego.Category.objects.filter(
discountforcategory__discount=self.ceiling
discountforcategory__discount=self.ceiling,
)
return rego.Product.objects.filter(
Q(discountforproduct__discount=self.ceiling) |
@ -129,7 +132,7 @@ class TimeOrStockLimitConditionController(ConditionController):
reserved_carts = rego.Cart.reserved_carts()
product_items = rego.ProductItem.objects.filter(
product=self._products().all()
product__in=self._products().all(),
)
product_items = product_items.filter(cart=reserved_carts)
@ -154,5 +157,6 @@ class VoucherConditionController(ConditionController):
''' returns True if the user has the given voucher attached. '''
carts = rego.Cart.objects.filter(
user=user,
vouchers=self.condition.voucher)
vouchers=self.condition.voucher,
)
return len(carts) > 0

View file

@ -43,7 +43,7 @@ class ProductController(object):
carts = rego.Cart.objects.filter(user=user)
items = rego.ProductItem.objects.filter(
cart=carts,
cart__in=carts,
)
prod_items = items.filter(product=self.product)
@ -52,6 +52,11 @@ class ProductController(object):
prod_count = prod_items.aggregate(Sum("quantity"))["quantity__sum"]
cat_count = cat_items.aggregate(Sum("quantity"))["quantity__sum"]
if prod_count == None:
prod_count = 0
if cat_count == None:
cat_count = 0
prod_limit = self.product.limit_per_user
prod_met = prod_limit is None or quantity + prod_count <= prod_limit