def test_expunge(self): config.load(configfile) # create test entries in cache with correct timestamp for entry in glob.glob(testentries): e=minidom.parse(entry) e.normalize() eid = e.getElementsByTagName('id') efile = filename(workdir, eid[0].childNodes[0].nodeValue) eupdated = e.getElementsByTagName('updated')[0].childNodes[0].nodeValue emtime = time.mktime(feedparser._parse_date_w3dtf(eupdated)) if not eid or not eupdated: continue shutil.copyfile(entry, efile) os.utime(efile, (emtime, emtime)) # create test feeds in cache sources = config.cache_sources_directory() for feed in glob.glob(testfeeds): f=minidom.parse(feed) f.normalize() fid = f.getElementsByTagName('id') if not fid: continue ffile = filename(sources, fid[0].childNodes[0].nodeValue) shutil.copyfile(feed, ffile) # verify that exactly nine entries + one source dir were produced files = glob.glob(workdir+"/*") self.assertEqual(10, len(files)) # verify that exactly four feeds were produced in source dir files = glob.glob(sources+"/*") self.assertEqual(4, len(files)) # expunge... expungeCache() # verify that five entries and one source dir are left files = glob.glob(workdir+"/*") self.assertEqual(6, len(files)) # verify that the right five entries are left self.assertTrue(os.path.join(workdir, 'bzr.mfd-consult.dk,2007,venus-expunge-test1,1') in files) self.assertTrue(os.path.join(workdir, 'bzr.mfd-consult.dk,2007,venus-expunge-test2,1') in files) self.assertTrue(os.path.join(workdir, 'bzr.mfd-consult.dk,2007,venus-expunge-test3,3') in files) self.assertTrue(os.path.join(workdir, 'bzr.mfd-consult.dk,2007,venus-expunge-test4,2') in files) self.assertTrue(os.path.join(workdir, 'bzr.mfd-consult.dk,2007,venus-expunge-test4,3') in files)
doc = splice.splice() splice.apply(doc.toxml('utf-8')) elif form['command'].value == "refresh": # only refresh from planet import splice doc = splice.splice() splice.apply(doc.toxml('utf-8')) print "<p>Successfully refreshed</p>" elif form['command'].value == "expunge": # only expunge from planet import expunge expunge.expungeCache() print "<p>Successfully expunged</p>" print "<p><strong><a href='" + ADMIN_URL + "'>Return</a> to admin interface</strong></p>" print "</body></html>"
spider.spiderPlanet(only_if_new=False) print "<p>Successfully ran spider</p>" except Exception, e: print e doc = splice.splice() splice.apply(doc.toxml('utf-8')) elif form['command'].value == "refresh": # only refresh from planet import splice doc = splice.splice() splice.apply(doc.toxml('utf-8')) print "<p>Successfully refreshed</p>" elif form['command'].value == "expunge": # only expunge from planet import expunge expunge.expungeCache() print "<p>Successfully expunged</p>" print "<p><strong><a href='" + ADMIN_URL + "'>Return</a> to admin interface</strong></p>" print "</body></html>"