ich versuch mich gerade mit PyUnit anzufreunden und wollte als Beispiel eine GUI, die ich mal programmiert habe, Refaktorieren und mit Unittests ausstatten...
Was ich in meinem Programm früher gemacht habe, sieht folgendermaßen aus:
Code: Alles auswählen
class CfgFile():
'''the configfile object will read the config file and save all the
information within the object.
'''
def __init__(self,filename):
self.cfgfilename = filename
self.readCfgFile()
def readCfgFile(self):
'''will read the config file and save the information
into the object variables.
'''
fh = open(self.cfgfilename, 'r')
data = fh.readlines()
fh.close()
self.headerinfo = self.readHeadInfo(data)
self.formlist = self.readFormInfo(data)
Ich will das gerade umbauen und auf ein IOError testen, wenn ich einen Dateinamen angebe, der nicht existiert, oder eben nicht lesbar ist. Mein Test sieht gerade mal so aus.
Code: Alles auswählen
def testConfigFileInit(self):
testfile = "test/test.cfg"
myconffile = uguiconfigfile.ConfigFile(testfile)
self.assertEqual(myconffile.filename, testfile, "filename isn't saved correctly.")
self.assertRaises(IOError, uguiconfigfile.ConfigFile.__init__(self, "test"))
Der neue Code sieht soweit so aus:
Code: Alles auswählen
class ConfigFile():
def __init__(self, filename):
self.filename = filename
self.checkFileReadable()
#open(self.filename, "r")
def checkFileReadable(self):
try:
open(self.filename, "r")
except IOError:
print("File '%s' is not readable!" % (self.filename))
Also zum einen meine Frage, ist das ganze methode in der __init__ aufrufen ein bescheidenes Konzept, oder wie macht man das besser? Initialisiert man seine Objekt und iteriert danach noch mal drüber mein einem readCfgFile() oder sowas?
Würde mich über ein Feedback freuen, danke.