Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refatoração e ajustes no test_api.py #79

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

thisiscleverson
Copy link
Contributor

Refatorei os testes e os coloquei para funcionar novamente. Não adicionei muitos testes, pois foquei em corrigir e fazer os testes existentes funcionarem novamente.

Algumas coisas que fiz

1. Criei mocks extras para aggregates, themed_excerpts e cities.

Criei esses mocks porque configure_api_app requeria três argumentos que estavam faltando.

2. Criei o método create_mock_city_interface.

Criei esse método para separar os métodos get_cities e get_city, permitindo que fossem usados no MockCityAccessInterface.

3. Criei o método get_test_client(self, **kwargs) que retorna uma instância de TestClient.

Este método cria e retorna uma instância de TestClient configurada com mocks personalizados para testar a aplicação.

O método aceita argumentos extras (kwargs), onde cada chave corresponde ao nome de um componente (como gazettes) e o valor é o mock personalizado para substituir o padrão. Isso permite passar mocks personalizados sem a necessidade de reescrever o configure_api_app.

Exemplo:

interface = self.create_mock_gazette_interface(
            (
                1,
                [
                    {
                        "territory_id": "4205902",
                        "date": today,
                        "scraped_at": formatted_datetime_now,
                        "url": "https://queridodiario.ok.org.br/",
                        "territory_name": "My city",
                        "state_code": "My state",
                        "excerpts": [],
                        "is_extra_edition": False,
                        "edition": "12.3442",
                        "txt_url": "https://queridodiario.ok.org.br/",
                    }
                ],
            )
        )

client = self.get_test_client(gazettes=interface)

4. criei alguns testes para scraped_since e scraped_until

@thisiscleverson thisiscleverson changed the title Refatoração Ajustes no test_api.py Refatoração e ajustes no test_api.py Jan 11, 2025
@ogecece
Copy link
Member

ogecece commented Jan 13, 2025

Legal! Normalmente PR em rascunho eu aguardo ficar pronto para revisar. Mas se quiser opinião sobre algo específico pode falar

@thisiscleverson
Copy link
Contributor Author

Bom, eu coloquei como draft pq eu não tenho muito xp com testes e gostaria de receber feedback sobre o PR — seja sobre a ideia, melhorias ou possíveis erros que precisam ser corrigidos ou testes que faltaram.

- Coloquei anotações de tipo nos métodos.

- Criei o método `_to_number` para converter string para número. Esse método é usado para substituir a conversão direta usando a função `int()`, pois usando esse método estava dando um erro no `test_load_configuration_with_empty_envvars` onde a função `int()` não conseguia converter a string vazia para número. Com isso, o método tenta converter para inteiro, mas se a String estiver vazia, com espaços ou se tiver letras, vai retornar o valor padrão passado pelo parâmetro do método.
- remoção do campo `QUERIDO_DIARIO_OPENSEARCH_INDEX`.

- adição de novos asserts para verificar todas as variaveis de ambiente.
@thisiscleverson
Copy link
Contributor Author

Fiz a refatoração do test_config.py.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants