#!/usr/bin/env python import unittest from planet.foaf import foaf2config from ConfigParser import ConfigParser blogroll = 'http://journal.dajobe.org/journal/2003/07/semblogs/bloggers.rdf' testfeed = "http://dannyayers.com/feed/rdf" test_foaf_document = ''' Danny Ayers Raw Blog by Danny Ayers '''.strip() class FoafTest(unittest.TestCase): """ Test the foaf2config function """ def setUp(self): self.config = ConfigParser() # # Tests # def test_foaf_document(self): foaf2config(test_foaf_document, blogroll, self.config) self.assertEqual('Danny Ayers', self.config.get(testfeed, 'name')) def test_no_foaf_name(self): test = test_foaf_document.replace('foaf:name','foaf:title') foaf2config(test, blogroll, self.config) self.assertEqual('Raw Blog by Danny Ayers', self.config.get(testfeed, 'name')) def test_no_weblog(self): test = test_foaf_document.replace('rdfs:seeAlso','rdfs:seealso') foaf2config(test, blogroll, self.config) self.assertFalse(self.config.has_section(testfeed)) def test_invalid_xml_before(self): test = '\n' + test_foaf_document foaf2config(test, blogroll, self.config) self.assertFalse(self.config.has_section(testfeed)) def test_invalid_xml_after(self): test = test_foaf_document.strip()[:-1] foaf2config(test, blogroll, self.config) self.assertEqual('Danny Ayers', self.config.get(testfeed, 'name')) # these tests only make sense if libRDF is installed try: import RDF except: for key in FoafTest.__dict__.keys(): if key.startswith('test_'): delattr(FoafTest, key) if __name__ == '__main__': unittest.main()