как проверить файл json fixture json - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть скрипт, который сгенерирует файл JSON (позвольте мне назвать его data.json), который для моего приложения django обычно можно проверить, выполнив команду

python manage.py testserver data.json

Однако я хотел бы запустить эту вещь в модульных тестах, а не запускать ее через оболочку (потому что она запустит сервер и никогда не вернется обратно в оболочку).Мне не нужно запускать какие-либо тесты, которые зависят от этого прибора.Я только хочу убедиться, что созданный прибор может быть загружен.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Собственный Django TestCase поддерживает автоматическую настройку и демонтаж приборов через атрибут уровня класса fixtures.например,

from django.test import TestCase

class MyTest(TestCase):

    # Must live in <your_app>/fixtures/data.json
    fixtures = ['data.json']

    def test_something(self):
        # When this runs, data.json will already have been loaded
        ...

Однако, поскольку вы просто хотите проверить, что прибор может быть загружен, а не использовать его как часть теста, вы можете просто вызвать команду loaddata где-нибудь в вашем тестовом коде.

например

from django.core.management import call_command

call_command('loaddata', '/path/to/data.json')
0 голосов
/ 05 декабря 2018

Команды управления Django могут быть запущены в вашем коде с помощью call_commands .

from django.core.management import call_command
from django.core.management.commands import testserver

call_command('testserver', 'data.json')
...