File: //usr/share/doc/python3-pycurl/tests/__pycache__/multi_socket_test.cpython-36.pyc
3
�[� � @ s� d dl mZ ddlZddlZd dl mZ d dl mZ ejd�\ZZejd�\Z Z
ejd�\ZZd
d� Z
dd
� ZG dd� dej�ZdS )� )� localhost� N)�
appmanager)�util�app� � � c C s t | � t| � t| � d S )N)�setup_module_1�setup_module_2�setup_module_3)�mod� r �@/builddir/build/BUILD/pycurl-7.43.0.2/tests/multi_socket_test.py�setup_module s r c C s t | � t| � t| � d S )N)�teardown_module_3�teardown_module_2�teardown_module_1)r
r r r �teardown_module s r c @ s e Zd Zdd� Zdd� ZdS )�MultiSocketTestc s� dt dt dt g}g � � fdd�}tj� }|jtj|� g |_xb|D ]Z}tj� }||_tj � |_
d|_|jj|� |j|j
|j� |j|j|j
j� |j|� qHW t|j�}x0|r�x|j� \}}|tjkr�P q�W |jd� q�W x|jD ]}|j|j�|_q�W t� �dk�st�xT|jD ]J}| jd |j
j� j� � | jd
|j� | jtj|� � | jtj|� � �qW x"|jD ]}|j|� |j� �qpW |j� d S )Nzhttp://%s:8380/short_waitzhttp://%s:8381/short_waitzhttp://%s:8382/short_waitc s � j | |f� d S )N)�append)�event�socket�multi�data)�
socket_eventsr r r ( s z1MultiSocketTest.test_multi_socket.<locals>.socketr g�������?� �success�� ���) r �pycurl� CurlMulti�setoptZM_SOCKETFUNCTIONZhandlesr �DefaultCurl�url�BytesIO�bodyZ http_coder �URL�
WRITEFUNCTION�write�
add_handle�len�
socket_allZE_CALL_MULTI_PERFORM�select�getinfo� HTTP_CODE�AssertionError�assertEqual�getvalue�decode�checkZPOLL_INZPOLL_REMOVE�
remove_handle�close)�selfZurlsr �mr$ �cZnum_handles�retr )r r �test_multi_socket sH
z!MultiSocketTest.test_multi_socketc C s>