From 70f64df91904fb4e9ead44c45028b73a14e8030d Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Wed, 20 Jun 2012 19:13:59 +0200 Subject: Issue #7; configurable token characters --- brevisurl/tests/backends/test_local.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'brevisurl/tests') 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 -- cgit v1.2.3