Пример #1
0
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)
Пример #2
0
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
Пример #3
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
Пример #4
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
Пример #5
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
Пример #6
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