Merged test-unique-nullable-fields branch into master.

This commit is contained in:
Dirk Eschler 2013-06-18 11:09:14 +02:00
commit cc5687e4d0
3 changed files with 23 additions and 2 deletions

View file

@ -13,6 +13,7 @@ from django.core.exceptions import ValidationError, ImproperlyConfigured
from django.core.files.base import ContentFile
from django.core.files.storage import default_storage
from django.core.management import call_command
from django.db import IntegrityError
from django.db.models import Q, F
from django.db.models.loading import AppCache
from django.test import TestCase
@ -37,7 +38,7 @@ from modeltranslation.utils import (build_css_class, build_localized_fieldname,
request = None
# How many models are registered for tests.
TEST_MODELS = 25
TEST_MODELS = 26
class reload_override_settings(override_settings):
@ -449,6 +450,17 @@ class ModeltranslationTest(ModeltranslationTestBase):
)
self._test_constructor(keywords)
def test_unique_nullable_field(self):
models.UniqueNullableModel.objects.create()
models.UniqueNullableModel.objects.create()
models.UniqueNullableModel.objects.create(title=None)
models.UniqueNullableModel.objects.create(title=None)
models.UniqueNullableModel.objects.create(title='')
self.assertRaises(IntegrityError, models.UniqueNullableModel.objects.create, title='')
models.UniqueNullableModel.objects.create(title='foo')
self.assertRaises(IntegrityError, models.UniqueNullableModel.objects.create, title='foo')
class FallbackTests(ModeltranslationTestBase):
test_fallback = {

View file

@ -16,6 +16,10 @@ class TestModel(models.Model):
email = models.EmailField(blank=True, null=True)
class UniqueNullableModel(models.Model):
title = models.CharField(null=True, unique=True, max_length=255)
########## Proxy model testing
class ProxyTestModel(TestModel):

View file

@ -7,7 +7,7 @@ from modeltranslation.tests.models import (
DescriptorModel, AbstractModelA, AbstractModelB, Slugged, MetaData, Displayable, Page,
RichText, RichTextPage, MultitableModelA, MultitableModelB, MultitableModelC, ManagerTestModel,
CustomManagerTestModel, CustomManager2TestModel, GroupFieldsetsModel, NameModel,
ThirdPartyRegisteredModel, ProxyTestModel)
ThirdPartyRegisteredModel, ProxyTestModel, UniqueNullableModel)
class TestTranslationOptions(TranslationOptions):
@ -15,6 +15,11 @@ class TestTranslationOptions(TranslationOptions):
translator.register(TestModel, TestTranslationOptions)
class UniqueNullableTranslationOptions(TranslationOptions):
fields = ('title',)
translator.register(UniqueNullableModel, UniqueNullableTranslationOptions)
########## Proxy model testing
class ProxyTestTranslationOptions(TranslationOptions):