Тестирование моделей Django с FileField

измените размеры изображения к 1x1 эльф..., если они точны, существует маленькая вероятность, они - то же изображение... теперь изменяют размеры его к 2x2 изображение эльфа, если все 4 эльфа точны, существует большая вероятность, они точны... тогда 3x3, если все 9 эльфов точны... хороший шанс и т.д. тогда 4x4, если все 16 эльфов точны... лучший шанс.

и т.д.

выполнение его этот путь, можно ли сделать эффективность improvments..., если 1x1 пиксельная сетка выключена много, почему проверка беспокойства 2x2 сетка? и т.д.

17
задан T. Stone 8 October 2009 в 01:03
поделиться

2 ответа

Это частичный ответ на мой вопрос и помочь всем, кто нашел этот вопрос в результате поиска.

Django включает средство, которое оно называет 'fixtures' для обработки первичной загрузки данных во время тестирования. Создание прибора - это двухэтапный процесс:

  1. Добавление поддельных данных в приложение » s модель с помощью инструмента администратора
  2. Выполните следующее: manage.py dumpdata [appname] --indent = 2> filename.json

Файл фикстуры * .json остается в корневой папке вашего проекта Django.

В ваш файл tests.py, вы можете загрузить прибор в класс Django TestCase следующим образом:

class YourTestCase(TestCase):    
    fixtures = ['filename.json','whatever.json',]

После загрузки прибора вы можете использовать данные так же, как обычно используете ORM. Вот мой рабочий тестовый пример из приведенного выше кода, если вам нужен пример.

from django.test import TestCase

from django.contrib.auth.models import User
from mediamanager.models import Media

class MediaManagerTestCase(TestCase):

    fixtures = ['auth_data.json','mediamanager_data.json',]

    def setUp(self):
        self.fakeuser = User.objects.get(username='fakeuser')
        self.fakestaff = User.objects.get(username='fakestaff')
        self.fakeadmin = User.objects.get(username='fakeadmin')

    def test_media_can_edit(self):
        um = Media.objects.get(pk=1)    # Media owned by fakeuser
        sm = Media.objects.get(pk=2)    # Media owned by fakstaff

        self.assertEquals(um.can_edit(self.fakeuser), True)
        self.assertEquals(sm.can_edit(self.fakeuser), False)

        self.assertEquals(um.can_edit(self.fakestaff), True)
        self.assertEquals(sm.can_edit(self.fakestaff), True)

        self.assertEquals(um.can_edit(self.fakeadmin), True)
        self.assertEquals(sm.can_edit(self.fakeadmin), True)
5
ответ дан 30 November 2019 в 13:27
поделиться

Привет, у меня было то же самое проблема, после некоторого поиска в Google я получил:

from django.test import TestCase
from django.core.files import File as DjangoFile
from home.models import Tab, File

class FileModelTest(TestCase):

    def setUp(self):
        self.tab = Tab.objects.create(
                title="Title",
                html="<p>test</p>",
                published=True
            )
        self.file = File.objects.create(
                tab=self.tab,
                file=DjangoFile(open("home/tests/models.py"), "test_file.css")
            )

    def tearDown(self):
        self.file.delete()
        self.tab.delete()

Надеюсь, это кому-то поможет.

18
ответ дан 30 November 2019 в 13:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: