def check(dirname): _monkeypatch_pwd(monkeypatch, dirname) code = _parse_args_and_run_subcommand(['anaconda-project', 'remove-service', 'TEST']) assert code == 1 out, err = capsys.readouterr() assert "Service 'TEST' not found in the project file.\n" == err assert '' == out
def check(dirname): code = _parse_args_and_run_subcommand([ 'anaconda-project', 'remove-command', 'test', '--directory', dirname ]) assert code == 1 out, err = capsys.readouterr() assert err == "Command: 'test' not found in project file.\n" assert out == ''
def check(dirname): archivefile = os.path.join(dirname, "foo.zip") code = _parse_args_and_run_subcommand(['anaconda-project', 'archive', '--directory', dirname, archivefile]) assert code == 1 out, err = capsys.readouterr() assert "Project file 'anaconda-project.yml' does not exist.\nUnable to load the project.\n" == err assert '' == out assert not os.path.exists(os.path.join(dirname, DEFAULT_PROJECT_FILENAME)) assert not os.path.exists(archivefile)
def test_main_realpath_directory(monkeypatch): def mock_subcommand_main(args): return args monkeypatch.setattr( 'anaconda_project.internal.cli.command_commands.main_list', mock_subcommand_main) dirname = 'C:\\UsErS\\PRojecT' args = _parse_args_and_run_subcommand( ['anaconda-project', 'list-commands', '--directory', dirname]) assert args.directory == os.path.realpath(dirname)
def check(dirname): code = _parse_args_and_run_subcommand([ 'anaconda-project', 'dockerize', '--', '-e', 'CMD=other', '--run' ]) assert code == 0 out, err = capsys.readouterr() assert 'Yay\n' == out assert '' == err assert params['kwargs']['build_args'] == ['-e', 'CMD=other', '--run']
def check(dirname): code = _parse_args_and_run_subcommand(['anaconda-project', 'upload', '--directory', dirname, '--user=foo', '--token=bar']) assert code == 0 out, err = capsys.readouterr() assert 'Hello\nYay\n' == out assert '' == err assert params['kwargs']['token'] == 'bar' assert params['kwargs']['username'] == 'foo'
def check(dirname): code = _parse_args_and_run_subcommand([ 'anaconda-project', 'dockerize', '--builder-image', 'custom:latest' ]) assert code == 0 out, err = capsys.readouterr() assert 'Yay\n' == out assert '' == err assert params['kwargs']['builder_image'] == 'custom:latest'
def check(dirname): code = _parse_args_and_run_subcommand( ['anaconda-project', 'list-variables', '--directory', dirname]) assert code == 1 out, err = capsys.readouterr() assert '' == out assert ('variables section contains wrong value type 42,' + ' should be dict or list of requirements\n' + 'Unable to load the project.\n') in err
def check(dirname): _monkeypatch_pwd(monkeypatch, dirname) code = _parse_args_and_run_subcommand(command) assert code == 1 out, err = capsys.readouterr() assert '' == out assert ('variables section contains wrong value type 42,' + ' should be dict or list of requirements\n' + 'Unable to load the project.\n') in err
def check(dirname): code = _parse_args_and_run_subcommand(['anaconda-project', 'add-command', '--directory', dirname, '--env-spec', 'foo', '--type', 'notebook', 'test', 'file.ipynb']) assert code == 0 project = Project(dirname) command = project.project_file.get_value(['commands', 'test']) assert command['notebook'] == 'file.ipynb' assert command['env_spec'] == 'foo' assert len(command.keys()) == 2
def check(dirname): _monkeypatch_pwd(monkeypatch, dirname) exported = os.path.join(dirname, "exported.yml") code = _parse_args_and_run_subcommand( ['anaconda-project', 'export-env-spec', exported]) assert code == 0 out, err = capsys.readouterr() assert '' == err assert ('Exported environment spec foo to %s.\n' % exported) == out
def check(dirname): code = _parse_args_and_run_subcommand([ 'anaconda-project', 'download', 'fake_user/fake_project', '--parent_dir', '.' ]) assert code == 0 out, err = capsys.readouterr() assert 'Yay\n' == out assert '' == err assert params['kwargs']['parent_dir'] == '.'
def test_main_bad_subcommand(capsys): code = _parse_args_and_run_subcommand(['project', 'foo']) out, err = capsys.readouterr() expected_error_msg = ("usage: anaconda-project [-h] [-v] [--verbose]\n" " %s\n" " ...\nanaconda-project: error: invalid choice: 'foo' " "(choose from %s)\n") % (all_subcommands_in_curlies, all_subcommands_comma_space) assert expected_error_msg == err assert "" == out assert 2 == code
def test_main_no_subcommand(capsys): code = _parse_args_and_run_subcommand(['project']) assert 2 == code out, err = capsys.readouterr() assert "" == out expected_error_msg = ('Must specify a subcommand.\n' 'usage: anaconda-project [-h] [-v] [--verbose]\n' ' %s\n' ' ...\n') % all_subcommands_in_curlies assert expected_error_msg == err
def check(dirname): code = _parse_args_and_run_subcommand(['anaconda-project', 'remove-command', 'test', '--directory', dirname]) assert code == 0 project = Project(dirname) command = project.project_file.get_value(['commands', 'test']) assert command is None out, err = capsys.readouterr() assert out == "Removed the command 'test' from the project.\n" assert err == ''
def check(dirname): code = _parse_args_and_run_subcommand(['anaconda-project', 'add-command', '--directory', dirname, '--supports-http-options', '--type', 'notebook', 'test', 'file.ipynb']) assert code == 0 project = Project(dirname) command = project.project_file.get_value(['commands', 'test']) assert command['notebook'] == 'file.ipynb' assert command['env_spec'] == 'default' assert command['supports_http_options'] is True assert len(command.keys()) == 3
def check(dirname): _monkeypatch_pwd(monkeypatch, dirname) code = _parse_args_and_run_subcommand( ['anaconda-project', 'remove-env-spec', '--name', 'foo']) assert code == 0 out, err = capsys.readouterr() assert '' == err assert ( 'Deleted environment files in %s.\nRemoved environment foo from the project file.\n' % os.path.join(dirname, "envs", "foo")) == out
def check(dirname): code = _parse_args_and_run_subcommand([ 'anaconda-project', 'upload', '--directory', dirname, '--suffix', '.zip' ]) assert code == 0 out, err = capsys.readouterr() assert 'Hello\nYay\n' == out assert '' == err assert params['kwargs']['suffix'] == '.zip'
def check(dirname): _monkeypatch_pwd(monkeypatch, dirname) code = _parse_args_and_run_subcommand( ['anaconda-project', 'remove-download', 'TEST_FILE']) project = Project(dirname) assert not project.downloads(project.default_env_spec_name) assert code == 1 out, err = capsys.readouterr() assert ("Download requirement: TEST_FILE not found.\n") == err assert '' == out
def check(dirname): project_dir_disable_dedicated_env(dirname) result = _parse_args_and_run_subcommand([ 'anaconda-project', 'prepare', '--directory', dirname, '--command=with_bar' ]) assert result == 1 out, err = capsys.readouterr() assert 'nonexistent_bar' in err assert 'nonexistent_foo' not in err result = _parse_args_and_run_subcommand([ 'anaconda-project', 'prepare', '--directory', dirname, '--command=with_foo' ]) assert result == 1 out, err = capsys.readouterr() assert 'nonexistent_foo' in err assert 'nonexistent_bar' not in err
def test_set_variable_command_bad_arg(monkeypatch, capsys): params = _monkeypatch_set_variables(monkeypatch) res = _parse_args_and_run_subcommand( ['anaconda-project', 'set-variable', 'foo=bar', 'baz']) assert res == 1 out, err = capsys.readouterr() assert "Error: argument '{}' should be in NAME=value format".format( 'baz') in out assert len(params) == 0
def main_redis_url(dirname): from os.path import abspath as real_abspath def mock_abspath(path): if path == ".": return dirname else: return real_abspath(path) monkeypatch.setattr('os.path.abspath', mock_abspath) project_dir_disable_dedicated_env(dirname) code = _parse_args_and_run_subcommand(['anaconda-project', 'activate']) assert code == 0
def check(dirname): _monkeypatch_pwd(monkeypatch, dirname) local_state = LocalStateFile.load_for_directory(dirname) local_state.set_service_run_state('TEST', {'shutdown_commands': [_echo_commandline + ['"shutting down TEST"']]}) local_state.save() code = _parse_args_and_run_subcommand(['anaconda-project', 'remove-service', 'redis']) assert code == 0 out, err = capsys.readouterr() assert '' == err expected_out = ("Removed service 'redis' from the project file.\n") assert expected_out == out
def check_list_empty(dirname): code = _parse_args_and_run_subcommand(['anaconda-project', 'list-variables', '--directory', dirname]) assert code == 0 out, err = capsys.readouterr() expected_out = """ Variables for project: {dirname} Name{space}Description ===={space}=========== {varname} The project needs a Conda environment containing all required packages. """.format(dirname=dirname, varname=PLATFORM_ENV_VAR, space="".ljust(len(PLATFORM_ENV_VAR) - 2)).strip() + "\n" assert out == expected_out
def test_add_two_variables_with_default(monkeypatch, capsys): params = _monkeypatch_add_variables(monkeypatch) res = _parse_args_and_run_subcommand(['anaconda-project', 'add-variable', '--default', 'bar', 'foo', 'hello']) assert res == 1 assert [] == params out, err = capsys.readouterr() assert out == '' expected_err = ("It isn't clear which variable your --default option goes with; " + "add one variable at a time if using --default.\n") assert err == expected_err
def check(dirname): _monkeypatch_pwd(monkeypatch, dirname) _monkeypatch_add_service( monkeypatch, SimpleStatus(success=False, description='Service add FAIL.')) code = _parse_args_and_run_subcommand( ['anaconda-project', 'add-service', 'redis']) assert code == 1 out, err = capsys.readouterr() assert '' == out assert 'Service add FAIL.\n' == err
def check(dirname): _monkeypatch_pwd(monkeypatch, dirname) code = _parse_args_and_run_subcommand( ['anaconda-project', 'remove-env-spec', '--name', 'bar']) assert code == 1 out, err = capsys.readouterr() assert '' == out assert (( "%s: env_spec 'bar' for command 'foo' does not appear in the env_specs section\n" % DEFAULT_PROJECT_FILENAME) + "Unable to load the project.\n") == err
def check_prepare_choose_environment_does_not_exist(dirname): project_dir_disable_dedicated_env(dirname) result = _parse_args_and_run_subcommand([ 'anaconda-project', 'prepare', '--directory', dirname, '--env-spec=nope' ]) assert result == 1 expected_error = ( "Environment name 'nope' is not in %s, these names were found: bar, foo" % os.path.join(dirname, DEFAULT_PROJECT_FILENAME)) out, err = capsys.readouterr() assert out == "" assert expected_error in err
def check(dirname): _monkeypatch_pwd(monkeypatch, dirname) code = _parse_args_and_run_subcommand(['anaconda-project', 'init']) assert code == 0 assert os.path.isfile(os.path.join(dirname, DEFAULT_PROJECT_FILENAME)) assert not os.path.isfile( os.path.join(dirname, DEFAULT_PROJECT_LOCK_FILENAME)) out, err = capsys.readouterr() assert ("Project configuration is in %s\n" % (os.path.join(dirname, DEFAULT_PROJECT_FILENAME))) == out assert '' == err
def check(dirname): _monkeypatch_pwd(monkeypatch, dirname) params = _monkeypatch_add_download( monkeypatch, FakeRequirementStatus(success=True, status_description='File downloaded.')) code = _parse_args_and_run_subcommand(command) assert code == 1 out, err = capsys.readouterr() assert "Error: mutually dependant parameters: --hash-algorithm and --hash-value.\n" == err assert '' == out return params