diff options
| author | Vladimir Gorej | 2012-05-27 20:14:17 +0200 | 
|---|---|---|
| committer | Vladimir Gorej | 2012-05-27 20:14:17 +0200 | 
| commit | 4bd7b72aa0ca3a09ab99e1a3b41753df81de6af9 (patch) | |
| tree | 6328ed9894666eefc1f0d6b6c7b28a87b1fb4d31 /brevisurl/tests/backends | |
| download | django-brevisurl-4bd7b72aa0ca3a09ab99e1a3b41753df81de6af9.tar.bz2 | |
Initial commit
Diffstat (limited to 'brevisurl/tests/backends')
| -rw-r--r-- | brevisurl/tests/backends/__init__.py | 1 | ||||
| -rw-r--r-- | brevisurl/tests/backends/test_local.py | 55 | 
2 files changed, 56 insertions, 0 deletions
| diff --git a/brevisurl/tests/backends/__init__.py b/brevisurl/tests/backends/__init__.py new file mode 100644 index 0000000..7a8337f --- /dev/null +++ b/brevisurl/tests/backends/__init__.py @@ -0,0 +1 @@ +__author__ = 'char0n' diff --git a/brevisurl/tests/backends/test_local.py b/brevisurl/tests/backends/test_local.py new file mode 100644 index 0000000..8939314 --- /dev/null +++ b/brevisurl/tests/backends/test_local.py @@ -0,0 +1,55 @@ +from django.core.exceptions import ValidationError +from django.test import TestCase +from django.core.validators import URLValidator + +from brevisurl import get_connection +from brevisurl.models import ShortUrl + + +class TestLocalBrevisUrlBackend(TestCase): + +    def setUp(self): +        self.connection = get_connection('brevisurl.backends.local.BrevisUrlBackend') + +    def test_shorten_url(self): +        self.assertEqual(ShortUrl.objects.all().count(), 0) +        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, URLValidator.regex) + +    def test_shorten_url_reuse_old(self): +        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.assertEqual(short_url.original_url, original_url) +        self.assertRegexpMatches(short_url.shortened_url, URLValidator.regex) +        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, URLValidator.regex) + +    def test_shorten_url_create_new(self): +        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.assertEqual(short_url.original_url, original_url) +        self.assertRegexpMatches(short_url.shortened_url, URLValidator.regex) +        original_url = 'http://www.codescale.net/en/company/' +        short_url = self.connection.shorten_url(original_url) +        self.assertEqual(ShortUrl.objects.all().count(), 2) +        self.assertEqual(short_url.original_url, original_url) +        self.assertRegexpMatches(short_url.shortened_url, URLValidator.regex) + +    def test_shorten_url_invalid_original_url(self): +        with self.assertRaises(ValidationError): +            self.connection.shorten_url('www.codescale.') +        self.assertEqual(ShortUrl.objects.all().count(), 0) + +    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 | 
