def process_delivery_group(group, cart_lines, discounts=None): """Fill shipment group with order lines created from partition items.""" for line in cart_lines: add_variant_to_delivery_group(group, line.variant, line.quantity, discounts, add_to_existing=False)
def test_add_variant_to_delivery_group_allocates_stock_for_new_variant( order_with_lines, product_in_stock): group = order_with_lines.groups.get() variant = product_in_stock.variants.get() stock = variant.select_stockrecord() stock_before = stock.quantity_allocated add_variant_to_delivery_group(group, variant, 1) stock.refresh_from_db() assert stock.quantity_allocated == stock_before + 1
def test_add_variant_to_delivery_group_adds_line_for_new_variant( order_with_lines, product_in_stock): group = order_with_lines.groups.get() variant = product_in_stock.variants.get() lines_before = group.lines.count() add_variant_to_delivery_group(group, variant, 1) line = group.lines.last() assert group.lines.count() == lines_before + 1 assert line.product_sku == variant.sku assert line.quantity == 1
def test_add_variant_to_delivery_group_adds_item_for_new_variant( order_with_items, product_in_stock): group = order_with_items.groups.get() variant = product_in_stock.variants.get() items_before = group.items.count() add_variant_to_delivery_group(group, variant, 1) item = group.items.last() assert group.items.count() == items_before + 1 assert item.product_sku == variant.sku assert item.quantity == 1
def test_add_variant_to_delivery_group_allocates_stock_for_existing_variant( order_with_lines_and_stock): order = order_with_lines_and_stock group = order.groups.get() existing_line = group.lines.first() variant = existing_line.product.variants.get() stock = existing_line.stock stock_before = stock.quantity_allocated add_variant_to_delivery_group(group, variant, 1) stock.refresh_from_db() assert stock.quantity_allocated == stock_before + 1
def test_add_variant_to_delivery_group_edits_line_for_existing_variant( order_with_lines_and_stock): order = order_with_lines_and_stock group = order.groups.get() existing_line = group.lines.first() variant = existing_line.product.variants.get() lines_before = group.lines.count() line_quantity_before = existing_line.quantity add_variant_to_delivery_group(group, variant, 1) existing_line.refresh_from_db() assert group.lines.count() == lines_before assert existing_line.product_sku == variant.sku assert existing_line.quantity == line_quantity_before + 1
def process_delivery_group(group, cart_lines, discounts=None): """Fill shipment group with order lines created from partition items.""" for line in cart_lines: add_variant_to_delivery_group( group, line.variant, line.quantity, discounts, add_to_existing=False)