def setup_keyring(keyring_name):
    '''Setup the keyring'''
    keyring_path = os.path.join("test", "outputdata", keyring_name)
    # Delete the entire keyring
    shutil.rmtree(keyring_path, ignore_errors=True)
    os.makedirs(keyring_path)
    gpg = GPG(gnupghome=keyring_path, gpgbinary="gpg")
    for key_name in ["key1_private", "key1_public"]:
        with open(os.path.join("test", "inputdata", key_name + ".txt"), "r") as keyfile:
            key_str = "".join(keyfile.readlines())
        import_result = gpg.import_keys(key_str)
        print("Import result:", type(import_result))
        print(import_result.__dict__)
        if import_result.count == 1 and len(set(import_result.fingerprints)) == 1:
            print("Got one import result")
    return gpg
def _exit_with_failure(cls, terminal_msg):
        timestamp_msg = (
            f"timestamp: {cls._iso_timestamp_for_now()}\n"
            if cls._should_print_backtrace_to_terminal
            else ""
        )
        details_msg = (
            ""
            if cls._should_print_backtrace_to_terminal
            else "\n\n(Use --print-exception-stacktrace to see more error details.)"
        )
        terminal_msg = terminal_msg or "<no exit reason provided>"
        formatted_terminal_msg = cls._EXIT_FAILURE_TERMINAL_MESSAGE_FORMAT.format(
            timestamp_msg=timestamp_msg, terminal_msg=terminal_msg, details_msg=details_msg
        )
        # Exit with failure, printing a message to the terminal (or whatever the interactive stream is).
        cls._exiter.exit_and_fail(msg=formatted_terminal_msg, out=cls._interactive_output_stream)