diff options
author | Krzysztof Wolski <krzysztof.k.wolski@gmail.com> | 2017-02-07 16:06:43 +0100 |
---|---|---|
committer | Krzysztof Wolski <krzysztof.k.wolski@gmail.com> | 2017-02-07 16:06:43 +0100 |
commit | a211a6b66be9c2c7612d43d9221aa46882736953 (patch) | |
tree | 35ca4f2646cc7aa7d12b62ebc7dd7a507ce69d21 /payments | |
parent | e68689540cd87163af7016ba2eb2e2cad07b8c80 (diff) | |
download | django-payments-taler-a211a6b66be9c2c7612d43d9221aa46882736953.tar.gz django-payments-taler-a211a6b66be9c2c7612d43d9221aa46882736953.tar.bz2 django-payments-taler-a211a6b66be9c2c7612d43d9221aa46882736953.zip |
Changed get_base_url
Diffstat (limited to 'payments')
-rw-r--r-- | payments/core.py | 18 | ||||
-rw-r--r-- | payments/test_core.py | 20 |
2 files changed, 23 insertions, 15 deletions
diff --git a/payments/core.py b/payments/core.py index 1a6e1da..e81bfab 100644 --- a/payments/core.py +++ b/payments/core.py @@ -7,7 +7,6 @@ except ImportError: from urlparse import urljoin from django.conf import settings from django.core.exceptions import ImproperlyConfigured -from django.utils.module_loading import import_string PAYMENT_VARIANTS = { @@ -27,21 +26,18 @@ def get_base_url(): """ Returns host url according to project settings. Protocol is chosen by checking PAYMENT_USES_SSL variable. - If PAYMENT_HOST is not specified, gets domain from Sites. Otherwise, - checks if it's callable and returns it's result. If there is no function - treats it as domain. + If PAYMENT_HOST is not specified, gets domain from Sites. + Otherwise checks if it's callable and returns it's result. If it's not a + callable treats it as domain. """ protocol = 'https' if PAYMENT_USES_SSL else 'http' if not PAYMENT_HOST: current_site = Site.objects.get_current() - return '%s://%s' % (protocol, current_site.domain) - - try: - function = import_string(PAYMENT_HOST) - except ImportError: - domain = PAYMENT_HOST + domain = current_site.domain + elif callable(PAYMENT_HOST): + domain = PAYMENT_HOST() else: - domain = function() + domain = PAYMENT_HOST return '%s://%s' % (protocol, domain) diff --git a/payments/test_core.py b/payments/test_core.py index 88c91dd..ff43878 100644 --- a/payments/test_core.py +++ b/payments/test_core.py @@ -1,20 +1,32 @@ from __future__ import unicode_literals from decimal import Decimal from unittest import TestCase -from mock import patch +from mock import patch, NonCallableMock -from .core import provider_factory +from payments import core from .forms import CreditCardPaymentFormWithName, PaymentForm from .models import BasePayment +class TestHelpers(TestCase): + @patch('payments.core.PAYMENT_HOST', new_callable=NonCallableMock) + def test_text_get_base_url(self, host): + host.__str__ = lambda x: "example.com/string" + self.assertEqual(core.get_base_url(), "https://example.com/string") + + @patch('payments.core.PAYMENT_HOST') + def test_callable_get_base_url(self, host): + host.return_value = "example.com/callable" + self.assertEqual(core.get_base_url(), "https://example.com/callable") + + class TestProviderFactory(TestCase): def test_provider_factory(self): - provider_factory('default') + core.provider_factory('default') def test_provider_does_not_exist(self): - self.assertRaises(ValueError, provider_factory, 'fake_provider') + self.assertRaises(ValueError, core.provider_factory, 'fake_provider') class TestBasePayment(TestCase): |