De TI sou muito novo para Programação Python e tem uma pergunta no teste, utilizando Pytest. Em um alto nível, eu tenho um programa que leva de 3 pedaços de entrada do usuário e gera um arquivo de texto no final. Para meus testes, eu quero, basicamente, compare os arquivos de meu programa de saída, com o que deve ser.
Agora, eu não estou certo como ir sobre os testes. O próprio programa não requer argumentos, mas só depende de 3 pedaços de entrada do usuário, o que eu vou usar monkeypatch para simular. Posso criar um novo arquivo chamado python program_test.py e ter métodos aqui que chamar o programa original? Eu tentei isso, mas eu estou tendo problemas quando, na verdade, chamar o programa original e o envio na simulação de entradas. Ou, tenho testes no programa original (o que não faz muito sentido para mim).
Eu quero algo como isto:
import my_program
def test_1():
inputs = iter(['input1', 'input2', 'input3'])
monkeypatch.setattr('builtins.input', lambda x: next(inputs))
my_program
# now do some assertion with some file comparison
# pseudocode
assert filecompare.cmp(expectedfile, actualfile)
Isso só parece estar a executar o programa original e eu acho que é para fazer com a declaração de importação i.e. ele nunca está executando o test_1(), provavelmente porque eu nunca chamá-lo? Qualquer ajuda seria apreciada!