Неудачный тест Джанго - PullRequest
6 голосов
/ 06 мая 2010

Я испытываю ошибку при выполнении модульных тестов django, я не испытывал этого раньше и гуглил весь день.

Я получаю эту ошибку в терминале после запуска теста django manage.py:

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")

На таблицу media_images ссылаются при запуске django-admin.py sqlflush и генерирует нормально при запуске django manage.py syncdb.

Это модель изображения, которая выглядит проблемной:

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

Я ценю любую помощь, пожалуйста, дайте мне знать, если я должен предоставить больше информации!

Ответы [ 2 ]

2 голосов
/ 01 июля 2011

Решение: убедитесь, что вы явно определяете подмодули (например, common.media) в INSTALLED_APPS, а не только родительский модуль (например, common), чтобы убедиться, что модели выбраны и тест может быть запущен.

0 голосов
/ 02 января 2013

попробуйте python manage.py syncdb, затем вернитесь

...