def test_parent_read_timer_cb_when_read_cb_reset(self):
   sock = EventSocket()
   sock._pending_read_cb_event = 'foo'
   
   sock._parent_read_timer_cb()
   assert_equals( 'error processing socket input buffer', sock._error_msg )
   assert_equals( None, sock._pending_read_cb_event )
  def test_set_read_cb_when_data_to_flush_but_pending_read_event(self):
    sock = EventSocket()
    sock._read_buf = bytearray('somedata')
    sock._parent_read_cb = None
    sock._pending_read_cb_event = 'pending_event'

    sock._set_read_cb( 'parent_read_cb' )
    assert_equals( 'parent_read_cb', sock._parent_read_cb )
    assert_equals( 'pending_event', sock._pending_read_cb_event )
  def test_parent_read_timer_cb_when_closed(self):
    sock = EventSocket()
    sock._pending_read_cb_event = 'foo'
    sock._closed = True
    sock._parent_read_cb = mock()

    sock._parent_read_timer_cb()
    assert_equals( None, sock._error_msg )
    assert_equals( 'foo', sock._pending_read_cb_event )
  def test_parent_read_timer_cb(self):
    sock = EventSocket()
    sock._pending_read_cb_event = 'foo'
    sock._parent_read_cb = mock()
    expect( sock._parent_read_cb ).args( sock )

    sock._parent_read_timer_cb()
    assert_equals( 'error processing socket input buffer', sock._error_msg )
    assert_equals( None, sock._pending_read_cb_event )
  def test_set_read_cb_when_should_flush(self):
    sock = EventSocket()
    sock._read_buf = bytearray('somedata')
    sock._parent_read_cb = None
    sock._pending_read_cb_event = None

    expect(eventsocket.event.timeout).args(0, sock._protected_cb, sock._parent_read_timer_cb).returns('timeout_event')

    sock._set_read_cb( 'parent_read_cb' )
    assert_equals( 'parent_read_cb', sock._parent_read_cb )
    assert_equals( 'timeout_event', sock._pending_read_cb_event )
 def test_read_cb_when_parent_cb_and_is_a_pending_event_and_already_buffered_data(self):
   sock = EventSocket()
   sock._read_buf = bytearray('foo')
   sock._sock = mock()
   sock._peername = 'peername'
   sock._parent_read_cb = 'p_read_cb'
   sock._pending_read_cb_event = 'pending_read'
   mock( sock, 'getsockopt' )
   
   expect( sock.getsockopt ).args( socket.SOL_SOCKET, socket.SO_RCVBUF ).returns( 42 )
   expect( sock._sock.recv ).args( 42 ).returns( 'sumdata' )
   expect( sock._flag_activity )
   
   assert_true( sock._read_cb() )
   assert_equals( bytearray('foosumdata'), sock._read_buf )