/tags/Doduo/PlanetWebKit/planet/planet/tests/test_sub.py
Python | 79 lines | 64 code | 13 blank | 2 comment | 2 complexity | 0d899628e453d952c81b02ed9b60b6c0 MD5 | raw file
- #!/usr/bin/env python
- import os, glob, unittest
- from ConfigParser import ConfigParser
- from StringIO import StringIO
- import planet
- class SubTest(unittest.TestCase):
-
- def setUp(self):
- planet.logging.basicConfig()
- self.config = ConfigParser()
- self.config.add_section('Planet')
- self.config.set('Planet', 'cache_directory', 'planet/tests/data/cache')
- self.my_planet = planet.Planet(self.config)
- def tearDown(self):
- for file in glob.glob('planet/tests/data/cache/*'):
- os.unlink(file)
- os.removedirs('planet/tests/data/cache')
- def test_fetch(self):
- self.config.readfp(StringIO("""[planet/tests/data/before.atom]
- name = Test Feed
- """))
- self.my_planet.run("test", "http://example.com", [], 0)
- channels, channels_list = self.my_planet.gather_channel_info()
- self.assertEqual(len(channels_list), 1)
- self.assertEqual(channels_list[0]['configured_url'],
- 'planet/tests/data/before.atom')
- items_list = self.my_planet.gather_items_info(channels)
- self.assertEqual(len(items_list), 1)
- self.assertEqual(items_list[0]['summary'],'Some text.')
- self.assertEqual(items_list[0]['date_iso'],'2003-12-13T18:30:02+00:00')
- # this test is actually per the Atom spec definition of 'updated'
- def test_update_with_new_date(self):
- self.config.readfp(StringIO("""[planet/tests/data/before.atom]
- name = Test Feed
- """))
- self.my_planet.run("test", "http://example.com", [], 0)
- channels, channels_list = self.my_planet.gather_channel_info()
- channel = channels.keys()[0]
- channel.url = 'planet/tests/data/after.atom'
- os.link('planet/tests/data/cache/planet,tests,data,before.atom',
- 'planet/tests/data/cache/planet,tests,data,after.atom')
- channel.update()
- items_list = self.my_planet.gather_items_info(channels)
- self.assertEqual(len(items_list), 1)
- self.assertEqual(items_list[0]['summary'],'Updated text.')
- self.assertEqual(items_list[0]['date_iso'],'2006-05-21T18:54:02+00:00')
- def test_update_with_no_date(self):
- self.config.readfp(StringIO("""[planet/tests/data/before.rss]
- name = Test Feed
- """))
- self.my_planet.run("test", "http://example.com", [], 0)
- channels, channels_list = self.my_planet.gather_channel_info()
- channel = channels.keys()[0]
- item=channel._items.values()[0]
- item.set_as_date('date',(2003, 12, 13, 18, 30, 2, 5, 347, 0))
- channel.url = 'planet/tests/data/after.rss'
- os.link('planet/tests/data/cache/planet,tests,data,before.rss',
- 'planet/tests/data/cache/planet,tests,data,after.rss')
- items_list = self.my_planet.gather_items_info(channels)
- self.assertEqual(items_list[0]['date_iso'],'2003-12-13T18:30:02+00:00')
- channel.update()
- items_list = self.my_planet.gather_items_info(channels)
- self.assertEqual(len(items_list), 1)
- self.assertEqual(items_list[0]['summary'],'Updated text.')
- self.assertEqual(items_list[0]['date_iso'],'2003-12-13T18:30:02+00:00')
- if __name__ == '__main__':
- unittest.main()