diff --git a/eopayment/__init__.py b/eopayment/__init__.py index 3f04451..22b5943 100644 --- a/eopayment/__init__.py +++ b/eopayment/__init__.py @@ -232,3 +232,8 @@ class Payment(object): @property def has_free_transaction_id(self): return self.backend.has_free_transaction_id + + def payment_status(self, transaction_id, **kwargs): + if not self.backend.payment_status: + raise NotImplementedError('payment_status is not implemented on this backend') + return self.backend.payment_status(transaction_id=transaction_id, **kwargs) diff --git a/eopayment/common.py b/eopayment/common.py index b69d004..4d59229 100644 --- a/eopayment/common.py +++ b/eopayment/common.py @@ -185,6 +185,8 @@ class PaymentCommon(object): amount = amount.to_integral_value(ROUND_DOWN) return str(amount) + payment_status = None + class Form(object): def __init__(self, url, method, fields, encoding='utf-8', diff --git a/tests/test_base_payment.py b/tests/test_base_payment.py index d96f99f..5d85462 100644 --- a/tests/test_base_payment.py +++ b/tests/test_base_payment.py @@ -20,10 +20,11 @@ import mock import pytest import eopayment +from eopayment.common import PaymentCommon def do_mock_backend(monkeypatch): - class MockBackend(object): + class MockBackend(PaymentCommon): request = mock.Mock() description = { @@ -107,3 +108,10 @@ def test_get_parameters(monkeypatch): transaction_parameters = payment.get_parameters(scope='transaction') assert len(transaction_parameters) == 1 assert transaction_parameters[0]['name'] == 'manual_validation' + + +def test_payment_status(monkeypatch): + _, payment = do_mock_backend(monkeypatch) + + with pytest.raises(NotImplementedError): + payment.payment_status('whatever')