コード例 #1
0
def test_manager_apply_taxes_to_product(product, plugins, price):
    country = Country("PL")
    variant = product.variants.all()[0]
    currency = variant.get_price().currency
    expected_price = Money(price, currency)
    taxed_price = ExtensionsManager(plugins=plugins).apply_taxes_to_product(
        product, variant.get_price(), country)
    assert TaxedMoney(expected_price, expected_price) == taxed_price
コード例 #2
0
def test_manager_calculates_checkout_line_total(checkout_with_item,
                                                discount_info, plugins,
                                                amount):
    line = checkout_with_item.lines.all()[0]
    currency = line.get_total().currency
    expected_total = Money(amount, currency)
    taxed_total = ExtensionsManager(
        plugins=plugins).calculate_checkout_line_total(line, [discount_info])
    assert TaxedMoney(expected_total, expected_total) == taxed_total
コード例 #3
0
def test_plugin_add_new_configuration(
    new_config,
    new_config_structure,
    monkeypatch,
):
    monkeypatch.setattr(PluginInactive, "DEFAULT_ACTIVE", True)
    monkeypatch.setattr(
        PluginInactive,
        "DEFAULT_CONFIGURATION",
        [new_config],
    )
    config_structure = {"Foo": new_config_structure}
    monkeypatch.setattr(PluginInactive, "CONFIG_STRUCTURE", config_structure)
    manager = ExtensionsManager(
        plugins=["tests.extensions.sample_plugins.PluginInactive"])
    plugin = manager.get_plugin("PluginInactive")
    assert len(plugin.configuration) == 1
    assert plugin.configuration[0] == {**new_config, **new_config_structure}
コード例 #4
0
def test_manager_calculates_order_shipping(order_with_lines, plugins,
                                           shipping_amount):
    currency = order_with_lines.total.currency
    expected_shipping_price = Money(shipping_amount, currency)

    taxed_shipping_price = ExtensionsManager(
        plugins=plugins).calculate_order_shipping(order_with_lines)
    assert (TaxedMoney(expected_shipping_price,
                       expected_shipping_price) == taxed_shipping_price)
コード例 #5
0
def test_manager_calculates_checkout_subtotal(checkout_with_item,
                                              discount_info, plugins,
                                              subtotal_amount):
    currency = checkout_with_item.get_total().currency
    expected_subtotal = Money(subtotal_amount, currency)
    taxed_subtotal = ExtensionsManager(
        plugins=plugins).calculate_checkout_subtotal(checkout_with_item,
                                                     [discount_info])
    assert TaxedMoney(expected_subtotal, expected_subtotal) == taxed_subtotal
コード例 #6
0
def test_manager_get_plugin_configurations(plugin_configuration):
    plugins = [
        "tests.extensions.sample_plugins.PluginSample",
        "tests.extensions.sample_plugins.PluginInactive",
    ]
    manager = ExtensionsManager(plugins=plugins)
    plugin_configs = manager._plugin_configs.values()
    assert len(plugin_configs) == 1
    assert set(plugin_configs) == set(list(PluginConfiguration.objects.all()))
コード例 #7
0
def test_manager_calculates_checkout_shipping(checkout_with_item,
                                              discount_info, plugins,
                                              shipping_amount):
    currency = checkout_with_item.get_total().currency
    expected_shipping_price = Money(shipping_amount, currency)
    taxed_shipping_price = ExtensionsManager(
        plugins=plugins).calculate_checkout_shipping(checkout_with_item,
                                                     [discount_info])
    assert (TaxedMoney(expected_shipping_price,
                       expected_shipping_price) == taxed_shipping_price)
コード例 #8
0
def test_manager_serve_list_all_payment_gateways():
    expected_gateways = [
        {
            "name": ActivePaymentGateway.PLUGIN_NAME,
            "config": ActivePaymentGateway.CLIENT_CONFIG,
        },
        {
            "name": InactivePaymentGateway.PLUGIN_NAME,
            "config": []
        },
    ]

    plugins = [
        "tests.extensions.sample_plugins.ActivePaymentGateway",
        "tests.extensions.sample_plugins.InactivePaymentGateway",
    ]
    manager = ExtensionsManager(plugins=plugins)
    assert manager.list_payment_gateways(
        active_only=False) == expected_gateways
コード例 #9
0
def test_plugin_updates_configuration_shape(
    new_config,
    new_config_structure,
    plugin_configuration,
    monkeypatch,
):

    config_structure = PluginSample.CONFIG_STRUCTURE.copy()
    config_structure["Foo"] = new_config_structure
    monkeypatch.setattr(PluginSample, "CONFIG_STRUCTURE", config_structure)

    monkeypatch.setattr(
        PluginSample,
        "DEFAULT_CONFIGURATION",
        plugin_configuration.configuration + [new_config],
    )

    manager = ExtensionsManager(
        plugins=["tests.extensions.sample_plugins.PluginSample"])
    plugin = manager.get_plugin("PluginSample")

    assert len(plugin.configuration) == 5
    assert plugin.configuration[-1] == {**new_config, **new_config_structure}
コード例 #10
0
def test_manager_show_taxes_on_storefront(plugins, show_taxes):
    assert show_taxes == ExtensionsManager(
        plugins=plugins).show_taxes_on_storefront()
コード例 #11
0
def test_manager_get_tax_rate_percentage_value(plugins, amount, product):
    country = Country("PL")
    tax_rate_value = ExtensionsManager(
        plugins=plugins).get_tax_rate_percentage_value(product, country)
    assert tax_rate_value == Decimal(amount)
コード例 #12
0
def test_manager_apply_taxes_to_shipping(shipping_method, address, plugins,
                                         price_amount):
    expected_price = Money(price_amount, "USD")
    taxed_price = ExtensionsManager(plugins=plugins).apply_taxes_to_shipping(
        shipping_method.price, address)
    assert TaxedMoney(expected_price, expected_price) == taxed_price
コード例 #13
0
def test_manager_taxes_are_enabled(plugins, taxes_enabled):
    assert taxes_enabled == ExtensionsManager(
        plugins=plugins).taxes_are_enabled()
コード例 #14
0
def manager_with_plugin_without_configuration_enabled():
    plugins = ["tests.extensions.test_manager.SamplePlugin1"]
    manager = ExtensionsManager(plugins=plugins)
    manager.get_plugin_configuration(plugin_name="Sample Plugin1")
    return manager
コード例 #15
0
def test_manager_uses_get_tax_rate_choices(plugins, tax_rate_list):
    assert (tax_rate_list == ExtensionsManager(
        plugins=plugins).get_tax_rate_type_choices())
コード例 #16
0
def test_manager_calculates_order_line(order_line, plugins, amount):
    currency = order_line.unit_price.currency
    expected_price = Money(amount, currency)
    unit_price = ExtensionsManager(
        plugins=plugins).calculate_order_line_unit(order_line)
    assert expected_price == unit_price.gross
コード例 #17
0
def test_manager_save_plugin_configuration(plugin_configuration):
    plugins = ["tests.extensions.sample_plugins.PluginSample"]
    manager = ExtensionsManager(plugins=plugins)
    manager.save_plugin_configuration("PluginSample", {"active": False})
    plugin_configuration.refresh_from_db()
    assert not plugin_configuration.active
コード例 #18
0
def manager_with_plugin_without_configuration_enabled():
    plugins = ["tests.extensions.sample_plugins.PluginInactive"]
    manager = ExtensionsManager(plugins=plugins)
    manager.get_plugin_configuration(plugin_name="PluginInactive")
    return manager