Jestem dość początkujący w programowaniu w Pythonie, i mam pytanie dotyczące testów z użyciem Pytest. Na wysokim poziomie mam program, który ma 3 części użytkownika i w końcu generuje plik tekstowy. Dla moich testów chcę w zasadzie porównać pliki, które wyświetlał mój program, z tym, jakimi powinny być.
Teraz nie wiem, jak zabrać się do testowania. Sam program nie przyjmuje argumentów, a po prostu opiera się na 3 części wejściowe użytkownika, do modelowania których będę używać monkeypatch. Czy mogę utworzyć nowy plik o nazwie python program_test.py i czy tu metody, które powodują oryginalny program? Próbowałem tego, ale mam problemy z połączeniem oryginalnego programu i wysłaniem symulowanych danych wejściowych. Czy mam testy w oryginalnym programie (co dla mnie nie ma większego sensu).
Chcę coś takiego:
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)
To po prostu wydaje się uruchomieniem programu źródłowego, i myślę, że jest to związane z operatorem importu, Czyli nigdy się nie uruchamia test_1 (), prawdopodobnie dlatego, że nigdy go nie halo? Każda pomoc będzie wdzięczna!