
    wi                         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dS )    N)Path)patch   )read_msgpackwrite_msgpack)msgpack_loadsmsgpack_dumps)msgpack_encodersmsgpack_decoders   )make_tempdirc                  B    ddd} ddg}t          |           }||v sJ d S )Nworld{   hellotest   helloworldtest{   test{helloworld)r	   )dataexpectedmsgs      l/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/srsly/tests/test_msgpack_api.pytest_msgpack_dumpsr      s8    c**D24VWH


C(??????    c                      d} t          |           }t          |          dk    sJ |d         dk    sJ |d         dk    sJ d S )Nr   r   r   r   r   r   )r   len)r   r   s     r   test_msgpack_loadsr      sW    
,CDt99>>>>=G####<3r   c                      d} t          d| id          5 }|dz  }|                                sJ t          |          }d d d            n# 1 swxY w Y   t          |          dk    sJ |d         dk    sJ d S )Ns   helloworldtmp.msgwbmoder   r   r   )r   existsr   r   )file_contentstemp_dir	file_pathr   s       r   test_read_msgpack_filer(      s    -M	y-0t	<	<	< 'y(	!!!!!I&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' t99>>>>=G######s   +AAAc                     d} t          d| id          5 }|dz  }|                                sJ t          j        t                    5  t          |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Ns   helloworldr    r!   r"   )r   r$   pytestraises
ValueErrorr   )r%   r&   r'   s      r   test_read_msgpack_file_invalidr-   &   s   )M	y-0t	<	<	< $y(	!!!!!]:&& 	$ 	$###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s5   5A?A'A?'A+	+A?.A+	/A??BBc                  :   ddd} ddg}t          d          5 }|dz  }t          ||            t          |                              d	          5 }|                                |v sJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )
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6688x'''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s5   8BA8,B8A<	<B?A<	 BBBzsrsly.msgpack._msgpack_numpy.npz&srsly.msgpack._msgpack_numpy.has_numpyFc                      t          j        t                    5  t          t	          t
          j                                                             ddd           dS # 1 swxY w Y   dS )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   s     
y	!	! > >mH$5$9$9$;$;<<===> > > > > > > > > > > > > > > > > >s   9A  A$'A$c                      G d d          dfd	} dfd	}d ddi          d}t          j        t                    5  t          |           d d d            n# 1 swxY w Y   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 d S )Nc                       e Zd Zd ZdS )9test_msgpack_custom_encoder_decoder.<locals>.CustomObjectc                     || _         d S N)value)selfr?   s     r   __init__zBtest_msgpack_custom_encoder_decoder.<locals>.CustomObject.__init__E   s    DJJJr   N)__name__
__module____qualname__rA   r8   r   r   CustomObjectr<   D   s#        	 	 	 	 	r   rE   c                 T    t          |           r	d| j        iS || n
 ||           S N
__custom__)
isinstancer?   objchainrE   s     r   serialize_objz:test_msgpack_custom_encoder_decoder.<locals>.serialize_objH   s8    c<(( 	- #),,msss3r   c                 L    d| v r | d                   S || n
 ||           S rG   r8   rJ   s     r   deserialize_objz<test_msgpack_custom_encoder_decoder.<locals>.deserialize_objM   s9    3<L 1222mss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   s!          4 4 4 4 4 4
4 4 4 4 4 4
 <<7788D	y	!	!  d               oMBBBBoODDDDt$$JZ((HC=Chsm\22222C=5%.0000Y''llE5>.J.JKKDt$$JZ((HhsmU]33333hsm\22222C=5%.000000s   A  A$'A$)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      sC                  6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 = = = = = = = =          $ $ $$ $ $( ( ( ($///77> > 87 0/>!1 !1 !1 !1 !1r   