|
|
@@ -169,20 +169,23 @@ describe Agents::TwitterStreamAgent do
|
169
|
169
|
@config = {agent: @agent, config: {filter_to_agent_map: {'agent' => [@mock_agent]}}}
|
170
|
170
|
@worker = Agents::TwitterStreamAgent::Worker.new(@config)
|
171
|
171
|
@worker.instance_variable_set(:@recent_tweets, [])
|
172
|
|
- mock(@worker).schedule_in(Agents::TwitterStreamAgent::Worker::RELOAD_TIMEOUT)
|
|
172
|
+ #mock(@worker).schedule_in(Agents::TwitterStreamAgent::Worker::RELOAD_TIMEOUT)
|
173
|
173
|
@worker.setup!(nil, Mutex.new)
|
174
|
174
|
end
|
175
|
175
|
|
176
|
176
|
context "#run" do
|
177
|
|
- it "starts the stream" do
|
|
177
|
+ before(:each) do
|
178
|
178
|
mock(EventMachine).run.yields
|
|
179
|
+ mock(EventMachine).add_periodic_timer(3600)
|
|
180
|
+ end
|
|
181
|
+
|
|
182
|
+ it "starts the stream" do
|
179
|
183
|
mock(@worker).stream!(['agent'], @agent)
|
180
|
184
|
mock(Thread).stop
|
181
|
185
|
@worker.run
|
182
|
186
|
end
|
183
|
187
|
|
184
|
188
|
it "yields received tweets" do
|
185
|
|
- mock(EventMachine).run.yields
|
186
|
189
|
mock(@worker).stream!(['agent'], @agent).yields('status' => 'hello')
|
187
|
190
|
mock(@worker).handle_status('status' => 'hello')
|
188
|
191
|
mock(Thread).stop
|
|
|
@@ -222,6 +225,9 @@ describe Agents::TwitterStreamAgent do
|
222
|
225
|
it "logs error messages" do
|
223
|
226
|
stub_without(:on_error).on_error.yields('woups')
|
224
|
227
|
mock(STDERR).puts(anything) { |text| expect(text).to match(/woups/) }
|
|
228
|
+ mock(STDERR).puts(anything) { |text| expect(text).to match(/Sleeping/) }
|
|
229
|
+ mock(@worker).sleep(15)
|
|
230
|
+ mock(@worker).restart!
|
225
|
231
|
@worker.send(:stream!, ['agent'], @agent)
|
226
|
232
|
end
|
227
|
233
|
|
|
|
@@ -257,6 +263,7 @@ describe Agents::TwitterStreamAgent do
|
257
|
263
|
|
258
|
264
|
it "deduplicates tweets" do
|
259
|
265
|
@worker.send(:handle_status, {'text' => 'dup', 'id_str' => '1'})
|
|
266
|
+ mock(@worker).puts(anything) { |text| expect(text).to match(/Skipping/) }
|
260
|
267
|
@worker.send(:handle_status, {'text' => 'dup', 'id_str' => '1'})
|
261
|
268
|
expect(@worker.instance_variable_get(:'@recent_tweets').select { |str| str == '1' }.length).to eq 1
|
262
|
269
|
end
|
|
|
@@ -264,6 +271,7 @@ describe Agents::TwitterStreamAgent do
|
264
|
271
|
it "calls the agent to process the tweet" do
|
265
|
272
|
mock(@mock_agent).name { 'mock' }
|
266
|
273
|
mock(@mock_agent).process_tweet('agent', {'text' => 'agent'})
|
|
274
|
+ mock(@worker).puts(anything) { |text| expect(text).to match(/received/) }
|
267
|
275
|
@worker.send(:handle_status, {'text' => 'agent', 'id_str' => '123'})
|
268
|
276
|
expect(@worker.instance_variable_get(:'@recent_tweets')).to include('123')
|
269
|
277
|
end
|