o
    \"<f6                     @   sj   d Z ddlZddlZddlZddlZddlmZ G dd deZdd Z	dd	 Z
ejdd
ddfddZdS )zTest utils.    N)dedentc                   @   s(   e Zd Zed Zdd Zdd ZdS )NotAliveErrorz
    test memcached %s:%s not alive

    consider setting MEMCACHED_HOST and/or MEMCACHED_PORT
    to something more appropriate.c                 C   s   |\| _ | _| _d S N)server_typeaddressport)selfsvr r
   C/var/www/html/kck/venv/lib/python3.10/site-packages/pylibmc/test.py__init__   s   zNotAliveError.__init__c                 C   s   | j | j| jf S r   )templater   r   )r   r
   r
   r   __str__   s   zNotAliveError.__str__N)__name__
__module____qualname__r   lstripr   r   r   r
   r
   r
   r   r   	   s    r   c                 C   s   | \}}}|t jkrtdttjtj}z|||f |d |d}W |	  n|	  w d}d}|
|rA||sHtd||dd }|S )	Nz&test server can only be on tcp for nows	   version
i   s   VERSION s   
zunexpected version return:    )_pylibmcserver_type_tcpNotImplementedErrorsocketAF_INETSOCK_STREAMconnectsendrecvclose
startswithendswith
ValueError)addrtype_hostr   sversionvstrrnstrr
   r
   r   get_version   s   


r)   c              	   C   s4   zt | }W n ttfy   d }Y nw t||fS r   )r)   r!   OSErrorbool)r"   r&   r
   r
   r   is_alive*   s   r,   tcpz	127.0.0.1i+  c                 K   s   t jt jt jd}|du rtj}|d|}|d|}|d|}|| t|t|f}t	|\}	}
|	r>| |gfi |S t
|)zlMake a test client. `env` overrides keyword arguments.

    >>> make_test_client() is not None
    True
    )r-   udpunixNMEMCACHED_TYPEMEMCACHED_HOSTMEMCACHED_PORT)r   r   server_type_udpserver_type_unixosenvirongetstrintr,   r   )clsenvr   r$   r   kwdsserver_typesstyptest_serveraliver&   r
   r
   r   make_test_client1   s   rA   )__doc__r5   r   r   pylibmctextwrapr   	Exceptionr   r)   r,   ClientrA   r
   r
   r
   r   <module>   s    