On 08/04/2013 10:25 AM, Benjamin BERTRAND wrote:
Hi,

I'm trying to write a simple gateway to receive messages using a specific 
protocol and publish/store them using txredis.
I wrote a small example that seems to work.
But the small test I wrote fails:

$ trial gateway/test
gateway.test.test_example
   GatewayServiceTestCase
     test_messageReceived ...                                            [ERROR]

===============================================================================
[ERROR]
Traceback (most recent call last):
Failure: twisted.internet.error.ConnectionDone: Connection was closed cleanly.

gateway.test.test_example.GatewayServiceTestCase.test_messageReceived
-------------------------------------------------------------------------------
Ran 1 tests in 0.007s


As I understand, the connection to the redis server is lost during the test.
I actually managed to get the test to pass by adding some inlineCallbacks 
decorator to my messageReceived and lineReceived methods.
But I don't really understand why that would be needed.
Could someone explain what is happening?

I suspect the inlineCallbacks is irrelevant (and not the way to solve this).

At a guess, what is happening is that something is logging the connection being lost (perhaps the redis library?). Logging errors in a unit test makes trial consider that test to have failed: logging an error suggests something has gone wrong. You can tell trial to expect a specific error to be logged in your test: https://twistedmatrix.com/documents/current/core/howto/trial.html#auto11

_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to