diff --git a/registrasion/tests/controller_helpers.py b/registrasion/tests/controller_helpers.py new file mode 100644 index 0000000000000000000000000000000000000000..9e4191f0018ad162da52fce2427a26dee8f810f0 --- /dev/null +++ b/registrasion/tests/controller_helpers.py @@ -0,0 +1,30 @@ +from registrasion.controllers.cart import CartController +from registrasion import models as rego + +from django.core.exceptions import ObjectDoesNotExist + + +class TestingCartController(CartController): + + def set_quantity(self, product, quantity, batched=False): + ''' Sets the _quantity_ of the given _product_ in the cart to the given + _quantity_. ''' + + self.set_quantities(((product, quantity),)) + + def add_to_cart(self, product, quantity): + ''' Adds _quantity_ of the given _product_ to the cart. Raises + ValidationError if constraints are violated.''' + + try: + product_item = rego.ProductItem.objects.get( + cart=self.cart, + product=product) + old_quantity = product_item.quantity + except ObjectDoesNotExist: + old_quantity = 0 + self.set_quantity(product, old_quantity + quantity) + + def next_cart(self): + self.cart.active = False + self.cart.save()