summaryrefslogtreecommitdiff
path: root/tests/max_lengths
diff options
context:
space:
mode:
authorFlorian Apolloner <florian@apolloner.eu>2013-02-26 09:53:47 +0100
committerFlorian Apolloner <florian@apolloner.eu>2013-02-26 14:36:57 +0100
commit89f40e36246100df6a11316c31a76712ebc6c501 (patch)
tree6e65639683ddaf2027908d1ecb1739e0e2ff853b /tests/max_lengths
parentb3d2ccb5bfbaf6e7fe1f98843baaa48c35a70950 (diff)
Merged regressiontests and modeltests into the test root.
Diffstat (limited to 'tests/max_lengths')
-rw-r--r--tests/max_lengths/__init__.py1
-rw-r--r--tests/max_lengths/models.py14
-rw-r--r--tests/max_lengths/tests.py39
3 files changed, 54 insertions, 0 deletions
diff --git a/tests/max_lengths/__init__.py b/tests/max_lengths/__init__.py
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/tests/max_lengths/__init__.py
@@ -0,0 +1 @@
+
diff --git a/tests/max_lengths/models.py b/tests/max_lengths/models.py
new file mode 100644
index 0000000000..d66e833e8c
--- /dev/null
+++ b/tests/max_lengths/models.py
@@ -0,0 +1,14 @@
+from django.db import models
+
+
+class PersonWithDefaultMaxLengths(models.Model):
+ email = models.EmailField()
+ vcard = models.FileField(upload_to='/tmp')
+ homepage = models.URLField()
+ avatar = models.FilePathField()
+
+class PersonWithCustomMaxLengths(models.Model):
+ email = models.EmailField(max_length=250)
+ vcard = models.FileField(upload_to='/tmp', max_length=250)
+ homepage = models.URLField(max_length=250)
+ avatar = models.FilePathField(max_length=250)
diff --git a/tests/max_lengths/tests.py b/tests/max_lengths/tests.py
new file mode 100644
index 0000000000..9dfcabff45
--- /dev/null
+++ b/tests/max_lengths/tests.py
@@ -0,0 +1,39 @@
+from __future__ import absolute_import
+
+from django.utils import unittest
+
+from .models import PersonWithDefaultMaxLengths, PersonWithCustomMaxLengths
+
+
+class MaxLengthArgumentsTests(unittest.TestCase):
+
+ def verify_max_length(self, model,field,length):
+ self.assertEqual(model._meta.get_field(field).max_length,length)
+
+ def test_default_max_lengths(self):
+ self.verify_max_length(PersonWithDefaultMaxLengths, 'email', 75)
+ self.verify_max_length(PersonWithDefaultMaxLengths, 'vcard', 100)
+ self.verify_max_length(PersonWithDefaultMaxLengths, 'homepage', 200)
+ self.verify_max_length(PersonWithDefaultMaxLengths, 'avatar', 100)
+
+ def test_custom_max_lengths(self):
+ self.verify_max_length(PersonWithCustomMaxLengths, 'email', 250)
+ self.verify_max_length(PersonWithCustomMaxLengths, 'vcard', 250)
+ self.verify_max_length(PersonWithCustomMaxLengths, 'homepage', 250)
+ self.verify_max_length(PersonWithCustomMaxLengths, 'avatar', 250)
+
+class MaxLengthORMTests(unittest.TestCase):
+
+ def test_custom_max_lengths(self):
+ args = {
+ "email": "someone@example.com",
+ "vcard": "vcard",
+ "homepage": "http://example.com/",
+ "avatar": "me.jpg"
+ }
+
+ for field in ("email", "vcard", "homepage", "avatar"):
+ new_args = args.copy()
+ new_args[field] = "X" * 250 # a value longer than any of the default fields could hold.
+ p = PersonWithCustomMaxLengths.objects.create(**new_args)
+ self.assertEqual(getattr(p, field), ("X" * 250)) \ No newline at end of file