From 178d820541e874fe9913080c5125876b9c0b82ca Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Wed, 20 Jun 2012 20:49:43 +0200 Subject: Issue #5; Configure protocol of local backend via settings --- brevisurl/tests/backends/test_local.py | 23 +++++++++++++++++++++- brevisurl/tests/templatetags/test_brevisurltags.py | 4 +++- brevisurl/tests/test_models.py | 7 +++++-- brevisurl/tests/test_views.py | 3 ++- 4 files changed, 32 insertions(+), 5 deletions(-) (limited to 'brevisurl/tests') diff --git a/brevisurl/tests/backends/test_local.py b/brevisurl/tests/backends/test_local.py index 620b9a4..ebf27e8 100644 --- a/brevisurl/tests/backends/test_local.py +++ b/brevisurl/tests/backends/test_local.py @@ -14,6 +14,7 @@ class TestLocalBrevisUrlBackend(TestCase): self.connection = get_connection('brevisurl.backends.local.BrevisUrlBackend') def test_shorten_url_use_site_framework(self): + _original_domain = brevisurl.settings.LOCAL_BACKEND_DOMAIN brevisurl.settings.LOCAL_BACKEND_DOMAIN = None self.assertEqual(ShortUrl.objects.all().count(), 0) original_url = 'http://www.codescale.net/' @@ -21,15 +22,18 @@ class TestLocalBrevisUrlBackend(TestCase): self.assertEqual(ShortUrl.objects.all().count(), 1) self.assertEqual(short_url.original_url, original_url) self.assertRegexpMatches(short_url.shortened_url, URLValidator.regex) + brevisurl.settings.LOCAL_BACKEND_DOMAIN = _original_domain def test_shorten_url_domain_from_settings(self): self.assertEqual(ShortUrl.objects.all().count(), 0) + _original_domain = brevisurl.settings.LOCAL_BACKEND_DOMAIN brevisurl.settings.LOCAL_BACKEND_DOMAIN = 'http://brevisurl.net/' original_url = 'http://www.codescale.net/' short_url = self.connection.shorten_url(original_url) self.assertEqual(ShortUrl.objects.all().count(), 1) self.assertEqual(short_url.original_url, original_url) self.assertRegexpMatches(short_url.shortened_url, r'^http://brevisurl\.net/[a-zA-Z0-9]{5}$') + brevisurl.settings.LOCAL_BACKEND_DOMAIN = _original_domain def test_shorten_url_reuse_old(self): original_url = 'http://www.codescale.net/' @@ -95,4 +99,21 @@ class TestLocalBrevisUrlBackend(TestCase): self.assertEqual(ShortUrl.objects.all().count(), 0) short_url = connection.shorten_url(original_url) self.assertEqual(ShortUrl.objects.all().count(), 1) - self.assertRegexpMatches(short_url.shortened_url, r'^http://test\.com/.{5}') \ No newline at end of file + self.assertRegexpMatches(short_url.shortened_url, r'^http://test\.com/.{5}') + + def test_configurable_protocol(self): + _original_domain = brevisurl.settings.LOCAL_BACKEND_DOMAIN + brevisurl.settings.LOCAL_BACKEND_DOMAIN = None + original_url = 'http://www.codescale.net/' + self.assertEqual(ShortUrl.objects.all().count(), 0) + short_url = self.connection.shorten_url(original_url) + self.assertEqual(ShortUrl.objects.all().count(), 1) + self.assertRegexpMatches(short_url.shortened_url, '^http://') + original_url = 'http://www.codescale.net/another' + _default_protocol = brevisurl.settings.LOCAL_BACKEND_DOMAIN_PROTOCOL + brevisurl.settings.LOCAL_BACKEND_DOMAIN_PROTOCOL = 'https' + short_url = self.connection.shorten_url(original_url) + self.assertEqual(ShortUrl.objects.all().count(), 2) + self.assertRegexpMatches(short_url.shortened_url, '^https://') + brevisurl.settings.LOCAL_BACKEND_DOMAIN_PROTOCOL = _default_protocol + brevisurl.settings.LOCAL_BACKEND_DOMAIN = None \ No newline at end of file diff --git a/brevisurl/tests/templatetags/test_brevisurltags.py b/brevisurl/tests/templatetags/test_brevisurltags.py index b4c7c56..808dc2d 100644 --- a/brevisurl/tests/templatetags/test_brevisurltags.py +++ b/brevisurl/tests/templatetags/test_brevisurltags.py @@ -38,6 +38,7 @@ class TestShortenUrlTag(TestCase): def test_absurl_tag_domain_from_settings(self): + _original_domain = brevisurl.settings.LOCAL_BACKEND_DOMAIN brevisurl.settings.LOCAL_BACKEND_DOMAIN = 'http://brevisurl.net/' url = Template(""" {% load brevisurltags %} @@ -46,4 +47,5 @@ class TestShortenUrlTag(TestCase): """).render(Context()).strip() self.assertEqual(ShortUrl.objects.all().count(), 1) self.assertRegexpMatches(url, URLValidator.regex) - self.assertRegexpMatches(url, r'^http://brevisurl\.net/[a-zA-Z0-9]{5}$') \ No newline at end of file + self.assertRegexpMatches(url, r'^http://brevisurl\.net/[a-zA-Z0-9]{5}$') + brevisurl.settings.LOCAL_BACKEND_DOMAIN = _original_domain \ No newline at end of file diff --git a/brevisurl/tests/test_models.py b/brevisurl/tests/test_models.py index 6942124..9a843f1 100644 --- a/brevisurl/tests/test_models.py +++ b/brevisurl/tests/test_models.py @@ -2,6 +2,7 @@ from django.core.exceptions import ValidationError from django.test import TestCase from django.contrib.sites.models import Site +import brevisurl.settings from brevisurl.models import ShortUrl from brevisurl import get_connection @@ -13,7 +14,8 @@ class TestModels(TestCase): connection = get_connection('brevisurl.backends.local.BrevisUrlBackend') short_url = ShortUrl() short_url.original_url = 'http://www.codescale.net/' - short_url.shortened_url = '{0}://{1}/12345'.format(connection.PROTOCOL, site.domain) + short_url.shortened_url = '{0}://{1}/12345'.format(brevisurl.settings.LOCAL_BACKEND_DOMAIN_PROTOCOL, + site.domain) short_url.backend = connection.class_path short_url.save() self.assertIsNotNone(short_url.pk) @@ -24,7 +26,8 @@ class TestModels(TestCase): self.connection = get_connection('brevisurl.backends.local.BrevisUrlBackend') self.short_url = ShortUrl() self.short_url.original_url = 'www.codescale.' - self.short_url.shortened_url = '{0}://{1}/12345'.format(self.connection.PROTOCOL, self.site.domain) + self.short_url.shortened_url = '{0}://{1}/12345'.format(brevisurl.settings.LOCAL_BACKEND_DOMAIN_PROTOCOL, + self.site.domain) self.short_url.backend = self.connection.class_path self.short_url.save() diff --git a/brevisurl/tests/test_views.py b/brevisurl/tests/test_views.py index ec46911..b943a1d 100644 --- a/brevisurl/tests/test_views.py +++ b/brevisurl/tests/test_views.py @@ -17,7 +17,8 @@ class TestBrevisUrlRedirectView(TestCase): self.connection = get_connection('brevisurl.backends.local.BrevisUrlBackend') self.short_url = ShortUrl() self.short_url.original_url = 'http://www.codescale.net/' - self.short_url.shortened_url = '{0}://{1}/12345'.format(self.connection.PROTOCOL, self.site.domain) + self.short_url.shortened_url = '{0}://{1}/12345'.format(brevisurl.settings.LOCAL_BACKEND_DOMAIN_PROTOCOL, + self.site.domain) self.short_url.backend = self.connection.class_path self.short_url.save() self.client = Client() -- cgit v1.2.3