2015-06-01 6 views
1

я в настоящее время написания тестов для моего проекта Джанго, и мне нужно, чтобы убедиться, чтоДжанго тестовая модель поля

, что конкретное поле в модели определенного типа.

, например, в модели Pictures я хочу, чтобы убедиться, что есть поле с

имя «изображения», и что он типа ImageField.

я также хочу, чтобы иметь возможность проверить, если атрибут типа ForeignKey из

модели Pictures.

я пытался использовать assertIsInstance, но мне нужно присвоить атрибут или еще

он нет.

Кто-нибудь знает, как это сделать?

ответ

2

Чтобы ответить на ваш вопрос, проверка, как это должно работать:

from django.db.models import ImageField 
from wherever.mymodels import Pictures 
... 
field = Pictures._meta.get_field("image") 
assertTrue(isinstance(field, ImageField)) 

Хотя, на мой 2 цента, он может иметь больше смысла для вашего модульного тестирования, чтобы проверить, что установка «образ» какой-то картинке экземпляр работает как ожидалось, вместо того, чтобы просто проверять ImageField с именем «изображение». В конце концов, то, что вы действительно должны проверять с помощью тестового примера: «будет ли код, который я использую для загрузки/проверки/сохранения изображений, надежно работает»?

+0

не распознает «_meta» ... мне нужно что-то импортировать? – brad

+0

Вам нужно просто «отсюда» импортировать «Картинки» и «из django.db.models импортировать ImageField». Поле '_meta' модели должно поддерживаться во всех [последних версиях Django] (https://docs.djangoproject.com/en/1.8/ref/models/meta/). –

+0

вы делаете хороший момент. – brad

Смежные вопросы