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 test_contructor_updates_state_shema_in_change_cmd(self):
        score_category = (
            suggestion_models.SCORE_TYPE_QUESTION +
            suggestion_models.SCORE_CATEGORY_DELIMITER + 'skill_id')
        change = {
            'cmd': (
                question_domain
                .CMD_CREATE_NEW_FULLY_SPECIFIED_QUESTION),
            'question_dict': {
                'question_state_data': self.VERSION_27_STATE_DICT,
                'question_state_data_schema_version': 27,
                'language_code': 'en',
                'linked_skill_ids': ['skill_id'],
                'inapplicable_skill_misconception_ids': []
            },
            'skill_id': 'skill_id',
            'skill_difficulty': 0.3
        }
        self.assertEqual(
            change['question_dict']['question_state_data_schema_version'], 27)

        suggestion = suggestion_registry.SuggestionAddQuestion(
            'suggestionId', 'target_id', 1, suggestion_models.STATUS_IN_REVIEW,
            self.author_id, None, change, score_category, 'en', False,
            self.fake_date)
        self.assertEqual(
            suggestion.change.question_dict[
                'question_state_data_schema_version'],
            feconf.CURRENT_STATE_SCHEMA_VERSION)