
    i                         d dl Z d dlmZ d dlZd dlmZ d dlZddlmZm	Z	 ddlm
Z
mZ ddlmZmZ dd	lmZ d
 Zd Zd Zd Zd Z edd       edd      d               Zd Zy)    N)Path)patch   )read_msgpackwrite_msgpack)msgpack_loadsmsgpack_dumps)msgpack_encodersmsgpack_decoders   )make_tempdirc                  8    ddd} ddg}t        |       }||v sJ y )Nworld{   hellotest   helloworldtest{   test{helloworld)r	   )dataexpectedmsgs      m/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/srsly/tests/test_msgpack_api.pytest_msgpack_dumpsr      s-    c*D24VWH

C(??    c                  f    d} t        |       }t        |      dk(  sJ |d   dk(  sJ |d   dk(  sJ y )Nr   r   r   r   r   r   )r   len)r   r   s     r   test_msgpack_loadsr      sE    
,CDt9>>=G###<3r   c                      d} t        d| id      5 }|dz  }|j                         sJ t        |      }d d d        t              dk(  sJ |d   dk(  sJ y # 1 sw Y   $xY w)Ns   helloworldtmp.msgwbmoder   r   r   )r   existsr   r   )file_contentstemp_dir	file_pathr   s       r   test_read_msgpack_filer(      sw    -M	y-0t	< 'y(	!!!I&' t9>>=G###' 's   #AA!c                      d} t        d| id      5 }|dz  }|j                         sJ t        j                  t              5  t        |       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Ns   helloworldr    r!   r"   )r   r$   pytestraises
ValueErrorr   )r%   r&   r'   s      r   test_read_msgpack_file_invalidr-   &   sw    )M	y-0t	< $y(	!!!]]:& 	$#	$$ $	$ 	$$ $s#   1A,A A, A)	%A,,A5c                     ddd} ddg}t        d      5 }|dz  }t        ||        t        |      j                  d	      5 }|j	                         |v sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)
Nr   r   r   r   r   r!   r"   r    rb)r   r   r   openread)r   r   r&   r'   fs        r   test_write_msgpack_filer3   /   s    c*D24VWH	4	  (Hy(	i&)_!!$' 	(1668x'''	(( (	( 	(( (s#   ,A5A)A5)A2	.A55A>zsrsly.msgpack._msgpack_numpy.npz&srsly.msgpack._msgpack_numpy.has_numpyFc                      t        j                  t              5  t        t	        t
        j
                  j                                      ddd       y# 1 sw Y   yxY w)zTest that msgpack works without numpy and raises correct errors (e.g.
    when serializing datetime objects, the error should be msgpack's TypeError,
    not a "'np' is not defined error").N)r*   r+   	TypeErrorr   r	   datetimenow r   r   test_msgpack_without_numpyr9   9   sA     
y	! >mH$5$5$9$9$;<=> > >s   1AAc                      G d d      dfd	} dfd	}d ddi      d}t        j                  t              5  t        |       d d d        t	        j
                  d	| 
       t        j
                  d	|
       t        |      }t        |      }|d   dk(  sJ t        |d         sJ |d   j                  ddik(  sJ t        j                  d       ddi      d}t        |      }t        |      }t        |d   t        j                        sJ t        |d         sJ |d   j                  ddik(  sJ y # 1 sw Y   xY w)Nc                       e Zd Zd Zy)9test_msgpack_custom_encoder_decoder.<locals>.CustomObjectc                     || _         y N)value)selfr?   s     r   __init__zBtest_msgpack_custom_encoder_decoder.<locals>.CustomObject.__init__E   s	    DJr   N)__name__
__module____qualname__rA   r8   r   r   CustomObjectr<   D   s    	r   rE   c                 P    t        |       rd| j                  iS || S  ||       S N
__custom__)
isinstancer?   objchainrE   s     r   serialize_objz:test_msgpack_custom_encoder_decoder.<locals>.serialize_objH   s/    c<( #)),,ms3s3r   c                 :    d| v r | d         S || S  ||       S rG   r8   rJ   s     r   deserialize_objz<test_msgpack_custom_encoder_decoder.<locals>.deserialize_objM   s.    3L 122ms3s3r   r   foobar)abcustom_object)funcrR   rS   )r   r      r>   )r*   r+   r5   r	   r
   registerr   r   rI   r?   numpyzerosndarray)rM   rO   r   
bytes_datanew_datarE   s        @r   #test_msgpack_custom_encoder_decoderr]   C   sE    4
4
 <78D	y	! d oMBoODt$JZ(HC=Chsm\222C=5%.000Y'lE5>.JKDt$JZ(HhsmU]]333hsm\222C=5%.000# s   EE)r*   pathlibr   r6   mockr   rX   _msgpack_apir   r   r   r	   r
   r   utilr   r   r   r(   r-   r3   r9   r]   r8   r   r   <module>rb      sj         6 7 = $$( ($//7> 8 0>!1r   