aboutsummaryrefslogtreecommitdiffstats
path: root/brevisurl/tests/backends/test_local.py
diff options
context:
space:
mode:
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