def test_order_creation_adds_usage(rf, admin_user): request, shop, group = initialize_test(rf, False) source = seed_source(admin_user) source.add_line( type=OrderLineType.PRODUCT, product=get_default_product(), supplier=get_default_supplier(), quantity=1, base_unit_price=source.create_price(10), ) source.add_line( type=OrderLineType.OTHER, quantity=1, base_unit_price=source.create_price(10), require_verification=True, ) # add coupon coupon = Coupon.objects.create(active=True, code="asdf") BasketCampaign.objects.create(active=True, shop=shop, name="test", public_name="test", discount_percentage="0.1", coupon=coupon) source.add_code(coupon.code) creator = OrderCreator() creator.create_order(source) assert CouponUsage.objects.count() == 1
def test_order_source(rf, admin_user): """ Test order source validation with stocked products. """ shop = get_default_shop() supplier = get_simple_supplier() product = create_product("simple-test-product", shop, supplier) product.stock_behavior = StockBehavior.STOCKED product.save() quantity = 345 supplier.adjust_stock(product.pk, quantity) assert supplier.get_stock_statuses([product.id])[product.id].logical_count == quantity assert not list(supplier.get_orderability_errors(product.get_shop_instance(shop), quantity, customer=None)) assert list(supplier.get_orderability_errors(product.get_shop_instance(shop), quantity+1, customer=None)) source = seed_source(admin_user, shop) source.add_line( type=OrderLineType.PRODUCT, product=product, supplier=supplier, quantity=quantity, base_unit_price=source.create_price(10), ) assert not list(source.get_validation_errors()) source.add_line( type=OrderLineType.PRODUCT, product=product, supplier=supplier, quantity=quantity, base_unit_price=source.create_price(10), ) assert list(source.get_validation_errors())
def test_order_creation_adds_usage(rf, admin_user): request, shop, group = initialize_test(rf, False) source = seed_source(admin_user) source.add_line( type=OrderLineType.PRODUCT, product=get_default_product(), supplier=get_default_supplier(), quantity=1, base_unit_price=source.create_price(10), ) source.add_line( type=OrderLineType.OTHER, quantity=1, base_unit_price=source.create_price(10), require_verification=True ) # add coupon coupon = Coupon.objects.create(active=True, code="asdf") campaign = BasketCampaign.objects.create( active=True, shop=shop, name="test", public_name="test", discount_percentage="0.1", coupon=coupon ) source.add_code(coupon.code) request = apply_request_middleware(rf.get("/")) creator = OrderCreator(request) order = creator.create_order(source) assert CouponUsage.objects.count() == 1
def test_order_source(rf, admin_user): """ Test order source validation with stocked products. """ shop = get_default_shop() supplier = get_simple_supplier() product = create_product("simple-test-product", shop, supplier) product.stock_behavior = StockBehavior.STOCKED product.save() quantity = 345 supplier.adjust_stock(product.pk, quantity) assert supplier.get_stock_statuses( [product.id])[product.id].logical_count == quantity assert not list( supplier.get_orderability_errors( product.get_shop_instance(shop), quantity, customer=None)) assert list( supplier.get_orderability_errors(product.get_shop_instance(shop), quantity + 1, customer=None)) source = seed_source(admin_user, shop) source.add_line( type=OrderLineType.PRODUCT, product=product, supplier=supplier, quantity=quantity, base_unit_price=source.create_price(10), ) assert not list(source.get_validation_errors()) source.add_line( type=OrderLineType.PRODUCT, product=product, supplier=supplier, quantity=quantity, base_unit_price=source.create_price(10), ) assert list(source.get_validation_errors())