U
    be                  	   @   sR  d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
 d dlZd dlZd dlZd dlZG dd deZdd Zej G dd	 d	Zej G d
d deZej G dd deZej G dd deZej G dd deZejdee gej dd Zejdeddedd dd ddgej dd ZdS )    )TestCase)CompressedSerdepickle_serdePickleSerde
FLAG_BYTESFLAG_COMPRESSEDFLAG_PICKLEFLAG_INTEGER	FLAG_TEXTNc                   @   s   e Zd ZdZdS )	CustomIntz
    Custom integer type for testing.

    Entirely useless, but used to show that built in types get serialized and
    deserialized back as the same type of object.
    N)__name__
__module____qualname____doc__ r   r   \/var/www/html/services/stratfitenv/lib/python3.8/site-packages/pymemcache/test/test_serde.pyr      s   r   c                 C   sR   |  d|\}}||kstt|ts4t|d}| d||}||ksNtd S )Ns   keyascii)	serializeAssertionError
isinstancebytesstrencodeZdeserialize)serdevalueZexpected_flagsZ
serializedflagsZdeserializedr   r   r   check   s    
r   c                   @   s8   e Zd ZeZdd Zdd Zdd Zdd Zd	d
 Z	dS )	TestSerdec                 C   s    t | jdt t | jdt d S )N   value   £ $ €)r   r   r   selfr   r   r   
test_bytes/   s    zTestSerde.test_bytesc                 C   s    t | jdt t | jdt d S )Nr      £ $ €)r   r   r
   r    r   r   r   test_unicode3   s    zTestSerde.test_unicodec                 C   s   t | jdt d S )N   )r   r   r	   r    r   r   r   test_int7   s    zTestSerde.test_intc                 C   s   t | jddit d S )Nadict)r   r   r   r    r   r   r   test_pickleable:   s    zTestSerde.test_pickleablec                 C   s   t | jtdt d S )Ni )r   r   r   r   r    r   r   r   test_subtype=   s    zTestSerde.test_subtypeN)
r   r   r   r   r   r"   r$   r&   r)   r*   r   r   r   r   r   +   s   r   c                   @   s   e Zd ZeddZdS )TestSerdePickleVersion0r   Zpickle_versionNr   r   r   r   r   r   r   r   r   r+   B   s   r+   c                   @   s   e Zd ZeddZdS )TestSerdePickleVersion1r%   r,   Nr-   r   r   r   r   r.   G   s   r.   c                   @   s   e Zd ZeddZdS )TestSerdePickleVersion2   r,   Nr-   r   r   r   r   r/   L   s   r/   c                   @   s   e Zd ZeejdZdS )TestSerdePickleVersionHighestr,   N)r   r   r   r   pickleHIGHEST_PROTOCOLr   r   r   r   r   r1   Q   s   r1   r   c                 C   s`   t | dt t | dt t | dt t | dt t | dt t | ddit t | tdt d S )	Nr   r   r   r#   r%   r'   r(   i0  )r   r   r
   r	   r   r   r   r   r   r   test_compressed_simpleV   s    r5   1   )min_compress_lenc                 C   s   t | dS )N	   )zlibcompressr   r   r   r   <lambda>r       r<   c                 C   s
   t | S )N)r9   
decompressr;   r   r   r   r<   s   r=   )r:   r>   r7   c                 C   s   t | dttB  t | dttB  t | dttB  t | dttB  t | tjt t | ddddd	ttB  t | ttjttB  d S )
Ns2   valuevaluevaluevaluevaluevaluevaluevaluevaluevaluesP   £ $ €£ $ €£ $ €£ $ €£ $ €£ $ €£ $ €£ $ €£ $ €£ $ €Z2valuevaluevaluevaluevaluevaluevaluevaluevaluevalueuP   £ $ €£ $ €£ $ €£ $ €£ $ €£ $ €£ $ €£ $ €£ $ €£ $ €barZquxdostres)ZfooZbazZunorA   )	r   r   r   r
   sysmaxsizer	   r   r   r4   r   r   r   test_compressed_complexl   s    rD   )Zunittestr   Zpymemcache.serder   r   r   r   r   r   r	   r
   Zpytestr2   rB   r9   intr   r   markunitr   r+   r.   r/   r1   Zparametrizer5   rD   r   r   r   r   <module>   s@   (
