Testes do Django não geram erros de integridade no CharField
Se tiver o seguinte modelo Django (1.4):
from django.db import models
class SimpleModel(models.Model):
name = models.CharField(max_length=100)
E esse teste simples:
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()
Como banco de dados, um banco de dados sqlite3 é usado. Se agora eu executar os testes compython manage.py test <appname>
o teste falha comAssertionError: IntegrityError not raised
.
A questão é:porque?
Tanto quanto eu entendo (ou pensei em entender) Django os valores padrão para os campos sãoblank=False
enull=False
então eu diria que salvar uma instância de modelo com o valor padrão (que eu acho que um CharField deve ser uma string vazia) certamente falhará! Então, por que isso não acontece?