Тесты Django не вызывают ошибку целостности для CharField
Если есть следующая модель Django (1.4):
from django.db import models
class SimpleModel(models.Model):
name = models.CharField(max_length=100)
И этот простой тест:
from django.test import TestCase
from models import SimpleModel
from django.db import IntegrityError
class SimpleTest(TestCase):
def test_integrity_error(self):
with self.assertRaises(IntegrityError):
m = SimpleModel()
m.save()
В качестве базы данных используется база данных sqlite3. Если я сейчас запускаю тесты сpython manage.py test <appname>
тест не проходит сAssertionError: IntegrityError not raised
.
Вопрос в том:why?
Насколько я понимаю (или думал понять) Django значения по умолчанию для полейblank=False
а такжеnull=False
поэтому я предполагаю, что сохранение экземпляра модели со значением по умолчанию (которое, я думаю, для CharField должна быть пустой строкой), безусловно, завершится ошибкой! Итак, почему этого не происходит?