Ich habe ein Modul mit zwei Modulvariablen. Ich möchte sie für alle Tests in meiner Datei veröffentlichen. Anfangs habe ich Affen gepatcht, aber das stellte sich als Problem für Tests in anderen Dateien heraus, die diese Variablen benötigen, um intakt zu sein. Das ist etwas, was ich gerade herausgefunden habe. Es ist schrecklich, aber es funktioniert. Ich möchte etwas tun, die mehr „durch das Buch“, obwohl (dh etwas, das einen einzigen Gedankenstrich für alle Variablen halten werde ich Patch) ist:patchen mehrere Modulvariablen in allen Tests
@pytest.yield_fixture(autouse=True)
def stub_module_variables():
with patch.object(my_module, 'old_first_variable', new=new_first_variable):
with patch.object(my_module, 'old_second_variable', new=new_second_variable):
yield
Warum machst du das schrecklich? – sobolevn
Ich nehme an, Sie wollen eine pytest spezifische Antwort? (z.B. _nicht_ eine "Unittest" -Antwort?) Wenn das der Fall ist, sollten wir wahrscheinlich das 'pytest'-Tag hinzufügen, wenn es eines gibt ...) – mgilson
Es wird bei jeder Variablen, die ich patche, eingezeichnet. "Schrecklich" ist vielleicht ein falsches Wort hier, aber ich fühle mich wie der richtige Weg, dies zu tun, wäre etwas, das einen einzigen Gedankenstrich behält. – iknownothing