Commit c448138a9051b9b78878692983ec0968b7c7bcc7

Authored by Antonio Terceiro
1 parent 8c98210c

FeedHandler: correctly handle feeds that were never fetched

lib/feed_handler.rb
@@ -108,7 +108,7 @@ class FeedHandler @@ -108,7 +108,7 @@ class FeedHandler
108 end 108 end
109 109
110 def enough_time_since_last_failure(container) 110 def enough_time_since_last_failure(container)
111 - container.fetched_at < (Time.now - FeedHandler.disabled_period) 111 + container.fetched_at.nil? || container.fetched_at < (Time.now - FeedHandler.disabled_period)
112 end 112 end
113 113
114 end 114 end
test/unit/feed_handler_test.rb
@@ -132,6 +132,14 @@ class FeedHandlerTest &lt; ActiveSupport::TestCase @@ -132,6 +132,14 @@ class FeedHandlerTest &lt; ActiveSupport::TestCase
132 132
133 assert container.enabled, 'must reenable container after <disabled_period> (%s)' % container_class 133 assert container.enabled, 'must reenable container after <disabled_period> (%s)' % container_class
134 end 134 end
  135 +
  136 + should "handle a feed that was never fetched successfully (#{container_class})" do
  137 + container = create(container_class)
  138 + container.update_errors = FeedHandler.max_errors + 1
  139 + container.fetched_at = nil
  140 + handler.expects(:actually_process_container).with(container)
  141 + handler.process(container)
  142 + end
135 end 143 end
136 144
137 should 'not crash even when finish fetch fails' do 145 should 'not crash even when finish fetch fails' do