Vous n'êtes pas identifié(e).
Bonjour,
Après avoir installé la version 1.4 de Django, tous mes tests qui passaient avec la version 1.3, ne passent plus.
Voici le message d'erreur que j'obtiens:
Problem installing fixture 'L:/_Perso_/Roberto/FORSbase-Devel\base\users\fixtures\initial_data.json': Traceback (most recent call last):
File "C:\Python27\lib\site-packages\django\core\management\commands\loaddata.py", line 196, in handle
obj.save(using=using)
File "C:\Python27\lib\site-packages\django\core\serializers\base.py", line 165, in save
models.Model.save_base(self.object, using=using, raw=True)
File "C:\Python27\lib\site-packages\django\db\models\base.py", line 529, in save_base
rows = manager.using(using).filter(pk=pk_val)._update(values)
File "C:\Python27\lib\site-packages\django\db\models\query.py", line 557, in _update
return query.get_compiler(self.db).execute_sql(None)
File "C:\Python27\lib\site-packages\django\db\models\sql\compiler.py", line 986, in execute_sql
cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)
File "C:\Python27\lib\site-packages\django\db\models\sql\compiler.py", line 818, in execute_sql
cursor.execute(sql, params)
File "C:\Python27\lib\site-packages\django\db\backends\sqlite3\base.py", line 337, in execute
return Database.Cursor.execute(self, query, params)
IntegrityError: Could not load auth.Permission(pk=4): columns content_type_id, codename are not unique
Est-ce que quelqu'un a eu le même problème?
Bonne journée et merci d'avance.
Hors ligne
Mon initial_data.json contenait le script pour alimenter la table "auth_permission". J'ai l'impression que django crée automatiquement cette table et lorsqu'il essaie d'exécuter mon script il voit qu'il y a des doublons. En supprimant ce script ça fonctionne.
Hors ligne
Salut,
Oui l'outil de tests de Django, créé une BDD temporaire juste pour y mettre
les données à utiliser pour tes tests, si il y a des fixtures disponibles ils
les utilisent donc pour remplir.
Pour les unittests, le mieux est de ranger à part tes fixtures Json/xml de
remplissage pour les tests et te faire un fichier de settings juste pour les
tests comme ceci :
import os
from settings import *
FIXTURE_DIRS = (
os.path.join(WEBAPP_ROOT, 'test_fixtures/'),
)
Où tu renseignes dans "FIXTURE_DIRS" un ou des chemins vers des répertoires
contenant les fixtures que va utiliser l'outil de tests pour remplir la BDD.
Hors ligne