aboutsummaryrefslogtreecommitdiffstats
path: root/brevisurl/tests/backends/test_local.py
diff options
context:
space:
mode:
authorVladimir Gorej2012-06-20 19:13:59 +0200
committerVladimir Gorej2012-06-20 19:13:59 +0200
commit70f64df91904fb4e9ead44c45028b73a14e8030d (patch)
treef06e7c2eae366cf5c9e04051a68355f496ca3feb /brevisurl/tests/backends/test_local.py
parent40e23932731599d5cfe02ee41a240306221d26f0 (diff)
downloaddjango-brevisurl-70f64df91904fb4e9ead44c45028b73a14e8030d.tar.bz2
Issue #7; configurable token characters
Diffstat (limited to 'brevisurl/tests/backends/test_local.py')
-rw-r--r--brevisurl/tests/backends/test_local.py26
1 files changed, 25 insertions, 1 deletions
diff --git a/brevisurl/tests/backends/test_local.py b/brevisurl/tests/backends/test_local.py
index 86565d2..39ab8c1 100644
--- a/brevisurl/tests/backends/test_local.py
+++ b/brevisurl/tests/backends/test_local.py
@@ -5,6 +5,7 @@ from django.core.validators import URLValidator
import brevisurl.settings
from brevisurl import get_connection
from brevisurl.models import ShortUrl
+from brevisurl.backends.local import TokensExhaustedError
class TestLocalBrevisUrlBackend(TestCase):
@@ -63,4 +64,27 @@ class TestLocalBrevisUrlBackend(TestCase):
def test_shorten_url_invalid_original_url_fail_silently(self):
self.connection.fail_silently = True
shorl_url = self.connection.shorten_url('www.codescale.')
- self.assertIsNone(shorl_url) \ No newline at end of file
+ self.assertIsNone(shorl_url)
+
+ def test_configurable_token_chars(self):
+ original_url = 'http://www.codescale.net/'
+ _default_chars = brevisurl.settings.LOCAL_BACKEND_TOKEN_CHARS
+ brevisurl.settings.LOCAL_BACKEND_TOKEN_CHARS = ['a']
+ self.assertEqual(ShortUrl.objects.all().count(), 0)
+ 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'/aaaaa$')
+ brevisurl.settings.LOCAL_BACKEND_TOKEN_CHARS = _default_chars
+
+ def test_exhausted_tokens(self):
+ original_url = 'http://www.codescale.net/'
+ _default_chars = brevisurl.settings.LOCAL_BACKEND_TOKEN_CHARS
+ brevisurl.settings.LOCAL_BACKEND_TOKEN_CHARS = ['a']
+ self.assertEqual(ShortUrl.objects.all().count(), 0)
+ short_url = self.connection.shorten_url(original_url)
+ self.assertEqual(ShortUrl.objects.all().count(), 1)
+ with self.assertRaises(TokensExhaustedError):
+ original_url = 'http://www.codescale.net/another/'
+ short_url = self.connection.shorten_url(original_url)
+ brevisurl.settings.LOCAL_BACKEND_TOKEN_CHARS = _default_chars \ No newline at end of file