#!/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()