тест pytest для запуска ноутбука Jupyter - PullRequest
0 голосов
/ 18 мая 2018

Моя задача - написать код Python (тест pytest) в файле .py, который запускает блокнот jupyter и утверждает, что вывод равен 1.

У меня есть метод для запуска блокнота:

def _notebook_run(path):
    args = ["jupyter", "nbconvert", "--execute", path]
    a = subprocess.check_call(args)
    return a

И тест:

def test_test():
    a = _notebook_run('./file.ipynb') 
    assert a == 1

, когда я запускаю его с этим тестом, он возвращает 0, хотя, когда я запускаю ноутбук jupyter отдельно, он возвращает 1, как и ожидалось.

Почемувывод отличается?

Я сделал какую-то ошибку в методе, который запускает ноутбук?

Может кто-нибудь помочь?

ОБНОВЛЕНИЕ: Как я выяснил, он всегда возвращает 0, независимо от того, какой код выполняется в блокноте.Кто-нибудь знает, как заставить это работать?

1 Ответ

0 голосов
/ 24 мая 2018

Я изменил метод и получил нужный результат:

def test_file(self):
        result = os.popen("jupyter nbconvert --to script --execute --stdout file.ipynb | python3").read()
        assert result == '1\n'

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...