本文整理汇总了Python中shoop_tests.utils.basketish_order_source.BasketishOrderSource.add_line方法的典型用法代码示例。如果您正苦于以下问题:Python BasketishOrderSource.add_line方法的具体用法?Python BasketishOrderSource.add_line怎么用?Python BasketishOrderSource.add_line使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类shoop_tests.utils.basketish_order_source.BasketishOrderSource
的用法示例。
在下文中一共展示了BasketishOrderSource.add_line方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_order_and_source
# 需要导入模块: from shoop_tests.utils.basketish_order_source import BasketishOrderSource [as 别名]
# 或者: from shoop_tests.utils.basketish_order_source.BasketishOrderSource import add_line [as 别名]
def get_order_and_source(admin_user):
# create original source to tamper with
source = BasketishOrderSource(get_default_shop())
source.status = get_initial_order_status()
source.billing_address = MutableAddress.objects.create(name="Original Billing")
source.shipping_address = MutableAddress.objects.create(name="Original Shipping")
source.customer = get_person_contact(admin_user)
source.payment_method = get_default_payment_method()
source.shipping_method = get_default_shipping_method()
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,
)
assert len(source.get_lines()) == 2
source.creator = admin_user
creator = OrderCreator()
order = creator.create_order(source)
return order, source
示例2: test_weight_limits
# 需要导入模块: from shoop_tests.utils.basketish_order_source import BasketishOrderSource [as 别名]
# 或者: from shoop_tests.utils.basketish_order_source.BasketishOrderSource import add_line [as 别名]
def test_weight_limits():
sm = ShippingMethod(tax_class=get_default_tax_class())
sm.module_data = {"min_weight": "100", "max_weight": "500"}
source = BasketishOrderSource(get_default_shop())
assert any(ve.code == "min_weight" for ve in sm.get_validation_errors(source))
source.add_line(type=OrderLineType.PRODUCT, weight=600)
assert any(ve.code == "max_weight" for ve in sm.get_validation_errors(source))
示例3: test_package
# 需要导入模块: from shoop_tests.utils.basketish_order_source import BasketishOrderSource [as 别名]
# 或者: from shoop_tests.utils.basketish_order_source.BasketishOrderSource import add_line [as 别名]
def test_package():
shop = get_default_shop()
supplier = get_default_supplier()
package_product = create_product("PackageParent", shop=shop, supplier=supplier)
assert not package_product.get_package_child_to_quantity_map()
children = [create_product("PackageChild-%d" % x, shop=shop, supplier=supplier) for x in range(4)]
package_def = {child: 1 + i for (i, child) in enumerate(children)}
package_product.make_package(package_def)
assert package_product.is_package_parent()
package_product.save()
sp = package_product.get_shop_instance(shop)
assert not list(sp.get_orderability_errors(supplier=supplier, quantity=1, customer=AnonymousContact()))
with pytest.raises(ValueError): # Test re-packaging fails
package_product.make_package(package_def)
# Check that OrderCreator can deal with packages
source = BasketishOrderSource(get_default_shop())
source.add_line(
type=OrderLineType.PRODUCT,
product=package_product,
supplier=get_default_supplier(),
quantity=10,
base_unit_price=source.create_price(10),
)
source.status = get_initial_order_status()
creator = OrderCreator()
order = creator.create_order(source)
pids_to_quantities = order.get_product_ids_and_quantities()
for child, quantity in six.iteritems(package_def):
assert pids_to_quantities[child.pk] == 10 * quantity
示例4: test_waiver
# 需要导入模块: from shoop_tests.utils.basketish_order_source import BasketishOrderSource [as 别名]
# 或者: from shoop_tests.utils.basketish_order_source.BasketishOrderSource import add_line [as 别名]
def test_waiver():
sm = get_shipping_method(name="Waivey", price=100, waive_at=370)
source = BasketishOrderSource(get_default_shop())
assert sm.get_effective_name(source) == u"Waivey"
assert sm.get_total_cost(source).price == source.create_price(100)
source.add_line(
type=OrderLineType.PRODUCT,
product=get_default_product(),
base_unit_price=source.create_price(400),
quantity=1
)
assert sm.get_total_cost(source).price == source.create_price(0)
示例5: test_weight_limits
# 需要导入模块: from shoop_tests.utils.basketish_order_source import BasketishOrderSource [as 别名]
# 或者: from shoop_tests.utils.basketish_order_source.BasketishOrderSource import add_line [as 别名]
def test_weight_limits():
carrier = CustomCarrier.objects.create()
sm = carrier.create_service(
None, shop=get_default_shop(), enabled=True,
tax_class=get_default_tax_class())
sm.behavior_components.add(
WeightLimitsBehaviorComponent.objects.create(
min_weight=100, max_weight=500))
source = BasketishOrderSource(get_default_shop())
assert any(ve.code == "min_weight" for ve in sm.get_unavailability_reasons(source))
source.add_line(type=OrderLineType.PRODUCT, weight=600)
assert any(ve.code == "max_weight" for ve in sm.get_unavailability_reasons(source))
示例6: test_tax
# 需要导入模块: from shoop_tests.utils.basketish_order_source import BasketishOrderSource [as 别名]
# 或者: from shoop_tests.utils.basketish_order_source.BasketishOrderSource import add_line [as 别名]
def test_tax():
sm = ShippingMethod(tax_class=None, module_data={"price": 50})
source = BasketishOrderSource(get_default_shop())
# Since `tax_class` is None, the highest tax percentage in the order should be used:
source.add_line(type=OrderLineType.PRODUCT, tax_rate=Decimal("0.8"))
source.add_line(type=OrderLineType.PRODUCT, tax_rate=Decimal("0.3"))
line = list(sm.get_source_lines(source))[0]
assert line.tax_rate == Decimal("0.8")
sm.tax_class = get_default_tax_group()
line = list(sm.get_source_lines(source))[0]
assert line.tax_rate == sm.tax_class.tax_rate
示例7: test_methods
# 需要导入模块: from shoop_tests.utils.basketish_order_source import BasketishOrderSource [as 别名]
# 或者: from shoop_tests.utils.basketish_order_source.BasketishOrderSource import add_line [as 别名]
def test_methods(admin_user, country):
contact = get_person_contact(admin_user)
source = BasketishOrderSource(get_default_shop())
source.add_line(
type=OrderLineType.PRODUCT,
product=get_default_product(),
supplier=get_default_supplier(),
quantity=1,
base_unit_price=source.create_price(10),
weight=Decimal("0.2"),
)
billing_address = get_address()
shipping_address = get_address(name="Shippy Doge", country=country)
source.billing_address = billing_address
source.shipping_address = shipping_address
source.customer = contact
with override_provides_for_expensive_sweden_shipping_method():
source.shipping_method = get_expensive_sweden_shipping_method()
source.payment_method = PaymentMethod.objects.create(
identifier="neat", module_data={"price": 4}, tax_class=get_default_tax_class()
)
assert source.shipping_method_id
assert source.payment_method_id
errors = list(source.get_validation_errors())
if (
country == "FI"
): # "Expenseefe-a Svedee Sheepping" will not allow shipping to Finland, let's see if that holds true
assert any([ve.code == "we_no_speak_finnish" for ve in errors])
return # Shouldn't try the rest if we got an error here
else:
assert not errors
final_lines = list(source.get_final_lines())
assert any(line.type == OrderLineType.SHIPPING for line in final_lines)
for line in final_lines:
if line.type == OrderLineType.SHIPPING:
if country == "SE": # We _are_ using Expenseefe-a Svedee Sheepping after all.
assert line.price == source.shop.create_price("5.00")
else:
assert line.price == source.shop.create_price("4.00")
assert line.text == u"Expenseefe-a Svedee Sheepping"
if line.type == OrderLineType.PAYMENT:
assert line.price == source.shop.create_price(4)
示例8: test_waiver
# 需要导入模块: from shoop_tests.utils.basketish_order_source import BasketishOrderSource [as 别名]
# 或者: from shoop_tests.utils.basketish_order_source.BasketishOrderSource import add_line [as 别名]
def test_waiver():
sm = ShippingMethod(name="Waivey", tax_class=get_default_tax_class(),
module_data={
"price_waiver_product_minimum": "370",
"price": "100"
})
source = BasketishOrderSource(get_default_shop())
assert sm.get_effective_name(source) == u"Waivey"
assert sm.get_effective_price_info(source).price == source.shop.create_price(100)
source.add_line(
type=OrderLineType.PRODUCT,
product=get_default_product(),
base_unit_price=source.shop.create_price(400),
quantity=1
)
assert sm.get_effective_price_info(source).price == source.shop.create_price(0)
示例9: get_source
# 需要导入模块: from shoop_tests.utils.basketish_order_source import BasketishOrderSource [as 别名]
# 或者: from shoop_tests.utils.basketish_order_source.BasketishOrderSource import add_line [as 别名]
def get_source():
source = BasketishOrderSource(get_default_shop())
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,
)
return source
示例10: get_order_source_with_a_package
# 需要导入模块: from shoop_tests.utils.basketish_order_source import BasketishOrderSource [as 别名]
# 或者: from shoop_tests.utils.basketish_order_source.BasketishOrderSource import add_line [as 别名]
def get_order_source_with_a_package():
package_product = get_package_product()
source = BasketishOrderSource(get_default_shop())
source.add_line(
type=OrderLineType.PRODUCT,
product=package_product,
supplier=get_default_supplier(),
quantity=10,
base_unit_price=source.create_price(10),
sku=package_product.sku,
text=package_product.name,
)
source.status = get_initial_order_status()
return source
示例11: test_fixed_cost_with_waiving_costs
# 需要导入模块: from shoop_tests.utils.basketish_order_source import BasketishOrderSource [as 别名]
# 或者: from shoop_tests.utils.basketish_order_source.BasketishOrderSource import add_line [as 别名]
def test_fixed_cost_with_waiving_costs():
sm = get_shipping_method(name="Fixed and waiving", price=5)
sm.behavior_components.add(
*[WaivingCostBehaviorComponent.objects.create(
price_value=p, waive_limit_value=w)
for (p, w) in [(3, 5), (7, 10), (10, 30)]])
source = BasketishOrderSource(get_default_shop())
source.shipping_method = sm
def pricestr(pi):
assert pi.price.unit_matches_with(source.create_price(0))
return "%.0f EUR (%.0f EUR)" % (pi.price.value, pi.base_price.value)
assert pricestr(sm.get_total_cost(source)) == "25 EUR (25 EUR)"
assert source.total_price.value == 25
source.add_line(
type=OrderLineType.PRODUCT, product=get_default_product(),
base_unit_price=source.create_price(2), quantity=1)
assert pricestr(sm.get_total_cost(source)) == "25 EUR (25 EUR)"
assert source.total_price.value == 27
source.add_line(
type=OrderLineType.PRODUCT, product=get_default_product(),
base_unit_price=source.create_price(3), quantity=1)
assert pricestr(sm.get_total_cost(source)) == "22 EUR (25 EUR)"
assert source.total_price.value == 27
source.add_line(
type=OrderLineType.PRODUCT, product=get_default_product(),
base_unit_price=source.create_price(10), quantity=1)
assert pricestr(sm.get_total_cost(source)) == "15 EUR (25 EUR)"
assert source.total_price.value == 30
source.add_line(
type=OrderLineType.PRODUCT, product=get_default_product(),
base_unit_price=source.create_price(10), quantity=1)
assert pricestr(sm.get_total_cost(source)) == "15 EUR (25 EUR)"
assert source.total_price.value == 40
source.add_line(
type=OrderLineType.PRODUCT, product=get_default_product(),
base_unit_price=source.create_price(10), quantity=1)
assert pricestr(sm.get_total_cost(source)) == "5 EUR (25 EUR)"
assert source.total_price.value == 40
示例12: test_order_creator_parent_linkage
# 需要导入模块: from shoop_tests.utils.basketish_order_source import BasketishOrderSource [as 别名]
# 或者: from shoop_tests.utils.basketish_order_source.BasketishOrderSource import add_line [as 别名]
def test_order_creator_parent_linkage():
"""
Test OrderCreator creates parent links from OrderSource.
"""
source = BasketishOrderSource(get_default_shop())
source.status = get_initial_order_status()
source.add_line(
line_id='LINE1',
type=OrderLineType.OTHER, quantity=1,
sku='parent', text='Parent line',
)
source.add_line(
line_id='LINE1.1',
parent_line_id='LINE1',
type=OrderLineType.OTHER, quantity=1,
sku='child1.1', text='Child line 1.1',
)
source.add_line(
line_id='LINE1.2',
parent_line_id='LINE1',
type=OrderLineType.OTHER, quantity=1,
sku='child1.2', text='Child line 1.2',
)
source.add_line(
line_id='LINE1.2.1',
parent_line_id='LINE1.2',
type=OrderLineType.OTHER, quantity=1,
sku='child1.2.1', text='Child line 1.2.1',
)
source.add_line(
line_id='LINE1.3',
parent_line_id='LINE1',
type=OrderLineType.OTHER, quantity=1,
sku='child1.3', text='Child line 1.3',
)
order = OrderCreator().create_order(source)
lines = [prettify_order_line(line) for line in order.lines.all()]
assert lines == [
'#0 1 x parent',
'#1 1 x child1.1, child of #0',
'#2 1 x child1.2, child of #0',
'#3 1 x child1.2.1, child of #2',
'#4 1 x child1.3, child of #0',
]