# -*- coding: UTF-8 -*- """The URL repository package test""" # Copyright 2005, 2006 EIAO Consoritum # This program is distributed under the terms of the GNU General # Public License. # # This file is part of the European Internet Accessibility Observatory # (EIAO) # # EIAO is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # EIAO is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with EIAO; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, # MA 02110-1301 USA __owner__ = "Terje Gjosater, Morten Goodwin Olsen" __maintainer__ = "Nils Ulltveit-More" __version__ = 0.1 import urlrep from urlrep import URLRepUtils3 import urlreperror from urlreperror import * import doctest import unittest """Test suite for the URLrepository module""" #Doctests result = [] import sc sc = sc.SystemConfiguration() urlrep = URLRepUtils3(sco=sc, deletemodel=True) #result.append(doctest.testmod(__import__('urlrep'),globs={'urlrep':urlrep})) class TestSequenceFunctions(unittest.TestCase): def setUp(self): import sc sc = sc.SystemConfiguration() self.urlrep = URLRepUtils3(sco=sc, deletemodel=False) def tearDown(self): del self.urlrep def testaddingillgalvalues(self): """Testing that adding illegal values are not not allowed """ self.urlrep.removeURLRepository() fail = False try: self.urlrep.addSiteURL('www.example1.com','Example URL1','Morten Goodwin Olsen','84.11','EU','TV','NO011') except IllegalCountryProperty: fail = True self.assert_(fail) fail = False try: self.urlrep.addSiteURL('www.example1.com','Example URL1','Morten Goodwin Olsen','84.11','NO','NO','NO011') except IllegalContinentProperty: fail = True self.assert_(fail) fail = False try: self.urlrep.addSiteURL('www.example1.com','Example URL1','Morten Goodwin Olsen','84.11','EU','NO','FFFFFFF') except IllegalNuts3Property: fail = True self.assert_(fail) fail = False try: self.urlrep.addSiteURL('www.example1.com','Example URL1','Morten Goodwin Olsen','a84.11','EU','NO','NO011') except IllegalNaceProperty: fail = True self.assert_(fail) def testsegseedurlfromonesite(self): self.urlrep.removeURLRepository() self.urlrep.addSiteURL('www.example1.com','Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') pages = ['http://www.example1.com/somepage','http://www.example1.com/someotherpage'] for page in pages: self.urlrep.addPageURL(page,'http://www.example1.com','NO') self.urlrep.addPageURL(page,'http://www.example1.com','NO') allrandomurls = set() for i in range(1000): allrandomurls.add(self.urlrep.getSeedURLsFromSite('http://www.example1.com')) self.assert_(allrandomurls == set(pages + ['http://www.example1.com/'])) def testgetseedurl(self): self.urlrep.removeURLRepository() self.urlrep.addSiteURL('www.example1.com','Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') pages = ['http://www.example1.com/somepage','http://www.example1.com/someotherpage'] for page in pages: self.urlrep.addPageURL(page,'http://www.example1.com/','NO') self.urlrep.addPageURL(page,'http://www.example1.com/','NO') allrandomurls = set() for i in range(1000): for site in self.urlrep.getAllActiveSitesIterator(): allrandomurls.add(self.urlrep.getSeedURLsFromSite(site)) self.assert_(allrandomurls == set(pages + ['http://www.example1.com/'])) def testillegalpageofurl(self): self.urlrep.removeURLRepository() self.urlrep.addSiteURL('www.example1.com','Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') fail = False try: self.urlrep.addPageURL('http://www.example2.com/somepagehere', 'http://www.example1.com', 'NO','NO011') except PageNotInSiteError: fail = True self.assert_(fail) def testwamcontainerids(self): self.urlrep.removeURLRepository() self.urlrep.giveinitialwamcontainerids() allwamcontainers = ('Relaxed','Imergo') for wamcontainer in self.urlrep.wamcontainers.keys(): print wamcontainer self.assert_(wamcontainer in allwamcontainers) def testaddonesite(self): self.urlrep.addSiteURL('www.example1.com','Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') sites = self.urlrep.getAllSites() self.assert_('www.example1.com' in sites) def testaddanothersiteandpage(self): self.urlrep.addSiteURL('http://www.example2.com','Another Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') sites = self.urlrep.getAllSites() self.assert_('www.example2.com' in sites) self.urlrep.addPageURL('http://www.example2.com/somepagehere', 'http://www.example2.com', 'NO') self.assert_(self.urlrep.getN('http://www.example2.com/somepagehere') == 1) def testrandomsite(self): self.urlrep.removeURLRepository() self.urlrep.addSiteURL('www.example1.com','Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') self.urlrep.addSiteURL('http://www.example2.com','Another Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') self.urlrep.addSiteURL('http://www.example3.com','Another Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') allrandomurls = set() for i in range(1000): allrandomurls.add(self.urlrep.getRandomSite()) self.assert_(allrandomurls == set(['www.example1.com','www.example2.com','www.example3.com'])) def testiterator(self): self.urlrep.removeURLRepository() self.urlrep.addSiteURL('www.example1.com','Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') self.urlrep.addSiteURL('http://www.example2.com','Another Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') self.urlrep.addSiteURL('http://www.example3.com','Another Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') allurls = set() for url in self.urlrep.getAllActiveSitesIterator(): allurls.add(url) self.assert_(allurls == set(['www.example1.com','www.example2.com','www.example3.com'])) def testunwantedcharacterurl(self): self.urlrep.removeURLRepository() self.urlrep.addSiteURL('www.example1æøå.com/','Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') sites = self.urlrep.getAllSites() import urllib self.assert_(sites[0] == urllib.quote('www.example1æøå.com')) def testunicodestrings(self): self.urlrep.removeURLRepository() self.urlrep.addSiteURL(u'www.example1.com/','Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') sites = self.urlrep.getAllSites() self.assert_(sites[0] == 'www.example1.com') def testn(self): self.urlrep.removeURLRepository() self.urlrep.addSiteURL(u'www.example1.com/','Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') sites = self.urlrep.getAllSites() self.assert_(sites[0] == 'www.example1.com') self.urlrep.addPageURL('http://www.example1.com/somepagehere', 'http://www.example1.com', 'NO') self.assert_(self.urlrep.getN('http://www.example1.com/somepagehere') == 1) self.urlrep.setN('http://www.example1.com/somepagehere', 2) self.assert_(self.urlrep.getN('http://www.example1.com/somepagehere') == 2) ex = False try: self.urlrep.setN('http://www.example1.com/somepagehere', 'not-integer') except InvalidNError: ex = True self.assert_(ex) try: self.urlrep.setN('http://www.example1.com/somepagehere', -1) except InvalidNError: ex = True self.assert_(ex) self.assert_(self.urlrep.getN('http://www.example1.com/somepagehere') == 2) def testschedulingerror(self): self.urlrep.removeURLRepository() self.urlrep.addSiteURL('www.example1.com','Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') self.assert_(self.urlrep.getSchedulingError('www.example1.com') == 0) self.urlrep.incrSchedulingError('www.example1.com') self.urlrep.incrSchedulingError('www.example1.com') self.assert_(self.urlrep.getSchedulingError('www.example1.com') == 2) self.urlrep.resetSchedulingError('www.example1.com') self.assert_(self.urlrep.getSchedulingError('www.example1.com') == 0) def testunavailablecount(self): self.urlrep.removeURLRepository() self.urlrep.addSiteURL('www.example1.com','Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') self.assert_(self.urlrep.getUnavailablecount('http://www.example1.com') == 0) self.urlrep.incrementUnavailablecount('http://www.example1.com') self.urlrep.incrementUnavailablecount('http://www.example1.com') self.assert_(self.urlrep.getUnavailablecount('http://www.example1.com') == 2) self.urlrep.resetUnavailablecount('http://www.example1.com') self.assert_(self.urlrep.getUnavailablecount('http://www.example1.com') == 0) def testreadwriteN(self): self.urlrep.removeURLRepository() self.urlrep.addSiteURL('www.example1.com','Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') self.urlrep.deactivateURL('http://www.example1.com') self.urlrep.activateURL('http://www.example1.com') self.assert_(self.urlrep.getActivationState('http://www.example1.com')==True) def testgetnonexisitingn(self): self.urlrep.removeURLRepository() self.urlrep.addSiteURL('www.example1.com','Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') self.assert_(self.urlrep.getN('http://www.example1.com/test1.html')==None) self.urlrep.setN('http://www.example1.com/test1.html',10) self.assert_(self.urlrep.getN('http://www.example1.com/test1.html')==10) def testassigncheckforjavascript(self): self.urlrep.removeURLRepository() self.urlrep.addSiteURL('www.example1.com','Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') self.assert_(self.urlrep.getjavascriptcheck('http://www.example1.com')==False) self.urlrep.submitforjavascriptcheck('http://www.example1.com') self.assert_(self.urlrep.getjavascriptcheck('http://www.example1.com')==True) self.assert_(self.urlrep.getjavascriptcheck()==['http://www.example1.com']) def testnumberofsamples(self): self.urlrep.removeURLRepository() self.urlrep.addSiteURL('www.example1.com','Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') self.urlrep.addSample('www.example1.com') self.assert_(self.urlrep.getsamplecount('www.example1.com')==1) self.urlrep.addSample('www.example1.com',2) self.assert_(self.urlrep.getsamplecount('www.example1.com')==3) self.assert_(self.urlrep.getsamplecount('www.example2.com')==0) def testactivationdeactiovation(self): self.urlrep.removeURLRepository() self.urlrep.addSiteURL('www.example1.com','Example URL1',"Morten Goodwin Olsen",'84.11','EU','NO','NO011') self.assert_(self.urlrep.getActivationState('http://www.example1.com')==True) self.urlrep.deactivateURL('http://www.example1.com') self.assert_(self.urlrep.getActivationState('http://www.example1.com')==False) self.assert_(self.urlrep.getDeactivatedURLs() == ['http://www.example1.com/']) self.urlrep.activateURL('http://www.example1.com') self.assert_(self.urlrep.getActivationState('http://www.example1.com')==True) self.assert_(self.urlrep.getDeactivatedURLs() == []) if __name__ == "__main__": result += unittest.main()