forked from saleor/saleor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_shipping.py
44 lines (34 loc) · 1.64 KB
/
test_shipping.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from unittest.mock import Mock
import pytest
from prices import Money, TaxedMoney
from saleor.core.utils import format_money
from saleor.shipping.utils import get_taxed_shipping_price
@pytest.mark.parametrize('price, charge_taxes, expected_price', [
(Money(10, 'USD'), False, TaxedMoney(
net=Money(10, 'USD'), gross=Money(10, 'USD'))),
(Money(10, 'USD'), True, TaxedMoney(
net=Money('8.13', 'USD'), gross=Money(10, 'USD')))])
def test_get_taxed_shipping_price(
site_settings, vatlayer, price, charge_taxes, expected_price):
site_settings.charge_taxes_on_shipping = charge_taxes
site_settings.save()
shipping_price = get_taxed_shipping_price(price, taxes=vatlayer)
assert shipping_price == expected_price
def test_shipping_get_total_price(monkeypatch, shipping_method, vatlayer):
method = shipping_method.price_per_country.get()
price = Money(10, 'USD')
taxed_price = TaxedMoney(
net=Money('8.13', 'USD'), gross=Money(10, 'USD'))
mock_get_price = Mock(return_value=taxed_price)
monkeypatch.setattr(
'saleor.shipping.models.get_taxed_shipping_price', mock_get_price)
method.get_total_price(taxes=vatlayer)
mock_get_price.assert_called_once_with(price, vatlayer)
def test_shipping_get_ajax_label(shipping_method):
method = shipping_method.price_per_country.get()
label = method.get_ajax_label()
proper_label = '%(shipping_method)s %(country_code_display)s %(price)s' % {
'shipping_method': method.shipping_method,
'country_code_display': method.get_country_code_display(),
'price': format_money(method.price)}
assert label == proper_label