/tags/Doduo/PlanetWebKit/planet/planet/tests/test_sub.py

https://github.com/weissms/owb-mirror
Python | 79 lines | 64 code | 13 blank | 2 comment | 2 complexity | 0d899628e453d952c81b02ed9b60b6c0 MD5 | raw file
  1. #!/usr/bin/env python
  2. import os, glob, unittest
  3. from ConfigParser import ConfigParser
  4. from StringIO import StringIO
  5. import planet
  6. class SubTest(unittest.TestCase):
  7. def setUp(self):
  8. planet.logging.basicConfig()
  9. self.config = ConfigParser()
  10. self.config.add_section('Planet')
  11. self.config.set('Planet', 'cache_directory', 'planet/tests/data/cache')
  12. self.my_planet = planet.Planet(self.config)
  13. def tearDown(self):
  14. for file in glob.glob('planet/tests/data/cache/*'):
  15. os.unlink(file)
  16. os.removedirs('planet/tests/data/cache')
  17. def test_fetch(self):
  18. self.config.readfp(StringIO("""[planet/tests/data/before.atom]
  19. name = Test Feed
  20. """))
  21. self.my_planet.run("test", "http://example.com", [], 0)
  22. channels, channels_list = self.my_planet.gather_channel_info()
  23. self.assertEqual(len(channels_list), 1)
  24. self.assertEqual(channels_list[0]['configured_url'],
  25. 'planet/tests/data/before.atom')
  26. items_list = self.my_planet.gather_items_info(channels)
  27. self.assertEqual(len(items_list), 1)
  28. self.assertEqual(items_list[0]['summary'],'Some text.')
  29. self.assertEqual(items_list[0]['date_iso'],'2003-12-13T18:30:02+00:00')
  30. # this test is actually per the Atom spec definition of 'updated'
  31. def test_update_with_new_date(self):
  32. self.config.readfp(StringIO("""[planet/tests/data/before.atom]
  33. name = Test Feed
  34. """))
  35. self.my_planet.run("test", "http://example.com", [], 0)
  36. channels, channels_list = self.my_planet.gather_channel_info()
  37. channel = channels.keys()[0]
  38. channel.url = 'planet/tests/data/after.atom'
  39. os.link('planet/tests/data/cache/planet,tests,data,before.atom',
  40. 'planet/tests/data/cache/planet,tests,data,after.atom')
  41. channel.update()
  42. items_list = self.my_planet.gather_items_info(channels)
  43. self.assertEqual(len(items_list), 1)
  44. self.assertEqual(items_list[0]['summary'],'Updated text.')
  45. self.assertEqual(items_list[0]['date_iso'],'2006-05-21T18:54:02+00:00')
  46. def test_update_with_no_date(self):
  47. self.config.readfp(StringIO("""[planet/tests/data/before.rss]
  48. name = Test Feed
  49. """))
  50. self.my_planet.run("test", "http://example.com", [], 0)
  51. channels, channels_list = self.my_planet.gather_channel_info()
  52. channel = channels.keys()[0]
  53. item=channel._items.values()[0]
  54. item.set_as_date('date',(2003, 12, 13, 18, 30, 2, 5, 347, 0))
  55. channel.url = 'planet/tests/data/after.rss'
  56. os.link('planet/tests/data/cache/planet,tests,data,before.rss',
  57. 'planet/tests/data/cache/planet,tests,data,after.rss')
  58. items_list = self.my_planet.gather_items_info(channels)
  59. self.assertEqual(items_list[0]['date_iso'],'2003-12-13T18:30:02+00:00')
  60. channel.update()
  61. items_list = self.my_planet.gather_items_info(channels)
  62. self.assertEqual(len(items_list), 1)
  63. self.assertEqual(items_list[0]['summary'],'Updated text.')
  64. self.assertEqual(items_list[0]['date_iso'],'2003-12-13T18:30:02+00:00')
  65. if __name__ == '__main__':
  66. unittest.main()