Refs #99 -- Improve support for currencies with less than 2 decimal places (#783)

* Refs #99 -- Fix stripe support for zero-decimal currencies

* Add new money formatting method

* Force decimal places in many places

* Locale-aware currency rendering

* Fix currencies in more places

* More currency fixes
This commit is contained in:
Raphael Michel
2018-02-26 10:46:07 +01:00
committed by GitHub
parent 29e22a0c6c
commit 3c3e59e932
49 changed files with 467 additions and 211 deletions

View File

@@ -77,6 +77,36 @@ def test_perform_success(env, factory, monkeypatch):
assert order.status == Order.STATUS_PAID
@pytest.mark.django_db
def test_perform_success_zero_decimal_currency(env, factory, monkeypatch):
event, order = env
event.currency = 'JPY'
event.save()
def charge_create(**kwargs):
assert kwargs['amount'] == 13
assert kwargs['currency'] == 'jpy'
assert kwargs['source'] == 'tok_189fTT2eZvKYlo2CvJKzEzeu'
c = MockedCharge()
c.status = 'succeeded'
c.paid = True
return c
monkeypatch.setattr("stripe.Charge.create", charge_create)
prov = StripeCC(event)
req = factory.post('/', {
'stripe_token': 'tok_189fTT2eZvKYlo2CvJKzEzeu',
'stripe_last4': '4242',
'stripe_brand': 'Visa'
})
req.session = {}
prov.checkout_prepare(req, {})
assert 'payment_stripe_token' in req.session
prov.payment_perform(req, order)
order.refresh_from_db()
assert order.status == Order.STATUS_PAID
@pytest.mark.django_db
def test_perform_card_error(env, factory, monkeypatch):
event, order = env