def test_write_cb_with_no_data(self): sock = EventSocket() sock._sock = mock() sock._parent_output_empty_cb = mock() sock._debug = True sock._logger = mock() mock( sock, '_flag_activity' ) sock._write_buf = deque() assert_equals( None, sock._write_cb() ) assert_equals( sock._error_msg, "error writing socket output buffer" )
def test_write_cb_when_eagain_raised(self): sock = EventSocket() sock._sock = mock() sock._parent_output_empty_cb = mock() # assert not called sock._write_buf = deque(['data1','data2']) expect( sock._sock.send ).args( 'data1' ).raises( EnvironmentError(errno.EAGAIN,'try again') ) expect( sock._flag_activity ) assert_true( sock._write_cb() ) assert_equals( deque(['data1','data2']), sock._write_buf )
def test_write_cb_when_not_all_data_sent(self): sock = EventSocket() sock._sock = mock() sock._parent_output_empty_cb = mock() # assert not called sock._write_buf = deque(['data1','data2']) expect( sock._sock.send ).args( 'data1' ).returns( 5 ) expect( sock._sock.send ).args( 'data2' ).returns( 2 ) expect( sock._flag_activity ) assert_true( sock._write_cb() ) assert_equals( deque(['ta2']), sock._write_buf )
def test_write_cb_when_other_environment_error_raised(self): sock = EventSocket() sock._sock = mock() sock._peername = 'peer' sock._logger = mock() sock._debug = True sock._parent_output_empty_cb = mock() # assert not called sock._write_buf = deque(['data1','data2']) expect( sock._sock.send ).args( 'data1' ).raises( EnvironmentError(errno.ECONNABORTED,'try again') ) assert_raises( EnvironmentError, sock._write_cb )
def test_write_cb_sends_all_data_and_theres_an_output_empty_cb(self): sock = EventSocket() sock._sock = mock() sock._parent_output_empty_cb = mock() sock._write_buf = deque(['data1','data2']) expect( sock._sock.send ).args( 'data1' ).returns( 5 ) expect( sock._sock.send ).args( 'data2' ).returns( 5 ) expect( sock._flag_activity ) expect( sock._parent_output_empty_cb ).args( sock ) assert_equals( None, sock._write_cb() ) assert_equals( 0, len(sock._write_buf) )
def test_write_cb_when_not_all_data_sent_and_logging(self): sock = EventSocket() sock._sock = mock() sock._peername = 'peer' sock._logger = mock() sock._debug = True sock._parent_output_empty_cb = mock() # assert not called sock._write_buf = deque(['data1','data2']) expect( sock._sock.send ).args( 'data1' ).returns( 5 ) expect( sock._sock.send ).args( 'data2' ).returns( 2 ) expect( sock._logger.debug ).args( str, 7, 10, 'peer' ) expect( sock._flag_activity ) assert_true( sock._write_cb() ) assert_equals( deque(['ta2']), sock._write_buf )
def test_write_cb_when_eagain_raised_and_logging(self): sock = EventSocket() sock._sock = mock() sock._peername = 'peer' sock._logger = mock() sock._debug = True sock._parent_output_empty_cb = mock() # assert not called sock._write_buf = deque(['data1','data2']) expect( sock._sock.send ).args( 'data1' ).raises( EnvironmentError(errno.EAGAIN,'try again') ) expect( sock._logger.debug ).args( str, EnvironmentError, 'peer' ) expect( sock._logger.debug ).args( str, 0, 10, 'peer' ) expect( sock._flag_activity ) assert_true( sock._write_cb() ) assert_equals( deque(['data1','data2']), sock._write_buf )