Как преобразовать CSV в макет, когда CSV-файл указан в качестве аргумента в модульном тесте команды Django - PullRequest
0 голосов
/ 02 июля 2018

Существует команда django, которая дает путь к файлу csv в качестве аргумента следующим образом.

class Command(NoticeCommand):

    def add_arguments(self, parser):
        parser.add_argument(
            '--file', dest="file", type=str, required=True
        )

    def handle(self, *args, **options):
        with open(options['file'], 'r') as f:
            reader = csv.reader(f)
            next(reader)
            for row in reader:
                ...

Я подумываю сделать этот CSV-файл фиктивным при выполнении юнит-теста.
Тем не менее, я не знаю, какую часть и как сделать макет.
Также аргументом является required = True. Как я могу позвонить в UnitTest, когда csv подвергается насмешке?

from mock import patch
from django.core.management import call_command

class ImportCsvTest(TestCase):

    @patch("common.management.commands.import_csv.????")
    def test_import_csv(self):
        call_command("import_lyric_artists", file=?????)

1 Ответ

0 голосов
/ 02 июля 2018

Дополнительные примеры см. В документации по питону .

@patch('package.module.attribute', your_value)
def test():
    from package.module import your_value
    assert attribute is your_value

test()
...