summaryrefslogtreecommitdiff
path: root/tests/validators
diff options
context:
space:
mode:
authorDanilo Bargen <mail@dbrgn.ch>2014-11-03 18:00:18 +0100
committerTim Graham <timograham@gmail.com>2014-11-03 13:02:11 -0500
commit8b77b64f1cf878b100d1d2001c8a73938ea3e1ed (patch)
treef9892791a15c319cd1ccc25bb74d70dee68019ae /tests/validators
parentebc8e79cf3bdd42a99e91d6e679248d07097d3db (diff)
downloaddjango-8b77b64f1cf878b100d1d2001c8a73938ea3e1ed.tar.gz
Refactored URLValidator tests by moving URLs to text files.
Diffstat (limited to 'tests/validators')
-rw-r--r--tests/validators/invalid_urls.txt12
-rw-r--r--tests/validators/tests.py48
-rw-r--r--tests/validators/valid_urls.txt16
3 files changed, 46 insertions, 30 deletions
diff --git a/tests/validators/invalid_urls.txt b/tests/validators/invalid_urls.txt
new file mode 100644
index 0000000000..37c34776d0
--- /dev/null
+++ b/tests/validators/invalid_urls.txt
@@ -0,0 +1,12 @@
+foo
+http://
+http://example
+http://example.
+http://.com
+http://invalid-.com
+http://-invalid.com
+http://invalid.com-
+http://inv-.alid-.com
+http://inv-.-alid.com
+file://localhost/path
+git://example.com/
diff --git a/tests/validators/tests.py b/tests/validators/tests.py
index cb552619b4..3e434910d8 100644
--- a/tests/validators/tests.py
+++ b/tests/validators/tests.py
@@ -2,6 +2,8 @@
from __future__ import unicode_literals
from datetime import datetime, timedelta
+import io
+import os
import re
import types
from unittest import TestCase
@@ -16,12 +18,13 @@ from django.core.validators import (
)
from django.test import SimpleTestCase
from django.test.utils import str_prefix
+from django.utils._os import upath
NOW = datetime.now()
EXTENDED_SCHEMES = ['http', 'https', 'ftp', 'ftps', 'git', 'file']
-TEST_DATA = (
+TEST_DATA = [
# (validator, value, expected),
(validate_integer, '42', None),
(validate_integer, '-42', None),
@@ -153,37 +156,9 @@ TEST_DATA = (
(MinLengthValidator(10), '', ValidationError),
- (URLValidator(), 'http://www.djangoproject.com/', None),
- (URLValidator(), 'HTTP://WWW.DJANGOPROJECT.COM/', None),
- (URLValidator(), 'http://localhost/', None),
- (URLValidator(), 'http://example.com/', None),
- (URLValidator(), 'http://www.example.com/', None),
- (URLValidator(), 'http://www.example.com:8000/test', None),
- (URLValidator(), 'http://valid-with-hyphens.com/', None),
- (URLValidator(), 'http://subdomain.example.com/', None),
- (URLValidator(), 'http://200.8.9.10/', None),
- (URLValidator(), 'http://200.8.9.10:8000/test', None),
- (URLValidator(), 'http://valid-----hyphens.com/', None),
- (URLValidator(), 'http://example.com?something=value', None),
- (URLValidator(), 'http://example.com/index.php?something=value&another=value2', None),
- (URLValidator(), 'https://example.com/', None),
- (URLValidator(), 'ftp://example.com/', None),
- (URLValidator(), 'ftps://example.com/', None),
(URLValidator(EXTENDED_SCHEMES), 'file://localhost/path', None),
(URLValidator(EXTENDED_SCHEMES), 'git://example.com/', None),
- (URLValidator(), 'foo', ValidationError),
- (URLValidator(), 'http://', ValidationError),
- (URLValidator(), 'http://example', ValidationError),
- (URLValidator(), 'http://example.', ValidationError),
- (URLValidator(), 'http://.com', ValidationError),
- (URLValidator(), 'http://invalid-.com', ValidationError),
- (URLValidator(), 'http://-invalid.com', ValidationError),
- (URLValidator(), 'http://invalid.com-', ValidationError),
- (URLValidator(), 'http://inv-.alid-.com', ValidationError),
- (URLValidator(), 'http://inv-.-alid.com', ValidationError),
- (URLValidator(), 'file://localhost/path', ValidationError),
- (URLValidator(), 'git://example.com/', ValidationError),
(URLValidator(EXTENDED_SCHEMES), 'git://-invalid.com', ValidationError),
(BaseValidator(True), True, None),
@@ -208,7 +183,20 @@ TEST_DATA = (
(RegexValidator('x', flags=re.IGNORECASE), 'y', ValidationError),
(RegexValidator('a'), 'A', ValidationError),
(RegexValidator('a', flags=re.IGNORECASE), 'A', None),
-)
+]
+
+
+def create_path(filename):
+ return os.path.abspath(os.path.join(os.path.dirname(upath(__file__)), filename))
+
+# Add valid and invalid URL tests.
+# This only tests the validator without extended schemes.
+with io.open(create_path('valid_urls.txt'), encoding='utf8') as f:
+ for url in f:
+ TEST_DATA.append((URLValidator(), url.strip(), None))
+with io.open(create_path('invalid_urls.txt'), encoding='utf8') as f:
+ for url in f:
+ TEST_DATA.append((URLValidator(), url.strip(), ValidationError))
def create_simple_test_method(validator, expected, value, num):
diff --git a/tests/validators/valid_urls.txt b/tests/validators/valid_urls.txt
new file mode 100644
index 0000000000..9f1519c84f
--- /dev/null
+++ b/tests/validators/valid_urls.txt
@@ -0,0 +1,16 @@
+http://www.djangoproject.com/
+HTTP://WWW.DJANGOPROJECT.COM/
+http://localhost/
+http://example.com/
+http://www.example.com/
+http://www.example.com:8000/test
+http://valid-with-hyphens.com/
+http://subdomain.example.com/
+http://200.8.9.10/
+http://200.8.9.10:8000/test
+http://su--b.valid-----hyphens.com/
+http://example.com?something=value
+http://example.com/index.php?something=value&another=value2
+https://example.com/
+ftp://example.com/
+ftps://example.com/