TI sono abbastanza nuovo di Programmazione Python e ho una domanda sul test utilizzando Pytest. In una di alto livello, ho un programma che si prende 3 pezzi di input dell'utente e genera un file di testo alla fine. Per i miei test, voglio confrontare il mio programma riprodotto, con quello che dovrebbe essere.
Ora, io non sono sicuro di come andare a questo proposito il test. Il programma di per sé privo di argomenti, ma appena si basa su 3 pezzi di input dell'utente, che utilizzerò monkeypatch per simulare. Posso creare un nuovo file chiamato python program_test.py e hanno metodi di qui che di chiamare il programma originale? Ho provato questo, ma ho problemi a chiamare effettivamente il programma originale e l'invio in simulato ingressi. O, non ho prove in programma originale (che non ha molto senso per me).
Voglio qualcosa di simile a questo:
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)
Questo sembra proprio essere in esecuzione del programma originale, e credo proprio che a che fare con l'istruzione import cioè non è mai in esecuzione test_1(), probabilmente perché non mi chiami? Qualsiasi aiuto sarebbe apprezzato!