-
Notifications
You must be signed in to change notification settings - Fork 4
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
Resolve #91 - PR de correção de Tests - assert_console #93
base: master
Are you sure you want to change the base?
Conversation
…(funcao,mensagem)
…ista de discentes
…(funcao,mensagem)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@BrenoBaiardi pelo que vi do seu código a modificação do assert_console()
está correta. Para funcionar precisa agora modificar os testes que chamam essa função. Além disso, utilizamos um estilo de código chamado PEP8, seu código está falhando em atender o estilo agora, para verificar se está tudo ok basta rodar find . -name \*.py -exec pycodestyle --ignore=E402 {} +
no terminal para verificar se o seu código está estilizado.
Continuo trabalhando para resolver os item mencionados... Sobre o PEP8 e o comando mencionado para verificação, não consegui fazer ele ser executado aqui, mas pelo que vi o Travis faz essa verificação, correto? |
Para fazer a verificação no seu repositório local, basta instalar o pycodestyle, $ find . -name \*.py -exec pycodestyle --ignore=E402 {} + |
O comando que vocês usam me retorna dizendo que não foi possível encontrar os arquivos com esta sintaxe $ find "*.py". |
Olá @BrenoBaiardi , acredito também que seja algo do windows. Vou procurar mais sobre como rodar os scripts nessa plataforma e caso eu ache, postarei aqui. Caso você deseje algo de rápida solução ou uma solução temporária, deixo aqui links de como utilizar o bash do UNIX no prompt de comando. |
O travis agora está acusando erros no unittest, vou verificar, mas não acredito que sejam nos códigos que eu alterei. |
tests/utils.py
Outdated
def assert_console(fun, message: str): | ||
"""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) | ||
return unit.assertEqual(message, input_value(fun)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Essa função é utilizada em inúmeros testes do projeto, no qual, alguns não apresentam o parâmetro message
, por isso os erros estão sendo apresentados no unittest pelo travis.
Sugiro fazer alguma verificação para checar o valor da mensagem.
Exemplo:
if message:
return unit.assertEqual(message, input_value(fun))
else:
# Coloque algo aqui
pass
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Muito obrigado, vou verificar essa condição, não me atentei à esse caso,
Eu fiz um CTRL+F de "assert_console" e pensei que tinha encontrado todos os usos.
valeu
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lembre de dar um valor padrão para o parâmetro, dessa forma não vai ser apontado erro caso estejam chamando o assert_console
e não estiverem passando o valor do message
.
Acredito que dessa forma seja mais fácil e mais correto do que a que eu apontei acima.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lembre de dar um valor padrão para o parâmetro, dessa forma não vai ser apontado erro caso estejam chamando o
assert_console
e não estiverem passando o valor domessage
.Acredito que dessa forma seja mais fácil e mais correto do que a que eu apontei acima.
O ideal é que cada teste tenha sua mensagem verificada mesmo. Mas tem umas mensagens gigantescas, para verificar elas daria bastante trabalho, talvez até necessitasse criar arquivos de texto com as mensagens para comparar, algo a ser discutido, por enquanto deixar um valor default como mencionado por @johnazedo é o suficiente.
desculpem à demora de retorno, estou trabalhando ainda nos códigos para entrega final |
Boa noite Srs, Quando a complexidade das mensagens de comparação for maior, o método vai validar utilizando a lógica anterior, conforme o comentado por @johnazedo . Seria interessante desenvolver uma outra maneira e/ou padronizar todas as mensagens de "não sucesso" que possam ocorrer, dessa forma uma validação mais genérica poderia ser feita utilizando asserções com as strings recebidas, ao invés de utilizar a lógica de Len(). Dada a estrutura dos testes e dos erros que aparecem, uma vez que eles poderiam retornar Exceptions, não seria melhor criar uma ou mais classes herdando Exception que pudesse fazer a validação sem depender dos prints? {mesmo que somente para o caso de problemas mais complexos, e com mais possibilidades de outputs errados) Agradeço a oportunidade de participar, poderiam validar o build que foi enviado e verificar se o merge é possível, ou se ainda é preciso mais algum progresso |
Pull request inicial para validação,
Se estiver de acordo com o esperado, darei continuidade indo mais afundo na issue e tratando outros pontos levantados