def test_add_credential_to_empty(tmpdir): new_cred = auth.Auth("user", "pass") with temp_environ(HOME=str(tmpdir)), \ patch("hop.auth.read_new_credential", MagicMock(return_value=new_cred)): args = MagicMock() args.cred_file = None args.force = False auth.add_credential(args) check_credential_file(configure.get_config_path("auth"), new_cred)
def test_add_credential_to_nonempty(auth_config, tmpdir): old_cred = auth.Auth("username", "password") new_cred = auth.Auth("other_user", "other_pass") with temp_config(tmpdir, auth_config) as config_dir, temp_environ(HOME=config_dir), \ patch("hop.auth.read_new_credential", MagicMock(return_value=new_cred)): args = MagicMock() args.cred_file = None args.force = False auth.add_credential(args) check_credential_file(configure.get_config_path("auth"), old_cred) check_credential_file(configure.get_config_path("auth"), new_cred)
def test_add_credential_to_nonempty_hostname_no_conflict(tmpdir): # unfortunately, we must permit duplicate usernames if one has a hostname and the other does not old_cred = auth.Auth("username", "password") new_cred = auth.Auth("username", "other_pass", "example.com") with temp_environ(HOME=str(tmpdir)), \ patch("hop.auth.load_auth", MagicMock(return_value=[old_cred])), \ patch("hop.auth.read_new_credential", MagicMock(return_value=new_cred)): args = MagicMock() args.cred_file = None args.force = False auth.add_credential(args) check_credential_file(configure.get_config_path("auth"), old_cred) check_credential_file(configure.get_config_path("auth"), new_cred)
def test_add_credential_conflict_no_host(tmpdir, caplog): old_cred = auth.Auth("username", "password") new_cred = auth.Auth("username", "other_pass") with temp_environ(HOME=str(tmpdir)), \ patch("hop.auth.read_new_credential", MagicMock(return_value=new_cred)): auth.write_auth_data(configure.get_config_path("auth"), [old_cred]) args = MagicMock() args.cred_file = None args.force = False auth.add_credential(args) # without the force option, the old credential should not be overwritten check_credential_file(configure.get_config_path("auth"), old_cred) assert "Credential already exists; overwrite with --force" in caplog.text args.force = True auth.add_credential(args) # with the force option, the old credential should be overwritten check_credential_file(configure.get_config_path("auth"), new_cred)