|
@@ -8,7 +8,8 @@ from django.test import TestCase
|
|
|
|
|
|
from .models import (
|
|
|
CustomPKModel, FlexibleDatePost, ModelToValidate, Post, UniqueErrorsModel,
|
|
|
- UniqueFieldsModel, UniqueForDateModel, UniqueTogetherModel,
|
|
|
+ UniqueFieldsModel, UniqueForDateModel, UniqueFuncConstraintModel,
|
|
|
+ UniqueTogetherModel,
|
|
|
)
|
|
|
|
|
|
|
|
@@ -86,6 +87,13 @@ class GetUniqueCheckTests(unittest.TestCase):
|
|
|
), m._get_unique_checks(exclude='start_date')
|
|
|
)
|
|
|
|
|
|
+ def test_func_unique_constraint_ignored(self):
|
|
|
+ m = UniqueFuncConstraintModel()
|
|
|
+ self.assertEqual(
|
|
|
+ m._get_unique_checks(),
|
|
|
+ ([(UniqueFuncConstraintModel, ('id',))], []),
|
|
|
+ )
|
|
|
+
|
|
|
|
|
|
class PerformUniqueChecksTest(TestCase):
|
|
|
def test_primary_key_unique_check_not_performed_when_adding_and_pk_not_specified(self):
|
|
@@ -108,6 +116,10 @@ class PerformUniqueChecksTest(TestCase):
|
|
|
mtv = ModelToValidate(number=10, name='Some Name')
|
|
|
mtv.full_clean()
|
|
|
|
|
|
+ def test_func_unique_check_not_performed(self):
|
|
|
+ with self.assertNumQueries(0):
|
|
|
+ UniqueFuncConstraintModel(field='some name').full_clean()
|
|
|
+
|
|
|
def test_unique_for_date(self):
|
|
|
Post.objects.create(
|
|
|
title="Django 1.0 is released", slug="Django 1.0",
|