def test_cant_process_shipped_delivery_group(delivery_group, product_in_stock): delivery_group.ship() delivery_group.save() variant = product_in_stock.variants.get() cart = Cart() cart.save() cart.add(variant, quantity=2) with pytest.raises(TransitionNotAllowed): delivery_group.process(cart.lines.all())
def test_stock_allocation(billing_address, product_in_stock): variant = product_in_stock.variants.get() cart = Cart() cart.save() cart.add(variant, quantity=2) order = models.Order.objects.create(billing_address=billing_address) delivery_group = models.DeliveryGroup.objects.create(order=order) add_items_to_delivery_group(delivery_group, cart.lines.all()) order_line = delivery_group.items.get() stock = order_line.stock assert stock.quantity_allocated == 2
def test_stock_allocation(billing_address, product_in_stock): variant = product_in_stock.variants.get() cart = Cart() cart.save() cart.add(variant, quantity=2) order = models.Order.objects.create(billing_address=billing_address) delivery_group = models.DeliveryGroup.objects.create(order=order) delivery_group.add_items_from_partition(cart) order_line = delivery_group.items.get() stock = order_line.stock assert stock.quantity_allocated == 2
def test_cant_process_shipped_delivery_group( delivery_group, product_in_stock): delivery_group.ship() delivery_group.save() variant = product_in_stock.variants.get() cart = Cart() cart.save() cart.add(variant, quantity=2) with pytest.raises(TransitionNotAllowed): delivery_group.process(cart.lines.all())
def test_process_new_delivery_group(billing_address, product_in_stock): variant = product_in_stock.variants.get() cart = Cart() cart.save() cart.add(variant, quantity=2) order = Order.objects.create(billing_address=billing_address) group = DeliveryGroup.objects.create(order=order) group.process(cart.lines.all()) group.save() assert group.status == GroupStatus.NEW order_line = group.lines.get() stock = order_line.stock assert stock.quantity_allocated == 2