class SLTest(unittest.TestCase): """ Store the serverlist in this directory. """ def setUp(self): #print "setUp" self.sl = ServerList(tempfile.gettempdir(), "serverlisttest.xml") #self.sl.__configFile = os.path.join(self.sl._configPrefix, "serverlist.xml") def tearDown(self): pass """ Writes a serverlist in the current format to disk. """ def writeList(self): #print "writeList" try: f = open(self.sl.getConfigFilePath(), "w") f.write(""" <!DOCTYPE LumaServerFile> <LumaServerList version="1.2"> <LumaLdapServer port="1337" clientCertFile="" followAliases="0" clientCertKeyfile="" bindPassword="******" useCertificate="0" bindDN="" host="directory.d-trust.de" authMethod="1" bindAnon="1" encryptionMethod="0" name="d-trust" autoBase="0" checkServerCertificate="1"> <baseDNs> <base dn="dc=d-trust,dc=de"/> <base dn="dc=ntnu,dc=no.TULL"/> </baseDNs> </LumaLdapServer> <LumaLdapServer port="389" clientCertFile="" followAliases="0" clientCertKeyfile="" bindPassword="******" useCertificate="0" bindDN="" host="at.ntnu.no" authMethod="6" bindAnon="1" encryptionMethod="2" name="ntnu" autoBase="1" checkServerCertificate="2"> <baseDNs> <base dn="dc=lol,dc=com"/> <base dn="dc=ntnu,dc=no"/> </baseDNs> </LumaLdapServer> <LumaLdapServer port="392" clientCertFile="" followAliases="1" clientCertKeyfile="" bindPassword="******" useCertificate="0" bindDN="" host="x500.bund.de" authMethod="0" bindAnon="1" encryptionMethod="1" name="bund" autoBase="0" checkServerCertificate="0"> <baseDNs> <base dn="dc=bund,dc=de"/> </baseDNs> </LumaLdapServer> </LumaServerList> """) f.close() except IOError: print "----------------------" print "WRITE TO DISK FAILED!" print "----------------------" raise def getEmptyServerObject(self): #print "getEmptryServerObject" return ServerObject() """ Read and write and emtpy serverlist to/from disk. """ def testEmptyList(self): #print "testEmptyList" self.sl.setTable([]) self.sl.writeServerList() self.sl.readServerList() self.assertEqual(self.sl.getTable(), []) """ Tests for Read, delete, add and write, better than one BIG test, but each test is still a bit to dependent on the previous tests """ def testAdd(self): #print "testAdd" # Remove and add back the removed item self.sl.addServer(self.getEmptyServerObject()) # Check if it has been added correctly self.assertNotEqual(None, self.sl.getServerObject("")) def testDelete(self): #print "testDelete" # Delete and see if object still in list self.sl.setTable([self.getEmptyServerObject()]) self.assertNotEqual(None, self.sl.getServerObject("")) self.sl.deleteServer("") self.assertEqual(None, self.sl.getServerObject("")) def testRead(self): #print "testRead" # Write the list to disk and have ServerList read it. self.writeList() self._modifyTime = None #IMPORTANT - FORCES READ FROM DISK self.sl.readServerList() # Check that the server list was read correctly self.assertNotEqual(None, self.sl.getServerObject("d-trust")) self.assertNotEqual(None, self.sl.getServerObject("bund")) self.assertNotEqual(None, self.sl.getServerObject("ntnu")) def testWrite(self): #print "testWrite" # Write the list back to disk and read it back self.sl.setTable([self.getEmptyServerObject()]) self.sl.writeServerList() f = open(self.sl.getConfigFilePath(), "r") s = """ <!DOCTYPE LumaServerFile> <LumaServerList version="1.2"> <LumaLdapServer port="389" clientCertFile="" followAliases="0" bindPassword="" useCertificate="0" clientCertKeyFile="" bindDN="" host="" authMethod="0" bindAnon="1" encryptionMethod="0" name="" autoBase="1" checkServerCertificate="0"> <baseDNs/> </LumaLdapServer> </LumaServerList> """ #Verify the list is good read = f.read() f.close() s = s.strip() r = read.strip() self.assertEqual(s, r)