def test_connect_cb_when_fail_and_not_immediateraise(self): sock = EventSocket() mock( sock, '_sock' ) mock( sock, '_connect_event' ) expect( sock._sock.connect_ex ).args( ('.com', 1234) ).returns( errno.ECONNREFUSED ) expect( sock._connect_event.delete ) expect( sock._handle_error ).args( socket.error ) sock._connect_cb( time.time(), ('.com',1234) )
def test_connect_cb_when_ealready_and_timeout(self): sock = EventSocket() mock( sock, '_sock' ) mock( sock, '_connect_event' ) # assert delete() not called timeout_at = time.time()-3 expect( sock._sock.connect_ex ).args( ('.com', 1234) ).returns( errno.EALREADY ) expect( sock.close ) sock._connect_cb( timeout_at, ('.com',1234) )
def test_connect_cb_when_einprogress_and_notimeout_and_no_pending_connect(self): sock = EventSocket() mock( sock, '_sock' ) timeout_at = time.time()+3 expect( sock._sock.connect_ex ).args( ('.com', 1234) ).returns( errno.EINPROGRESS ) expect( eventsocket.event.timeout ).args( 0.1, sock._connect_cb, timeout_at, ('.com', 1234) ).returns( 'connectev' ) sock._connect_cb( timeout_at, ('.com',1234) ) assert_equals( 'connectev', sock._connect_event )
def test_connect_cb_when_no_err_and_pending_connect_event(self): sock = EventSocket() mock( sock, '_sock' ) mock( sock, '_connect_event' ) expect( sock._sock.connect_ex ).args( ('.com', 1234) ) expect( sock._sock.getpeername ).returns( ('.com', 1234) ) expect( eventsocket.event.read ).any_args() expect( eventsocket.event.write ).any_args() expect( sock._connect_event.delete ) sock._connect_cb( 3.14, ('.com',1234) ) assert_equals( None, sock._connect_event )
def test_connect_cb_when_no_err(self): sock = EventSocket() mock( sock, '_sock' ) expect( sock._sock.connect_ex ).args( ('.com', 1234) ) expect( sock._sock.getpeername ).returns( ('.com', 1234) ) expect( eventsocket.event.read ).args( sock._sock, sock._protected_cb, sock._read_cb ).returns( 'readev' ) expect( eventsocket.event.write ).args( sock._sock, sock._protected_cb, sock._write_cb ).returns( 'writeev' ) sock._connect_cb( 3.14, ('.com',1234) ) assert_equals( '.com:1234', sock._peername ) assert_equals( 'readev', sock._read_event ) assert_equals( 'writeev', sock._write_event ) assert_equals( None, sock._connect_event )