From 7f830fcfc18ce890c08d664554904cdb7a40ec22 Mon Sep 17 00:00:00 2001 From: Marc-Olivier Titeux Date: Thu, 17 Oct 2013 10:24:04 +0200 Subject: Added tests for length original url --- brevisurl/tests/test_models.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/brevisurl/tests/test_models.py b/brevisurl/tests/test_models.py index 9a843f1..890ab36 100644 --- a/brevisurl/tests/test_models.py +++ b/brevisurl/tests/test_models.py @@ -1,3 +1,5 @@ +from random import sample + from django.core.exceptions import ValidationError from django.test import TestCase from django.contrib.sites.models import Site @@ -6,6 +8,10 @@ import brevisurl.settings from brevisurl.models import ShortUrl from brevisurl import get_connection +def _random_string(k): + """Generate a string of length k ascii letters randomly""" + return ''.join(random.choice(string.ascii_letters) for x in xrange(k)) + class TestModels(TestCase): @@ -25,12 +31,25 @@ class TestModels(TestCase): self.site = Site.objects.get_current() self.connection = get_connection('brevisurl.backends.local.BrevisUrlBackend') self.short_url = ShortUrl() - self.short_url.original_url = 'www.codescale.' + self.short_url.original_url = 'www.codescale{0}.' 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() + def test_model_save_too_long_original_url(self): + with self.assertRaises(ValidationError): + self.site = Site.objects.get_current() + self.connection = get_connection('brevisurl.backends.local.BrevisUrlBackend') + self.short_url = ShortUrl() + self.short_url.original_url = 'www.codescale{0}.com'.format(_random_string( + brevisurl.settings.LOCAL_BACKEND_ORIGINAL_URL_MAX_LENGTH + 1)) + 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() + + def test_model_save_invalid_shortened_url(self): with self.assertRaises(ValidationError): connection = get_connection('brevisurl.backends.local.BrevisUrlBackend') @@ -38,4 +57,4 @@ class TestModels(TestCase): short_url.original_url = 'http://www.codescale.net/' short_url.shortened_url = 'www.codescale.' short_url.backend = connection.class_path - short_url.save() \ No newline at end of file + short_url.save() -- cgit v1.2.3