Wie kann ich behaupten Listen Gleichstellung mit pytest

Ich versuche, mich einige unit-tests mit pytest.

Ich dachte an Dinge wie:

actual = b_manager.get_b(complete_set)
assert actual is not None
assert actual.columns == ['bl', 'direction', 'day']

Die erste Behauptung in Ordnung, aber mit dem zweiten habe ich einen Wert-Fehler.

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Ich nehme an, es ist nicht der richtige Weg zur Durchsetzung der Gleichheit von zwei unterschiedlichen Listen mit pytest.

Wie kann ich behaupten, dass der dataframe Spalten (a-Liste) ist gleich dem erwarteten?

Dank

Der traceback umfasst ein Tipp... Verwenden a.any() oder a.all(). BTW assert ist nicht die 'normale' Art und Weise zu tun, unittesting
assert ist DIE Möglichkeit zum testen der Werte unter pytest. pytest intern schreibt byte-code von asserts und nennt seine eigenen Vergleich-Funktion.
Ist actual.columns eine Liste? Die traceback-schlägt es ist ein bool.
die tatsächliche.Spalten ist eine Liste, in der Tat. Nach ein wenig nachforschungen erkannte ich, dass der Vergleich gibt eine weitere Liste mit booleans zu überprüfen, ob der Inhalt unterschiedlich ist, oder nicht. [True, False, True, True ..].Und das ist der Grund, warum ich die .Alle().. werden in der Lage zu geben, die Behaupten, eine einzigartige Boolean nicht eine Liste boolescher Werte
Ich bin mit pytest, nicht die eingebaute unittest-framework. Was soll dann sein, eine normale Art und Weise zu tun unittest?

InformationsquelleAutor bAN | 2017-10-24

Schreibe einen Kommentar