TI soy bastante nuevo en Programación Python y tengo una pregunta en la prueba con Pytest. En un alto nivel, tengo un programa que tarda de 3 piezas de la entrada del usuario y genera un archivo de texto en la final. Para mis pruebas, quiero básicamente comparar los archivos de mi programa se emite, con lo que debería ser.
Ahora, no estoy seguro de cómo ir sobre la prueba. El programa en sí no tiene argumentos, pero sólo se basa en 3 piezas de la entrada del usuario, que voy a utilizar monkeypatch a simular. ¿Puedo crear un nuevo archivo de python llamado program_test.py y han métodos de aquí que se llame el programa original? He intentado hacer esto, pero estoy teniendo problemas en realidad, se llama el programa original y el envío en la simulación de las entradas. O, ¿tengo pruebas en el programa original (que no tiene mucho sentido para mí).
Quiero algo como esto:
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)
Esto sólo parece estar ejecutando el programa original y creo que ver con la declaración de importación, es decir, nunca se ejecuta test_1(), probablemente porque nunca me llaman? Cualquier ayuda se agradece!