def test_checkUpgrade(self): st = self.state today = datetime.date(2005,1,1) # version 0.0 st.current_version = '0.0' st.last_entry_date = '' st.feed_url = TEST_FEED0 uc._checkUpgrade(st, today) # got upgrade 0.4.2 self.assertEqual(st.fetch_date, today) self.assertEqual(st.next_fetch, datetime.date(2005,1,11)) self.assertEqual(st.last_entry_date, '2005-02-21T17:00:00Z') self.assert_(st.upgrade_info) uinfo = st.upgrade_info self.assertEqual(uinfo.version, '0.4.2') self.assertEqual(uinfo.title, 'Version 0.4.2') self.assertEqual(uinfo.summary, 'Maintenance release with minor enhancement (2005-02-21)') self.assertEqual(uinfo.url, 'https://developer.berlios.de/project/showfiles.php?group_id=2905&release_id=4867') uc.set_config(st, dismiss=True) # reset upgrade_info # still version 0.0 uc._checkUpgrade(st, today) # got old news self.assertEqual(st.last_entry_date, '2005-02-21T17:00:00Z') self.assert_(not st.upgrade_info) # version 0.4.2 st.current_version = '0.4.2' st.last_entry_date = '' st.feed_url = TEST_FEED0 uc._checkUpgrade(st, today) # no new version self.assertEqual(st.last_entry_date, '2005-02-21T17:00:00Z') self.assert_(not st.upgrade_info) # found latest 0.8.0 st.current_version = '0.4.0' st.last_entry_date = '' st.feed_url = TEST_FEED1 uc._checkUpgrade(st, today) # new version 0.8.0 available! self.assertEqual(st.last_entry_date, '2006-01-18T17:00:00Z') self.assert_(st.upgrade_info) uinfo = st.upgrade_info self.assertEqual(uinfo.version, '0.8.0') self.assertEqual(uinfo.title, 'Version 0.8.0') self.assertEqual(uinfo.summary, 'New features added: web library, tag based categorization, etc (2006-01-18)') self.assertEqual(uinfo.url, 'https://developer.berlios.de/project/showfiles.php?group_id=2905&release_id=8737')
def test_checkUpgrade_failed_fetch(self): st = self.state today = datetime.date(2005,1,1) def _assert_failed_fetch(self, state): """ helper function """ self.assertEqual(st.fetch_date, today) self.assertEqual(st.next_fetch, datetime.date(2005,1,2)) self.assert_(not st.last_entry_date) self.assert_(not st.upgrade_info) uc._checkUpgrade(st, today, '') _assert_failed_fetch(self, st) uc._checkUpgrade(st, today, 'zz://xx/yy') # bad URL _assert_failed_fetch(self, st) uc._checkUpgrade(st, today, '<?xml version="1.0" encoding="utf-8"?><a>aaa</a>') # irrelevant XML _assert_failed_fetch(self, st) uc._checkUpgrade(st, today, '<?xml version="1.0" encoding="utf-8"?><feed>x</wrong_feed>') # non-wellform XML _assert_failed_fetch(self, st)