#!/usr/bin/env python import unittest from planet.opml import opml2config from ConfigParser import ConfigParser class OpmlTest(unittest.TestCase): """ Test the opml2config function """ def setUp(self): self.config = ConfigParser() # # Element # def test_outline_element(self): opml2config('''''', self.config) self.assertEqual('sample feed', self.config.get("http://example.com/feed.xml", 'name')) def test_wrong_element(self): opml2config('''''', self.config) self.assertFalse(self.config.has_section("http://example.com/feed.xml")) def test_illformed_xml_before(self): opml2config(''' ''', self.config) self.assertEqual('sample feed', self.config.get("http://example.com/feed.xml", 'name')) def test_illformed_xml_after(self): opml2config(''' ''', self.config) self.assertEqual('sample feed', self.config.get("http://example.com/feed.xml", 'name')) # # Type # def test_type_missing(self): opml2config('''''', self.config) self.assertEqual('sample feed', self.config.get("http://example.com/feed.xml", 'name')) def test_type_uppercase(self): opml2config('''''', self.config) self.assertEqual('sample feed', self.config.get("http://example.com/feed.xml", 'name')) def test_type_atom(self): opml2config('''''', self.config) self.assertEqual('sample feed', self.config.get("http://example.com/feed.xml", 'name')) def test_wrong_type(self): opml2config('''''', self.config) self.assertFalse(self.config.has_section("http://example.com/feed.xml")) # # xmlUrl # def test_xmlurl_wrong_case(self): opml2config('''''', self.config) self.assertEqual('sample feed', self.config.get("http://example.com/feed.xml", 'name')) def test_missing_xmlUrl(self): opml2config('''''', self.config) self.assertFalse(self.config.has_section("http://example.com/feed.xml")) def test_blank_xmlUrl(self): opml2config('''''', self.config) self.assertFalse(self.config.has_section("")) # # text # def test_title_attribute(self): opml2config('''''', self.config) self.assertEqual('sample feed', self.config.get("http://example.com/feed.xml", 'name')) def test_missing_text(self): opml2config('''''', self.config) self.assertFalse(self.config.has_section("http://example.com/feed.xml")) def test_blank_text_no_title(self): opml2config('''''', self.config) self.assertFalse(self.config.has_section("http://example.com/feed.xml")) def test_blank_text_with_title(self): opml2config('''''', self.config) self.assertEqual('sample feed', self.config.get("http://example.com/feed.xml", 'name')) def test_blank_text_blank_title(self): opml2config('''''', self.config) self.assertFalse(self.config.has_section("http://example.com/feed.xml")) def test_text_utf8(self): opml2config('''''', self.config) self.assertEqual('Se\xc3\xb1or Frog\xe2\x80\x99s', self.config.get("http://example.com/feed.xml", 'name')) def test_text_win_1252(self): opml2config('''''', self.config) self.assertEqual('Se\xc3\xb1or Frog\xe2\x80\x99s', self.config.get("http://example.com/feed.xml", 'name')) def test_text_entity(self): opml2config('''''', self.config) self.assertEqual('Se\xc3\xb1or Frog\xe2\x80\x99s', self.config.get("http://example.com/feed.xml", 'name')) def test_text_double_escaped(self): opml2config('''''', self.config) self.assertEqual('Se\xc3\xb1or Frog\xe2\x80\x99s', self.config.get("http://example.com/feed.xml", 'name')) if __name__ == '__main__': unittest.main()