def check_run_main(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) for n, i in enumerate(command_line): if i == '<DIRNAME>': command_line[n] = dirname result = _parse_args_and_run_subcommand(command_line) assert 1 == result assert 'file' in executed assert 'args' in executed assert 'env' in executed file_assertion(executed['file']) out, err = capsys.readouterr() assert "" == out assert "" == err return executed['args'][1:]
def check(dirname): code = _parse_args_and_run_subcommand(['anaconda-project', 'clean', '--directory', dirname]) assert code == 0 out, err = capsys.readouterr() assert 'Cleaned.\n' == out assert '' == err
def check_run_main(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) result = _parse_args_and_run_subcommand([ 'anaconda-project', 'run', '--directory', dirname, 'default', 'foo', '$PATH', '--something' ]) assert 1 == result assert 'file' in executed assert 'args' in executed assert 'env' in executed assert executed['file'].endswith(python_exe) assert executed['args'][0].endswith(python_exe) assert len(executed['args']) == 5 assert '--version' == executed['args'][1] assert 'foo' == executed['args'][2] assert '$PATH' == executed['args'][3] assert '--something' == executed['args'][4]
def check(dirname): project_dir_disable_dedicated_env(dirname) code = _parse_args_and_run_subcommand([ 'anaconda-project', 'activate', '--directory', dirname, '--command', 'nope' ]) assert code == 1
def check(dirname): code = _parse_args_and_run_subcommand(['anaconda-project', 'upload', '--directory', dirname]) assert code == 0 out, err = capsys.readouterr() assert 'Hello\nYay\n' == out assert '' == err
def check_run_main(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) def mock_execvpe(file, args, env): assert file == 'nope' assert args == ['nope'] raise OSError("no such file nope") monkeypatch.setattr('os.execvpe', mock_execvpe) project_dir_disable_dedicated_env(dirname) result = _parse_args_and_run_subcommand( ['anaconda-project', 'run', '--directory', dirname, 'nope']) assert 1 == result out, err = capsys.readouterr() assert "" == out assert "Failed to execute 'nope'" in err
def check_run_main(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) # double hyphen lets us specify "--foo" as a command name result = _parse_args_and_run_subcommand([ 'anaconda-project', 'run', '--directory', dirname, '--', '--foo', '--bar' ]) assert 1 == result assert 'file' in executed assert 'args' in executed assert 'env' in executed assert executed['file'].endswith(python_exe) assert executed['args'][0].endswith(python_exe) assert len(executed['args']) == 3 assert '--version' == executed['args'][1] assert '--bar' == executed['args'][2]
def check(dirname): _monkeypatch_pwd(monkeypatch, dirname) code = _parse_args_and_run_subcommand(['anaconda-project', 'remove-env-spec', '--name', 'foo']) assert code == 1 out, err = capsys.readouterr() assert '' == out assert "Environment spec foo doesn't exist.\n" == err
def check_list_empty(dirname): _monkeypatch_pwd(monkeypatch, dirname) code = _parse_args_and_run_subcommand(['anaconda-project', 'list-downloads']) assert code == 0 out, err = capsys.readouterr() expected_out = "No downloads found in project.\n" assert out == expected_out
def check(dirname): code = _parse_args_and_run_subcommand(['anaconda-project', 'upload', '--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(['anaconda-project', 'remove-env-spec', '--name', 'foo']) assert code == 1 out, err = capsys.readouterr() assert '' == out assert "At least one environment spec is required; 'foo' is the only one left.\n" == err
def check(dirname): _monkeypatch_pwd(monkeypatch, dirname) code = _parse_args_and_run_subcommand(['anaconda-project', 'export-env-spec', '--name', 'foo']) assert code == 2 out, err = capsys.readouterr() assert 'ENVIRONMENT_FILE' in err assert '' == out
def check_empty(dirname): _monkeypatch_pwd(monkeypatch, dirname) code = _parse_args_and_run_subcommand( ['anaconda-project', 'list-services']) assert code == 0 out, err = capsys.readouterr() assert err == '' assert out == "No services found for project: {}\n".format(dirname)
def test_main_help(capsys): code = _parse_args_and_run_subcommand(['project', '--help']) out, err = capsys.readouterr() assert "" == err assert expected_usage_msg == out assert 0 == code
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(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): _monkeypatch_pwd(monkeypatch, dirname) _monkeypatch_add_env_spec(monkeypatch, SimpleStatus(success=True, description='Environment looks good.')) code = _parse_args_and_run_subcommand(['anaconda-project', 'add-env-spec', '--name', 'foo']) assert code == 0 out, err = capsys.readouterr() assert ('Environment looks good.\n' + 'Added environment foo to the project file.\n') == out assert '' == err
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): _monkeypatch_pwd(monkeypatch, dirname) code = _parse_args_and_run_subcommand(['anaconda-project', 'list-downloads']) 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_run_nonexistent(dirname): project_dir = os.path.join(dirname, "nope") result = _parse_args_and_run_subcommand( ['anaconda-project', 'run', '--directory', project_dir]) assert 1 == result out, err = capsys.readouterr() assert out == "" assert ("Project directory '%s' does not exist." % project_dir) 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)) 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) code = _parse_args_and_run_subcommand(['anaconda-project', 'remove-download', 'TEST_FILE']) project = Project(dirname) assert not project.downloads assert code == 1 out, err = capsys.readouterr() assert ("Download requirement: TEST_FILE not found.\n") == err assert '' == out
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): _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): subdir = os.path.join(dirname, "foo") code = _parse_args_and_run_subcommand(['anaconda-project', 'init', '--yes', '--directory', subdir]) assert code == 0 assert os.path.isfile(os.path.join(subdir, DEFAULT_PROJECT_FILENAME)) assert os.path.isdir(subdir) out, err = capsys.readouterr() assert ("Project configuration is in %s\n" % (os.path.join(subdir, DEFAULT_PROJECT_FILENAME))) == out assert '' == err
def check(dirname): subdir = os.path.join(dirname, "foo") code = _parse_args_and_run_subcommand(['anaconda-project', 'init', '--directory', subdir]) assert code == 1 assert not os.path.isfile(os.path.join(subdir, DEFAULT_PROJECT_FILENAME)) assert not os.path.isdir(subdir) out, err = capsys.readouterr() assert ("Create directory '%s'? " % subdir) == out assert ("Project directory '%s' does not exist.\nUnable to load the project.\n" % subdir) == err
def check_missing_env(dirname): env_name = 'not-there' code = _parse_args_and_run_subcommand(['anaconda-project', 'list-packages', '--directory', dirname, '--env-spec', env_name]) assert code == 1 expected_err = "Project doesn't have an environment called '{}'\n".format(env_name) out, err = capsys.readouterr() assert out == "" assert err == expected_err
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 assert code == 0 out, err = capsys.readouterr() filename = os.path.join(dirname, 'foo') assert ("Removed downloaded file %s.\nRemoved TEST_FILE from the project file.\n" % 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 == 0 out, err = capsys.readouterr() assert ('File downloaded.\n' + 'Added http://localhost:123456 to the project file.\n') == out assert '' == err return params
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