Ich schreibe Tests für meine Flask-Anwendungsendpunkte. Der erste Endpunkt nimmt eine mehrteilige Anfrage entgegen und speichert die bereitgestellten Dateien auf dem Server. Der zweite Endpunkt ruft die Metadaten der gespeicherten Dateien ab.
Ich möchte erweiterbare Tests für diese Endpunkte erstellen, weiß aber nicht, wie ich Fixtures und Parameter richtig anordnen soll. Gehen Sie davon aus, dass das Posten einer Datei ein teurer Vorgang ist, den ich nur einmal pro Klasse ausführen möchte. Hier ist ein vereinfachter Code für das, was ich erreichen möchte:
Tests zeigen ScopeMismatch: Sie haben versucht, auf das funktionsbezogene Fixture zuzugreifen input_file_id mit einem klassenbezogenen Anforderungsobjekt.. Anscheinend hat input_file_id einen Funktionsbereich, obwohl ich ihn auf Klasse gesetzt habe.
Ich kann die Bereiche ändern zu Funktion, aber ich möchte die Datei einmal pro Datensatz hochladen, nicht für jede Testfunktion.
Ich habe gehört, dass es eine gute Praxis ist, nur eine Behauptung pro zu haben Test, aber ist es in diesem Fall wahr?
Ich muss die Argumente „expected_label“ und „expected_media_type“ in Tests wiederholen, die sie nicht verwenden. Wie kann man das vermeiden?
Es gibt eine ähnliche Frage, die bereits mit Pytest beantwortet wurde: Kombinieren Sie die Parametrisierung auf Klassenebene mit klassenbezogenen Fixtures, aber ich konnte sie nicht auf meinen Fall anwenden , weil meine Parametrisierung auch erwartete Werte umfasst.
Ich schreibe Tests für meine Flask-Anwendungsendpunkte. Der erste Endpunkt nimmt eine mehrteilige Anfrage entgegen und speichert die bereitgestellten Dateien auf dem Server. Der zweite Endpunkt ruft die Metadaten der gespeicherten Dateien ab. Ich möchte erweiterbare Tests für diese Endpunkte erstellen, weiß aber nicht, wie ich Fixtures und Parameter richtig anordnen soll. Gehen Sie davon aus, dass das Posten einer Datei ein teurer Vorgang ist, den ich nur einmal pro Klasse ausführen möchte. Hier ist ein vereinfachter Code für das, was ich erreichen möchte: [code]@pytest.mark.parametrize( ("title", "content_type", "expected_label", "expected_media_type"), [ ("My Title", "text/plain; charset=UTF-8", "My Title", "text/plain"), # remaining test parameters ... ] ) class TestUploadFile: @pytest.fixture(scope="class") def input_file_id(self, app_client, title, content_type): r = app_client.post( "/upload", data={"file": (open("example.txt", "rb"), title, content_type} ) return r.json["file"]. # response contains file id
def test_file_has_media_type(self, file_resource, expected_label, expected_media_type): assert file_resource.json["mediaType"] == expected_media_type [/code] Hier sind die Probleme und Fragen, die ich habe: [list] [*]Tests zeigen ScopeMismatch: Sie haben versucht, auf das funktionsbezogene Fixture zuzugreifen input_file_id mit einem klassenbezogenen Anforderungsobjekt.. Anscheinend hat input_file_id einen Funktionsbereich, obwohl ich ihn auf Klasse gesetzt habe. [*]Ich kann die Bereiche ändern zu Funktion, aber ich möchte die Datei einmal pro Datensatz hochladen, nicht für jede Testfunktion. [*]Ich habe gehört, dass es eine gute Praxis ist, nur eine Behauptung pro zu haben Test, aber ist es in diesem Fall wahr? [*]Ich muss die Argumente „expected_label“ und „expected_media_type“ in Tests wiederholen, die sie nicht verwenden. Wie kann man das vermeiden? [/list] Es gibt eine ähnliche Frage, die bereits mit Pytest beantwortet wurde: Kombinieren Sie die Parametrisierung auf Klassenebene mit klassenbezogenen Fixtures, aber ich konnte sie nicht auf meinen Fall anwenden , weil meine Parametrisierung auch erwartete Werte umfasst.
Ich habe einen Prozess, der im Hintergrund ausgeführt wird. >
PATH/bin/killProcs.sh: line 101: 13486 Killed taskset -c 39,40 RUNNER SCRIPT -load PROCESSCODE -proctype TYPE1 -procname NAME1...
Ich habe dieses Clicker-Spiel codiert und alles, was ich möchte, ist die Anzahl der Cookies, die in einem Fenster sein sollen, und alle Fenster sollen in einem beweglichen Fenster verknüpft werden....
Ich schreibe einen Unit-Test, bei dem ich das API-Verhalten simulieren muss. Die Frage besteht aus zwei Teilen. Im Moment verwende ich Fixture, was gut funktioniert, aber ich verstehe nicht wirklich,...
Dies hängt in gewisser Weise mit meinem tatsächlichen Code zusammen. Die in Pytest Fixture verwendete Async-Kontextmanagerklasse gibt ein Async-Generatorobjekt anstelle der erwarteten...
Ich versuche zu verstehen, wie und wann Rückgabewerte von Pytest-Fixtures zwischengespeichert werden. Nach meinem Verständnis besteht das Ziel von Vorrichtungen (insbesondere sitzungsbezogenen...