Подтвердить что ты не робот

Как протестировать пользовательские команды django-admin

Я создал пользовательские команды django-admin

Но я не знаю, как протестировать его в стандартных тестах django

4b9b3361

Ответ 1

Если вы используете какой-либо инструмент покрытия, было бы хорошо называть его кодом:

from django.core.management import call_command
from django.test import TestCase

class CommandsTestCase(TestCase):
    def test_mycommand(self):
        " Test my custom command."

        args = []
        opts = {}
        call_command('mycommand', *args, **opts)

        # Some Asserts.

Ответ 2

Вы должны сделать свою фактическую команду script минимально возможной, чтобы она просто вызывала функцию в другом месте. Затем эту функцию можно протестировать с помощью модульных тестов или доктрин, как обычно.

Ответ 3

вы можете увидеть пример github.com см. здесь

def test_command_style(self):
    out = StringIO()
    management.call_command('dance', style='Jive', stdout=out)
    self.assertEquals(out.getvalue(),
        "I don't feel like dancing Jive.")

Ответ 4

Я согласен с Даниэлем в том, что фактическая команда script должна сделать минимально возможную, но вы также можете проверить ее непосредственно в Django unit test с помощью os.popen4.

Внутри unit test у вас может быть команда типа

fin, fout = os.popen4('python manage.py yourcommand')
result = fout.read()

Затем вы можете проанализировать содержимое результата, чтобы проверить, была ли выполнена ваша команда Django.