2010-05-06 18 views
6

Ich habe einen Fehler beim Ausführen von Django-Komponententests, ich habe das vorher nicht erlebt und habe es den ganzen Nachmittag gegoogelt.Django-Test fehlgeschlagen

Ich erhalte diesen Fehler im Terminal nach django manage.py Test läuft:

Error: Database test_unconvention couldn't be flushed. Possible reasons: 
    * The database isn't running or isn't configured correctly. 
    * At least one of the expected database tables doesn't exist. 
    * The SQL was invalid. 
Hint: Look at the output of 'django-admin.py sqlflush'. That's the SQL this command wasn't able to run. 
The full error: (1146, "Table 'test_unconvention.media_image' doesn't exist") 

Die media_images Tabelle verwiesen wird, wenn django-admin.py sqlflush läuft und erzeugt ok, wenn ich laufen django manage.py syncdb . Diese

ist das Bild, das Modell zu sein scheint mühsam:

from django.db import models 
from django.contrib.contenttypes.models import ContentType 
from django.contrib.contenttypes import generic 

class Image(models.Model): 
    local_image = models.ImageField(upload_to="uploads/%Y/%m/%d/", height_field="height", width_field="width", max_length=255, null=True, blank=True) 
    remote_image = models.CharField(editable=False, max_length=255, null=True, blank=True) 
    thirdparty_page = models.CharField(editable=False, max_length=255, blank=True, null=True) 
    size = models.CharField(editable=False, max_length=25, blank=True, null=True) 
    content_type = models.ForeignKey(ContentType) 
    object_id = models.PositiveIntegerField() 
    content_object = generic.GenericForeignKey('content_type', 'object_id') 
    height = models.PositiveIntegerField(editable=False, blank=True, null=True) 
    width = models.PositiveIntegerField(editable=False, blank=True, null=True) 
    created_at = models.DateTimeField(editable=False, auto_now_add=True) 
    updated_at = models.DateTimeField(editable=False, auto_now=True) 

    def __unicode__(self): 
    if self.local_image: 
     return self.local_image.name 
    else: 
     return self.remote_image 

ich jede Hilfe dankbar, lass es mich wissen, wenn ich mehr Informationen zur Verfügung stellen soll!

+0

dass Bild Modell in 'Medien' app So lebt, yep? Ist es definitiv in deinen installierten Apps, so dass es vom Testrunner synchronisiert wird? –

+1

Die Medien-App befindet sich in einer App/einem Projekt namens 'common', die ich meinen installed_apps hinzugefügt hatte. Ich fügte 'common.media' zur Liste hinzu und die Tests funktionierten, danke :-) Wenn jemand anderes ein ähnliches Problem hat, ist es erwähnenswert, dass die syncdb und sqlall die Medien-App kein Problem und nur das verwalten .py-Test ist fehlgeschlagen. –

+0

Kühl. Froh, dass es sortiert ist –

Antwort

2

Lösung: Stellen Sie sicher, dass Sie explizit Submodule definieren (z common.media) in INSTALLED_APPS und nicht nur das übergeordnete Modul (z common) sicher zu stellen, dass die Modelle aufgenommen und der Test ist in der Lage zu laufen.

0

versuchen die python manage.py syncdb dann

zurück
Verwandte Themen