Forum: Ruby Mocha test retry to connect up to 10 times

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Raymond O. (Guest)
on 2007-02-23 07:57
I'm writing a script to connect to an external server.  The problem is
that the server can be flaky and respond with an error code on some
requests.  When the response I get is an error I would like to retry
connecting.  If I retry 10 times and fail to connect, I just abort.

With mocha I can test the case where each of the 10 attempts receives an
error code, but I can't figure out a way to stub HTTP so that it will
return an error only 1 or 2 times, and then return a success.  Anyone
know a good way to test receiving an error a few times and then
receiving a success?

Any help would be greatly appreciated, thanks!
Hemant K. (Guest)
on 2007-02-23 08:31
(Received via mailing list)
On Fri, 2007-02-23 at 14:57 +0900, Raymond O'connor wrote:
>
> Any help would be greatly appreciated, thanks!
>

With latest version of Mocha, you can actually do something like this:


TCPSocket.stubs(:open).returns(data1,data2,data3)

where first call would return data1, second call data2 so on and so
forth. I hope, you can use this to your advantage.
Raymond O. (Guest)
on 2007-02-23 10:20
Hemant K. wrote:
> On Fri, 2007-02-23 at 14:57 +0900, Raymond O'connor wrote:
>>
>> Any help would be greatly appreciated, thanks!
>>
>
> With latest version of Mocha, you can actually do something like this:
>
>
> TCPSocket.stubs(:open).returns(data1,data2,data3)
>
> where first call would return data1, second call data2 so on and so
> forth. I hope, you can use this to your advantage.

That worked perfectly!  Thanks a ton!
This topic is locked and can not be replied to.