def test_accept_cb_when_no_logger_and_no_parent_cb(self):
    sock = EventSocket()
    sock._sock = mock()
    sock._parent_read_cb = 'p_read_cb'
    sock._parent_error_cb = 'p_error_cb'
    sock._parent_close_cb = 'p_close_cb'
    sock._debug = False
    sock._logger = None
    sock._max_read_buffer = 42

    expect(sock._sock.accept).returns( ('connection', 'address') )
    expect(EventSocket.__init__).args( read_cb='p_read_cb', error_cb='p_error_cb',
      close_cb='p_close_cb', sock='connection', debug=False,
      logger=None, max_read_buffer=42 )

    assert_true( sock._accept_cb() )
    assert_equals( 'error accepting new socket', sock._error_msg )
 def test_read_cb_when_buffer_overflow(self):
   sock = EventSocket()
   sock._sock = mock()
   sock._logger = mock()
   sock._peername = 'peername'
   sock._debug = True
   sock._max_read_buffer = 5
   mock( sock, 'getsockopt' )
   mock( sock, 'close' )
   
   expect( sock.getsockopt ).args( socket.SOL_SOCKET, socket.SO_RCVBUF ).returns( 42 )
   expect( sock._sock.recv ).args( 42 ).returns( 'sumdata' )
   expect( sock._logger.debug ).args( 'read 7 bytes from peername' )
   expect( sock._flag_activity )
   expect( sock._logger.debug ).args( 'buffer for peername overflowed!' )
   expect( sock.close )
   
   assert_equals( None, sock._read_cb() )
   assert_equals( bytearray(), sock._read_buf )
  def test_accept_cb_when_logger_and_parent_cb(self):
    sock = EventSocket()
    sock._sock = mock()
    sock._parent_accept_cb = 'p_accept_cb'
    sock._parent_read_cb = 'p_read_cb'
    sock._parent_error_cb = 'p_error_cb'
    sock._parent_close_cb = 'p_close_cb'
    sock._debug = True
    sock._logger = mock()
    sock._max_read_buffer = 42

    expect(sock._sock.accept).returns( ('connection', 'address') )
    expect(sock._logger.debug).args( "accepted connection from address" )
    expect(EventSocket.__init__).args( read_cb='p_read_cb', error_cb='p_error_cb',
      close_cb='p_close_cb', sock='connection', debug=True,
      logger=sock._logger, max_read_buffer=42 )
    expect(sock._protected_cb).args( 'p_accept_cb', is_a(EventSocket) )

    assert_true( sock._accept_cb() )