Пример #1
0
def gdrive_create_text_file():
    """
    Processa requisição POST
    """
    # Obtém valor dos parâmetros passados na requisição POST
    file_name = request.form['titulo']
    file_text = request.form['descripcion']

    # Retorna código 404 caso os parâmetros tenham sido informados de forma inadequada
    if len(file_name) > MAX_GDRIVE_FILE_NAME_SIZE:
        return '', 404

    # Obtém credenciais
    creds = acquire_google_oauth_token(SCOPES, CREDENTIALS_FILE, TOKEN_FILE)

    # Cria arquivo com os parâmetros especificados
    file = create_text_file(file_name, file_text, creds)

    # Prepara resposta em formato JSON
    response = jsonify({
        'id': file.get('id'),
        'titulo': file_name,
        'descripcion': file_text
    })

    return response
Пример #2
0
def gdrive_search(id):
    """
    Processa URL no formato GET /search-in-doc/<string:id>?word=termo_de_busca
    """
    try:
        # Obtém valor do parâmetro word passado na URL
        word = request.args.get('word')

        # Obtém credenciais
        creds = acquire_google_oauth_token(SCOPES, CREDENTIALS_FILE,
                                           TOKEN_FILE)

        # Realiza busca no documento
        search_result = exists_file_with_text_and_id(word, id, creds)

        # Retorna código de status de acordo com o resultado da busca
        if search_result:
            return '', 200
        else:
            return '', 404

    # Caso ocorra qualquer erro no processamento da requisição
    except Exception as e:

        # Retorna código de status 500 ("No caso de não poder cria-lo ")
        return '', 500
Пример #3
0
    def test_gdrive_create(self):
        """
        Testa a criação de arquivo
        """
        # Timestamp do momento pré-criação do arquivo
        now = datetime.datetime.now()

        # Variáveis para o teste
        file_name = f'teste_api_google_{now}.txt'
        file_data = f'Timestamp: {now}'

        # Obtém credenciais
        creds = acquire_google_oauth_token(SCOPES, CREDENTIALS_FILE,
                                           TEST_TOKEN_FILE)

        # Cria arquivo de testes
        result = create_text_file(file_name, file_data, creds)

        self.assertIsNotNone(result.get('id'))
Пример #4
0
    def test_token_acquisition(self):
        """
        Testa a aquisição de token de acesso à API do gDrive. Ao rodar este teste, o navegador
        é aberto automaticamente para que o usuário escolha sua conta do Google. A execução fica
        bloqueado aguardando a açao do usuário.
        """
        # Remove arquivo de token, caso exista
        if os.path.exists(TEST_TOKEN_FILE):
            os.remove(TEST_TOKEN_FILE)

        # Obtém credenciais
        creds = acquire_google_oauth_token(SCOPES, CREDENTIALS_FILE,
                                           TEST_TOKEN_FILE)

        # Verifica se as credenciais foram obtidas com sucesso
        self.assertIsNotNone(creds)

        # Verifica se o arquivo com as credenciais foi salvo corretamente
        self.assertTrue(os.path.exists(TEST_TOKEN_FILE))
Пример #5
0
    def test_gdrive_search(self):
        """
        Testa a busca em documento
        """
        # Variáveis para execução do teste de busca
        test_file_id = '1RrmV8yFnQ8WxdrtCvHjmEnv9TM6wo-lL75AVImhHLnk'
        word_in_file = 'teste'
        word_not_in_file = 'termo_muito_improvável_de_ocorrer_naturalmente_em_um_doc'

        # Obtém credenciais
        creds = acquire_google_oauth_token(SCOPES, CREDENTIALS_FILE,
                                           TEST_TOKEN_FILE)

        # Realiza busca em documento que sabidamente contém o texto
        search_result = exists_file_with_text_and_id(word_in_file,
                                                     test_file_id, creds)
        self.assertTrue(search_result)

        # Realiza busca em documento que sabidamente não contém o texto
        search_result = exists_file_with_text_and_id(word_not_in_file,
                                                     test_file_id, creds)
        self.assertFalse(search_result)