ich Einheit bin versucht, ein Stück Code testen:Mock_open CSV keine Daten Datei nicht immer
def _parse_results(self, file_name):
results_file = open(file_name)
results_data = list(csv.reader(results_file))
index = len(results_data[1])-1
results_file.close()
return float(results_data[1][index])
unter Verwendung mock_open wie so:
@mock.patch('path.open', mock.mock_open(read_data='test, test2, test3, test4'))
def test_parse_results(self):
cut = my_class(emulate=True)
self.assertEqual(VAL, cut._parse_results('file'))
Das Problem, das ich in laufen lasse, ist, dass ich Erhalte keine Daten beim Ausführen von csv.reader. Wenn ich results_file.readlines() ausführe, bekomme ich "test, test2, test3, test4", was bedeutet, dass mock_open korrekt funktioniert. Aber wenn ich csv.reader (results_file) starte, verliere ich alle Daten.
Ich denke, das ist, weil die CSV ist eigentlich eine _csv.c, ein kompiliertes c-Modul, so dass es aussieht, als ob die Mocks nicht übertragen werden? – nadersoliman