def verify_xpath(self): testfile = 'tests/data/filter/category-one.xml' output = open(testfile).read() for filter in config.filters(): output = shell.run(filter, output, mode="filter") self.assertEqual('', output) testfile = 'tests/data/filter/category-two.xml' output = open(testfile).read() for filter in config.filters(): output = shell.run(filter, output, mode="filter") self.assertNotEqual('', output)
def test_xhtml2html_filter(self): testfile = 'tests/data/filter/index.html' the_filter = 'xhtml2html.plugin?quote_attr_values=True' with open(testfile) as fp: output = shell.run(the_filter, fp.read(), mode="filter") self.assertTrue(output.find('/>') < 0) self.assertTrue(output.find('</script>') >= 0)
def test_addsearch_filter(self): testfile = 'tests/data/filter/index.html' filter = 'addsearch.xslt' output = shell.run(filter, open(testfile).read(), mode="filter") self.assertTrue(output.find('<h2>Search</h2>')>=0) self.assertTrue(output.find('<form><input name="q"/></form>')>=0) self.assertTrue(output.find(' href="http://planet.intertwingly.net/opensearchdescription.xml"')>=0) self.assertTrue(output.find('</script>')>=0)
def test_coral_cdn(self): testfile = 'tests/data/filter/coral_cdn.xml' filter = 'coral_cdn_filter.py' output = shell.run(filter, open(testfile).read(), mode="filter") dom = xml.dom.minidom.parseString(output) imgsrc = dom.getElementsByTagName('img')[0].getAttribute('src') self.assertEqual('http://example.com.nyud.net:8080/foo.png', imgsrc)
def test_addsearch_filter(self): testfile = 'tests/data/filter/index.html' filter = 'addsearch.genshi' output = shell.run(filter, open(testfile).read(), mode="filter") self.assertTrue(output.find('<h2>Search</h2>')>=0) self.assertTrue(output.find('<form><input name="q"/></form>')>=0) self.assertTrue(output.find(' href="http://planet.intertwingly.net/opensearchdescription.xml"')>=0) self.assertTrue(output.find('</script>')>=0)
def test_regexp_filter2(self): config.load('tests/data/filter/regexp-sifter2.ini') testfile = 'tests/data/filter/category-one.xml' output = open(testfile).read() for filter in config.filters(): output = shell.run(filter, output, mode="filter") self.assertNotEqual('', output) testfile = 'tests/data/filter/category-two.xml' output = open(testfile).read() for filter in config.filters(): output = shell.run(filter, output, mode="filter") self.assertEqual('', output)
def test_xslt_filter(self): config.load('tests/data/filter/translate.ini') testfile = 'tests/data/filter/category-one.xml' input = open(testfile).read() output = shell.run(config.filters()[0], input, mode="filter") dom = xml.dom.minidom.parseString(output) catterm = dom.getElementsByTagName('category')[0].getAttribute('term') self.assertEqual('OnE', catterm)
def test_stripAd_yahoo(self): testfile = 'tests/data/filter/stripAd-yahoo.xml' config.load('tests/data/filter/stripAd-yahoo.ini') output = open(testfile).read() for filter in config.filters(): output = shell.run(filter, output, mode="filter") dom = xml.dom.minidom.parseString(output) excerpt = dom.getElementsByTagName('content')[0] self.assertEqual(u'before--after', excerpt.firstChild.firstChild.nodeValue)
def data2config(data, cached_config): if content_type(list).find('opml')>=0: opml.opml2config(data, cached_config) elif content_type(list).find('foaf')>=0: foaf.foaf2config(data, cached_config) else: from planet import shell import StringIO cached_config.readfp(StringIO.StringIO(shell.run( content_type(list), data.getvalue(), mode="filter"))) if cached_config.sections() in [[], [list]]: raise Exception
def test_excerpt_lorem_ipsum(self): testfile = 'tests/data/filter/excerpt-lorem-ipsum.xml' config.load('tests/data/filter/excerpt-lorem-ipsum.ini') output = open(testfile).read() for filter in config.filters(): output = shell.run(filter, output, mode="filter") dom = xml.dom.minidom.parseString(output) excerpt = dom.getElementsByTagName('planet:excerpt')[0] self.assertEqual(u'Lorem ipsum dolor sit amet, consectetuer ' + u'adipiscing elit. Nullam velit. Vivamus tincidunt, erat ' + u'in \u2026', excerpt.firstChild.firstChild.nodeValue)
def verify_images(self): testfile = 'tests/data/filter/excerpt-images.xml' output = open(testfile).read() for filter in config.filters(): output = shell.run(filter, output, mode="filter") dom = xml.dom.minidom.parseString(output) excerpt = dom.getElementsByTagName('planet:excerpt')[0] anchors = excerpt.getElementsByTagName('a') hrefs = [a.getAttribute('href') for a in anchors] texts = [a.lastChild.nodeValue for a in anchors] self.assertEqual(['inner', 'outer1', 'outer2'], hrefs) self.assertEqual(['bar', 'bar', '<img>'], texts)
def verify_images(self): testfile = 'tests/data/filter/excerpt-images.xml' output = open(testfile).read() for filter in config.filters(): output = shell.run(filter, output, mode="filter") dom = xml.dom.minidom.parseString(output) excerpt = dom.getElementsByTagName('planet:excerpt')[0] anchors = excerpt.getElementsByTagName('a') hrefs = [a.getAttribute('href') for a in anchors] texts = [a.lastChild.nodeValue for a in anchors] self.assertEqual(['inner','outer1','outer2'], hrefs) self.assertEqual(['bar','bar','<img>'], texts)
def test_excerpt_lorem_ipsum(self): testfile = 'tests/data/filter/excerpt-lorem-ipsum.xml' config.load('tests/data/filter/excerpt-lorem-ipsum.ini') output = open(testfile).read() for filter in config.filters(): output = shell.run(filter, output, mode="filter") dom = xml.dom.minidom.parseString(output) excerpt = dom.getElementsByTagName('planet:excerpt')[0] self.assertEqual( u'Lorem ipsum dolor sit amet, consectetuer ' + u'adipiscing elit. Nullam velit. Vivamus tincidunt, erat ' + u'in \u2026', excerpt.firstChild.firstChild.nodeValue)
def test_excerpt_lorem_ipsum_summary(self): testfile = 'tests/data/filter/excerpt-lorem-ipsum.xml' config.load('tests/data/filter/excerpt-lorem-ipsum.ini') config.parser.set('excerpt.py', 'target', 'atom:summary') with open(testfile) as fp: output = fp.read() for each_filter in config.filters(): output = shell.run(each_filter, output, mode="filter") dom = xml.dom.minidom.parseString(output) excerpt = dom.getElementsByTagName('summary')[0] self.assertEqual( u'Lorem ipsum dolor sit amet, consectetuer ' + u'adipiscing elit. Nullam velit. Vivamus tincidunt, erat ' + u'in \u2026', excerpt.firstChild.firstChild.nodeValue)
def data2config(data, cached_config): if content_type(list).find('opml')>=0: opml.opml2config(data, cached_config) elif content_type(list).find('foaf')>=0: foaf.foaf2config(data, cached_config) elif content_type(list).find('csv')>=0: csv_config.csv2config(data, cached_config) elif content_type(list).find('config')>=0: cached_config.readfp(data) else: from planet import shell import StringIO cached_config.readfp(StringIO.StringIO(shell.run( content_type(list), data.getvalue(), mode="filter"))) if cached_config.sections() in [[], [list]]: raise Exception
def test_coral_cdn(self): testfile = 'tests/data/filter/coral_cdn.xml' filter = 'coral_cdn_filter.py' output = shell.run(filter, open(testfile).read(), mode="filter") dom = xml.dom.minidom.parseString(output) imgsrcs = [ img.getAttribute('src') for img in dom.getElementsByTagName('img') ] self.assertEqual('http://example.com.nyud.net:8080/foo.png', imgsrcs[0]) self.assertEqual('http://example.com.1234.nyud.net:8080/foo.png', imgsrcs[1]) self.assertEqual('http://*****:*****@example.com.nyud.net:8080/foo.png', imgsrcs[2]) self.assertEqual('http://*****:*****@example.com.1234.nyud.net:8080/foo.png', imgsrcs[3])
def test_xhtml2html_filter(self): testfile = 'tests/data/filter/index.html' filter = 'xhtml2html.plugin?quote_attr_values=True' output = shell.run(filter, open(testfile).read(), mode="filter") self.assertTrue(output.find('/>')<0) self.assertTrue(output.find('</script>')>=0)