odufrn / odufrn-downloader

Pacote para baixar os dados do portal de dados abertos da UFRN
https://odufrn.github.io/odufrn-downloader/
MIT License
32 stars 4 forks source link

Melhoria no teste assert console #91

Open itepifanio opened 4 years ago

itepifanio commented 4 years ago

Feature

Checklist:

Para entender melhor

Os testes de print em terminal são extremamente simples, eles literalmente só verificam se algo foi impresso na tela. Para melhorar os testes que imprimem mensagens na tela deve-se realizar o assert se o que foi impresso é o que realmente queríamos.

Para modificar o assert_console que agora receberá uma mensagem todas funções de teste que utilizam o assert_console devem ter uma mensagem a ser ligada.

Exemplo

Atualmente

from odufrn_downloader import ODUFRNDownloader
ufrn_data = ODUFRNDownloader()

# Atualmente temos a seguinte função:
def assert_console(fun):
    """Recebe função que printa algo na tela e realiza assert
    que verifica se foi printado."""
    unit = unittest.TestCase()
    return unit.assertTrue(len(input_value(fun)) > 0)

# A nova função ficaria algo assim:
def assert_console(fun, str: message):
    """Recebe função que printa algo na tela e realiza assert
    que verifica se foi printado."""
    unit = unittest.TestCase()
    return unit.assertEquals(input_value(fun), message)

Participe do Hacktoberfest!

Contribua com uma issue com a label hacktoberfest e abra um pull request durante o mês de outubro para ganhar os brindes do GitHub! Para se inscrever, acesse https://hacktoberfest.digitalocean.com/register

BrenoBaiardi commented 4 years ago

Oi! Vou começar a examinar este para trabalhar nesses testes. Tem alguma recomendação para capturar a o que foi printado em console ?

BrenoBaiardi commented 4 years ago

agora vi a estrutura, já está sendo capturado em Utils. vou examinando as estruturas utilizadas. qualquer problema eu retorno

itepifanio commented 4 years ago

agora vi a estrutura, já está sendo capturado em Utils. vou examinando as estruturas utilizadas. qualquer problema eu retorno

Olá @BrenoBaiardi, exato input_value() retorna o que foi capturado na tela. Qualquer dúvida pode nos contatar.

BrenoBaiardi commented 4 years ago

nunca fiz um pull request pra uma issue, eu preciso fazer alguma coisa diferente? Eu acredito que consegui fazer o suficiente, o teste que utiliza o assert console para fazer a validação dos conjuntos funciona, mas não identifiquei a diferença que impede que o assert de exception funcione.

Poderia me dizer como proceder? seria só fazer o request normalmente pra vocês poderem avaliar e me dizer qual seria o próximo passo?

itepifanio commented 4 years ago

Olá @BrenoBaiardi.

Já verificou se todos os testes estão passando? Para isso utiliza-se python -m unittest -v Caso todos estejam passando, pode sim submeter sua contribuição pra gente avaliar.

Não existe nenhuma diferença para contribuir para uma issue, elas existem apenas para orientar os desenvolvedores nas tarefas a serem resolvidas. Geralmente eu gosto de começar o título de um pull request com "Resolve #91 - algum texto aqui", pra ficar claro que problema o PR está resolvendo.

Obs:. Utilizar # + referencia alguma issue, por isso o "Resolve #n°".

Eu só fiquei um pouco confuso nessa última sentença, poderia esclarecer?

[...] mas não identifiquei a diferença que impede que o assert de exception funcione.

BrenoBaiardi commented 4 years ago

Sobre a frase abaixo:

[...] mas não identifiquei a diferença que impede que o assert de exception funcione.

No código de validação de Print de Exception no Console o retorno que o programa dá e o Resultado Esperado, são exatamente iguais, não consigo identificar qual a diferença que está impedindo o último Passed

Posso reestruturar o Pull Request para o padrão correto, mas ele ainda não Resolve a issue, mas ele com certeza progride na config dos Métodos de Util. Se só for possível fazer o PR uma vez que esteja completamente resolvido, é só me avisar e eu concluo antes de subir.

Só queria saber se ta caminhando pro lado certo

BrenoBaiardi commented 4 years ago

Estava examinando a esteira de CI, e vi que o erro do teste ja barrou o PR, vou melhorar o Teste

itepifanio commented 4 years ago

[...] não consigo identificar qual a diferença que está impedindo o último Passed

Sim, eu escrevi ele para melhorar depois, eu sabia que do jeito que estava o assert_console() não serveria para verificar exceções.

Posso reestruturar o Pull Request para o padrão correto, mas ele ainda não Resolve a issue, mas ele com certeza progride na config dos Métodos de Util. Se só for possível fazer o PR uma vez que esteja completamente resolvido, é só me avisar e eu concluo antes de subir.

A gente só aceita quando o PR foi finalizado, mas você pode sim ir commitando até finalizar e depois avisar a gente quando finalizar.

Só queria saber se ta caminhando pro lado certo

Pelo que vi do seu código até agora está ok. O método util realmente é o que imaginavamos, falta apenas estender o uso para as classes que utilizam a função.