U
    be/                     @   s  d dl Z d dlmZ d dlZd dlmZ d dlmZmZm	Z	 d dl
mZmZmZ dd Zej ejdeegd	d
 Zej ejdeegdd Zej ejdeegdd Zej dd Zej dd Zej dd Zej dd Zej dd Zej dd Zej dd Zej dd Zdd  Zej ejdeegd!d" Zej d#d$ Zej d%d& Z ej d'd( Z!ej"d)ej d*d+ Z#ej ejd,ed-fed.fgd/d0 Z$dS )1    N)defaultdict)Client)MemcacheClientErrorMemcacheIllegalInputErrorMemcacheServerError)PickleSerdecompressed_serdepickle_serdec                 C   s   |  |}|d kst| j||dd |  |}||ks<t| j||dd |  |}||ksbt| ||g}|||||ikst| g }|i kstd S )NFZnoreplyT)getAssertionErrorsetZget_many)clientkeyvaluekey2value2result r   b/var/www/html/services/stratfitenv/lib/python3.8/site-packages/pymemcache/test/test_integration.pyget_set_helper   s    



r   serdec                 C   s@   | ||f|||d}|   d}d}d}	d}
t||||	|
 d S )Nr   socket_module
key_prefix   key   value   key2   value2	flush_allr   client_classhostportr   r   r   r   r   r   r   r   r   r   r   test_get_set/   s    	   r%   c                 C   sB   | ||f||d|d}|   d}d}d}	d}
t||||	|
 d S )NT)r   r   Zallow_unicode_keysr   u   こんにちはs   hellou   my☃r   r   r!   r   r   r   test_get_set_unicode_keyD   s    r&   c                 C   s   | ||f|||d}|   |jdddd}|dks8t|d}|dksNt|jdddd}|dksjt|d}|dkst|jdd	dd}|dkst|d}|d kst|jdddd}|dkst|d}|dkstd S )
Nr   r   r   Fr
   Tr      key1   value1)r    addr   r   replace)r"   r#   r$   r   r   r   r   r   r   r   r   test_add_replace_   s.    	   



r+   c                 C   s  | ||f||d}|   |jdddd}|dks6t|d}|d ksLt|jdddd}|dksht|jdddd}|dkst|d}|dkst|jd	ddd}|dkst|d	}|d kst|jdd
dd}|dkst|d}|dkstd S )Nr   r   r   r   Fr
   Ts   afters
   valueafterr'   s   befores   beforevalueafter)r    appendr   r   r   prependr"   r#   r$   r   r   r   r   r   r   r   test_append_prepend   s0      



r0   c                 C   s
  | ||f||d}|   |jddddd}|d ks8t|jdddd}|dksTt|jddddd}|dksrt|jddddd}|dkst|jddd	dd}|dkst|d\}}|dkst|jdd
|dd}|dkst|jdd|dd}|dkstd S )Nr,   r   r      1Fr
   T1   r(   r   )r    casr   r   gets)r"   r#   r$   r   r   r   r   r4   r   r   r   test_cas   s,      r6   c                 C   sj   | ||f||d}|   |d}|dks0t|jdddd}|dksLt|d}|d dksftd S )	Nr,   r   )NNr   Fr
   Tr   )r    r5   r   r   r/   r   r   r   	test_gets   s      

r7   c                 C   s   | ||f||d}|   |jddd}|dks4t|d}|d ksJt|jdddd}|dksft|jddd}|dkst|d}|d kstd S )Nr,   r   Fr
   r   T)r    deleter   r   r   r/   r   r   r   test_delete   s       

r9   c              	      s   t ||f||d     jdddd}|d ks6t jdddd}|dksRt jdddd}|dksnt fdd	}tt |  W 5 Q R X  jd
ddd}|d kst jdddd}|dkst 	d}|dkstd S )Nr,   r   r3   Fr
      0Tc                      s     dd d S )Nr   s   foobar)incrr   r   r   r   _bad_int   s    z test_incr_decr.<locals>._bad_intr'   r   )
r   r    r;   r   r   pytestraisesr   Zdecrr   )r"   r#   r$   r   r   r   r=   r   r<   r   test_incr_decr   s"    
r@   c                 C   s   | ||f||d}|   |jddd}|dks4t|jddddd}|dksRt|jddd}|dkslt|jdddd}|dkstd S )Nr,   r   Fr
   r:   r3   T)r    touchr   r   r/   r   r   r   
test_touch   s      rB   c                 C   s>   t ||f||d}|  |ddd |d}|s:td S )Nr,   Z	cachedumpr2   2   )r   r    statsZcache_memlimitr   )r"   r#   r$   r   r   r   successr   r   r   	test_misc  s
    
rF   c                 C   s\   G dd d}t | |f| |d}|  ddgd}|d| |d}||ksXtd S )Nc                   @   s   e Zd Zdd Zdd ZdS )z5test_serialization_deserialization.<locals>.JsonSerdec                 S   s   t |ddfS )Nasciir3   )jsondumpsencode)selfr   r   r   r   r   	serialize!  s    z?test_serialization_deserialization.<locals>.JsonSerde.serializec                 S   s   |dkrt |dS |S )Nr3   rG   )rH   loadsdecode)rK   r   r   flagsr   r   r   deserialize$  s    zAtest_serialization_deserialization.<locals>.JsonSerde.deserializeN)__name__
__module____qualname__rL   rP   r   r   r   r   	JsonSerde   s   rT   r   r   bd)acr   )r   r    r   r   r   )r#   r$   r   rT   r   r   r   r   r   r   "test_serialization_deserialization  s    	
rZ   c                    s    fdd}| ||f||d     |d |d |d |d |d |d |d	d
i |ddg tt}|d  |d  || d S )Nc                    s>    j d| dd  d}|| ks&tt|t| ks:td S )Nr   Fr
   )r   r   r   type)r   r   r<   r   r   check3  s    
z)serde_serialization_helper.<locals>.checkrU   s   byte stringzunicode stringu   olér3   l   s\Piej rX   picklez
one picklez
two pickles
   two pickle)r    r   int)r"   r#   r$   r   r   r\   Ztestdictr   r<   r   serde_serialization_helper2  s    r_   c                 C   s   t | |||| d S )N)r_   )r"   r#   r$   r   r   r   r   r   test_serde_serializationJ  s    	r`   c                 C   s   t | |||tdd d S )Nr   Zpickle_versionr_   r   r"   r#   r$   r   r   r   r   test_serde_serialization0V  s        rd   c                 C   s   t | |||tdd d S )N   ra   rb   rc   r   r   r   test_serde_serialization2]  s        rf   c           
   	      s  | ||f|d      fdd}tt |  W 5 Q R X  fdd}tt |  W 5 Q R X  fdd}tt |  W 5 Q R X  fdd	}tt |  W 5 Q R X  fd
d}tt |  W 5 Q R X  fdd}	tt |	  W 5 Q R X d S )N)r   c                      s    j dddd d S )Ns   key with spacesr   Fr
   r   r   r<   r   r   _key_with_wsi  s    z!test_errors.<locals>._key_with_wsc                      s    j dddd d S )Ns   
flush_allr   Fr
   rg   r   r<   r   r   !_key_with_illegal_carriage_returno  s    z6test_errors.<locals>._key_with_illegal_carriage_returnc                      s    j dddd d S )Ns   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr   Fr
   rg   r   r<   r   r   _key_too_longu  s    z"test_errors.<locals>._key_too_longc                      s    j dddd d S )N   ࿿r   Fr
   rg   r   r<   r   r   _unicode_key_in_set{  s    z(test_errors.<locals>._unicode_key_in_setc                      s     d d S )Nrk   )r   r   r<   r   r   _unicode_key_in_get  s    z(test_errors.<locals>._unicode_key_in_getc                      s    j dddd d S )Nr   rk   Fr
   rg   r   r<   r   r   _unicode_value_in_set  s    z*test_errors.<locals>._unicode_value_in_set)r    r>   r?   r   r   )
r"   r#   r$   r   rh   ri   rj   rl   rm   rn   r   r<   r   test_errorsd  s(    ro   z1https://github.com/pinterest/pymemcache/issues/39c           
      C   s>   | ||f||d}|   d}d}d}d}	t|||||	 d S )N)r   tls_contextr   r   r   r   r   )
r"   Ztls_hostZtls_portr   rp   r   r   r   r   r   r   r   r   test_tls  s      rq   zserde,should_failTFc              	   C   sz   | ||f||d}|   d}dd d }d}	dd d }
|rftt t||||	|
 W 5 Q R X nt||||	|
 d S )NrU   r   r   i   r   r   )r    r>   r?   r   r   )r"   r#   r$   r   r   Zshould_failr   r   r   r   r   r   r   r   test_get_set_large  s    rr   )%rH   collectionsr   r>   Zpymemcache.client.baser   Zpymemcache.exceptionsr   r   r   Zpymemcache.serder   r   r	   r   markZintegrationZparametrizer%   r&   r+   r0   r6   r7   r9   r@   rB   rF   rZ   r_   r`   rd   rf   ro   skiprq   rr   r   r   r   r   <module>   s   










)
