def test_should_raise_if_no_conf(work_dir): """ Test command raise if no conf, neither auto detected or given to command line """ notebook_path = gen_notebook(cells=[('code', 'pass')], tmp_dir=work_dir, file_name='test_nb.ipynb') arguments = ['-n', notebook_path, '--working-directory', work_dir] with pytest.raises(MlVToolException): IPynbCheckAllScripts().run(*arguments)
def test_should_check_consistency_for_nb_from_dir_and_exit_with_error_if_dif_from_conf( work_dir, notebook_dir, script_dir): """ Test check consistency for all notebooks from a given directory. Should exit with error. Discard a notebook cell changing conf ignore_keys """ conf_path = join(work_dir, 'conf.json') write_conf(work_dir, conf_path, script_dir=script_dir, dvc_cmd_dir=work_dir, ignore_keys=['# A Tag']) arguments = [ '-n', notebook_dir, '-c', conf_path, '--working-directory', work_dir ] with pytest.raises(SystemExit) as e: IPynbCheckAllScripts().run(*arguments) assert e.value.code != 0
def test_exit_with_error_if_a_script_is_missing(work_dir, notebook_dir, script_dir): """ Test check consistency exits with error if a script is missing. """ conf_path = join(work_dir, 'conf.json') write_conf(work_dir, conf_path, script_dir=script_dir, dvc_cmd_dir=work_dir) # Remove a valid script remove(join(script_dir, 'mlvtools_bye.py')) arguments = [ '-n', notebook_dir, '-c', conf_path, '--working-directory', work_dir ] with pytest.raises(SystemExit) as e: IPynbCheckAllScripts().run(*arguments) assert e.value.code != 0
def test_exit_without_error_if_a_script_is_inconsistent_but_ignored( work_dir, notebook_dir, script_dir): """ Test check consistency exits without error if inconsistent script is ignored """ conf_path = join(work_dir, 'conf.json') write_conf(work_dir, conf_path, script_dir=script_dir, dvc_cmd_dir=work_dir) # Overwrite one valid script write_script(join(script_dir, 'mlvtools_bye.py'), 'print("A different thing")') arguments = [ '-n', notebook_dir, '-c', conf_path, '--working-directory', work_dir, '-i', 'bye.ipynb' ] with pytest.raises(SystemExit) as e: IPynbCheckAllScripts().run(*arguments) assert e.value.code == 0
def test_should_check_consistency_for_all_notebooks_from_directory_and_exit_with_error( work_dir, notebook_dir, script_dir): """ Test check consistency for all notebooks from a given directory. Should exit with error due to one inconsistency. """ conf_path = join(work_dir, 'conf.json') write_conf(work_dir, conf_path, script_dir=script_dir, dvc_cmd_dir=work_dir) # Overwrite one valid script write_script(join(script_dir, 'mlvtools_bye.py'), 'print("A different thing")') arguments = [ '-n', notebook_dir, '-c', conf_path, '--working-directory', work_dir ] with pytest.raises(SystemExit) as e: IPynbCheckAllScripts().run(*arguments) assert e.value.code != 0
def test_should_check_consistency_for_all_notebooks_from_directory_and_exit_without_error( work_dir, notebook_dir, script_dir): """ Test check consistency for all notebooks from a given directory. Should exit without error. Ignore other file from the given directory. """ conf_path = join(work_dir, 'conf.json') write_conf(work_dir, conf_path, script_dir=script_dir, dvc_cmd_dir=work_dir) # Add noise: a text file in notebook directory with open(join(notebook_dir, 'text_file.txt'), 'w') as fd: fd.write('some text') arguments = [ '-n', notebook_dir, '-c', conf_path, '--working-directory', work_dir ] with pytest.raises(SystemExit) as e: IPynbCheckAllScripts().run(*arguments) assert e.value.code == 0