Ich benutze Python 2.7 und tauchte in TDD. Ich versuche, eine einfache Funktion zu testen, die das csv-Modul verwendet und ein csv.reader-Objekt zurückgibt. Ich möchte testen, dass der richtige Objekttyp mit dem assertIsInstance-Test zurückgegeben wird, aber ich habe Probleme herauszufinden, wie dies funktioniert.Wie bekomme ich Python Unittest um zu testen, dass eine Funktion ein csv.reader Objekt zurückgibt?
#!/usr/bin/python
import os, csv
def importCSV(fileName):
'''importCSV brings in the CSV transaction file to be analyzed'''
try:
if not(os.path.exists("data")):
os.makedirs("data")
except(IOError):
return "Couldn't create data directory!"
try:
fileFullName = os.path.join("data", fileName)
return csv.reader(file(fileFullName))
except(IOError):
return "File not found!"
Der Test sieht derzeit wie folgt ....
#!/usr/bin/python
from finaImport import finaImport
import unittest, os, csv
class testImport(unittest.TestCase):
'''Tests for importing a CSV file'''
def testImportCSV(self):
''' Test a good file and make sure importCSV returns a csv reader object '''
readerObject = finaImport.importCSV("toe")
self.assertTrue(str(type(readerObject))), "_csv.reader")
ich richtig glaube wirklich nicht, ist "Fuß" in einer str und Typ Funktion Verpackung. Wenn ich versuche, so etwas wie ...
self.assertIsInstance(finaImport.importCSV("toe"), csv.reader)
Es gibt einen Fehler zurück, wie ...
TypeError: isinstance() arg2 must be a class, type, or tuple of classes and types
Hilfe ???