def check_ask_type(dirname): def mock_is_interactive(): return True monkeypatch.setattr('anaconda_project.internal.cli.console_utils.stdin_is_interactive', mock_is_interactive) calls = [] def mock_console_input(prompt): res = ['-', 'b'][len(calls)] calls.append(True) return res monkeypatch.setattr('anaconda_project.internal.cli.console_utils.console_input', mock_console_input) args = Args(None, 'test', 'file.py', directory=dirname) res = main(args) assert res == 0 assert len(calls) == 2 project = Project(dirname) command = project.project_file.get_value(['commands', 'test']) assert len(command.keys()) == 2 assert command['bokeh_app'] == 'file.py' assert command['env_spec'] == 'default' out, err = capsys.readouterr() assert out == ("Please enter 'b', 'n', or 'c'.\n" + " A Bokeh app is the project-relative path to a Bokeh script or app directory.\n" + " A notebook file is the project-relative path to a .ipynb file.\n" " A command line is any command you might type at the command prompt.\n" "Added a command 'test' to the project. Run it with `anaconda-project run test`.\n")
def check(dirname): def mock_is_interactive(): return True monkeypatch.setattr('anaconda_project.internal.cli.console_utils.stdin_is_interactive', mock_is_interactive) def mock_console_input(prompt): return "c" monkeypatch.setattr('anaconda_project.internal.cli.console_utils.console_input', mock_console_input) def mock_system(): return "Linux" monkeypatch.setattr('platform.system', mock_system) args = Args(None, 'test', 'echo hello', directory=dirname) res = main(args) assert res == 0 project = Project(dirname) command = project.project_file.get_value(['commands', 'test']) assert len(command.keys()) == 2 assert command['unix'] == 'echo hello' assert command['env_spec'] == 'default'
def check_ask_type(dirname): def mock_is_interactive(): return True monkeypatch.setattr( 'anaconda_project.internal.cli.console_utils.stdin_is_interactive', mock_is_interactive) def mock_console_input(prompt): return "b" monkeypatch.setattr( 'anaconda_project.internal.cli.console_utils.console_input', mock_console_input) args = Args(None, 'test', 'file.py', directory=dirname) res = main(args) assert res == 0 project = Project(dirname) command = project.project_file.get_value(['commands', 'test']) assert len(command.keys()) == 2 assert command['bokeh_app'] == 'file.py' assert command['env_spec'] == 'default'
def check_problem_add_cmd(dirname): args = Args('notebook', 'test', 'file.ipynb', directory=dirname) res = main(args) assert res == 1 out, err = capsys.readouterr() assert '' == out assert (("%s: command 'test' has multiple commands in it, 'notebook' can't go with 'unix'\n" % DEFAULT_PROJECT_FILENAME) + "Unable to add the command.\n") == err
def check_ask_type(dirname): def mock_is_interactive(): return True monkeypatch.setattr('anaconda_project.internal.cli.console_utils.stdin_is_interactive', mock_is_interactive) def mock_input(prompt): raise KeyboardInterrupt('^C') monkeypatch.setattr('anaconda_project.internal.cli.console_utils._input', mock_input) args = Args(None, 'test', 'file.py', directory=dirname) with pytest.raises(SystemExit) as excinfo: main(args) assert excinfo.value.code == 1 out, err = capsys.readouterr() assert out == '' assert err == '\nCanceling\n\n'
def check_guessing_notebook(dirname): args = Args(None, 'test', 'file.ipynb', directory=dirname) res = main(args) assert res == 0 project = Project(dirname) command = project.project_file.get_value(['commands', 'test']) assert command['notebook'] == 'file.ipynb' assert command['env_spec'] == 'default' assert len(command.keys()) == 2
def check(dirname): def mock_is_interactive(): return False monkeypatch.setattr('anaconda_project.internal.cli.console_utils.stdin_is_interactive', mock_is_interactive) args = Args(None, 'test', 'file.py', directory=dirname) res = main(args) assert res == 1 out, err = capsys.readouterr() assert '' == out assert 'Specify the --type option to add this command.\n' == err