
    i                         d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	  G d dej                        Zedk(  r ej                          yy)    N)picklec                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                  j                  d
      d        Zy)CloudPickleFileTestszIn Cloudpickle, expected behaviour when pickling an opened file
    is to send its contents over the wire and seek to the same position.c                     t        j                         | _        t        j                  j                  | j                  d      | _        d| _        y )NtestfilezHello world!)tempfilemkdtemptmpdirospathjointmpfilepath
teststringselfs    ~/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/srsly/tests/cloudpickle/cloudpickle_file_test.pysetUpzCloudPickleFileTests.setUp   s4    &&(77<<Z@(    c                 B    t        j                  | j                         y N)shutilrmtreer
   r   s    r   tearDownzCloudPickleFileTests.tearDown   s    dkk"r   c           	      l   t        | j                  d      j                          t        | j                  d      5 }| j                  dt	        j
                  t        j                  |            j                                d d d        t        j                  | j                         y # 1 sw Y   )xY w)Nwr )openr   closeassertEqualr   loadscloudpickledumpsreadr   remover   fs     r   test_empty_filez$CloudPickleFileTests.test_empty_file   s    Ts#))+$""C( 	LARk.?.?.B!C!H!H!JK	L
		$""#	L 	Ls   AB**B3c                    t        | j                  d      5 }|j                  | j                         d d d        t	        j
                  t        j                        5 }t        j                         d d d        dt        j                        v sJ t        j                  | j                         y # 1 sw Y   xY w# 1 sw Y   NxY w)Nr   zCannot pickle closed files)r   r   writer   pytestraisesr   PicklingErrorr"   r#   strvaluer   r%   )r   r'   excinfos      r   test_closed_filez%CloudPickleFileTests.test_closed_file    s    $""C( 	%AGGDOO$	%]]6//0 	!Ga 	!+s7==/AAAA
		$""#	% 	%	! 	!s   B5C5B>C
c                    t        | j                  d      5 }|j                  | j                         d d d        t        | j                  d      5 }t	        j
                  t        j                  |            }| j                  | j                  |j                                d d d        t        j                  | j                         y # 1 sw Y   xY w# 1 sw Y   5xY w)Nr   r   )r   r   r*   r   r   r!   r"   r#   r    r$   r   r%   r   r'   new_fs      r   test_r_modez CloudPickleFileTests.test_r_mode)   s    $""C( 	%AGGDOO$	% $""C( 	<ALL!2!21!56ET__ejjl;	< 			$""#	% 	%	< 	<s   CACCC!c                 8   t        | j                  d      5 j                  | j                         j	                  d       | j                  t        j                  fd       d d d        t        j                  | j                         y # 1 sw Y   )xY w)Nr   r   c                  .    t        j                         S r   )r"   r#   )r'   s   r   <lambda>z2CloudPickleFileTests.test_w_mode.<locals>.<lambda>8   s    k&7&7&: r   )
r   r   r*   r   seekassertRaisesr   r-   r   r%   r&   s    @r   test_w_modez CloudPickleFileTests.test_w_mode3   sr    $""C( 	<AGGDOO$FF1If22:<	<
 			$""#	< 	<s   ABBc                    t        | j                  d      5 }|j                  | j                         |j	                  d       t        j                  t        j                  |            }| j                  | j                  |j                                d d d        t        j                  | j                         y # 1 sw Y   )xY w)Nw+r   )r   r   r*   r   r9   r   r!   r"   r#   r    r$   r   r%   r3   s      r   test_plus_modez#CloudPickleFileTests.test_plus_mode;   s    $""D) 	<QGGDOO$FF1ILL!2!21!56ET__ejjl;		<
 			$""#	< 	<s   A?B>>Cc                 P   t        | j                  d      5 }|j                  | j                         |j	                  d       t        j                  t        j                  |            }| j                  d|j                                | j                  | j                  dd  |j                                |j	                  d       | j                  | j                  |j                                d d d        t        j                  | j                         y # 1 sw Y   )xY w)Nr=      r   )r   r   r*   r   r9   r   r!   r"   r#   r    tellr$   r   r%   )r   r'   	unpickleds      r   	test_seekzCloudPickleFileTests.test_seekD   s    $""D) 		@QGGDOO$FF1I[%6%6q%9:IQ	 01T__QR0)..2BCNN1T__inn.>?		@ 			$""#		@ 		@s   CDD%zRequires pytest -s to pass)reasonc           	          t         j                  t         j                  fD ]:  }| j                  |t	        j
                  t        j                  |                   < | j                  t        j                  d        y )Nc                  H    t        j                  t        j                        S r   )r"   r#   sysstdin r   r   r8   zICloudPickleFileTests.test_pickling_special_file_handles.<locals>.<lambda>X   s    +"3"3CII"> r   )
rG   stdoutstderrr    r   r!   r"   r#   r:   r-   )r   outs     r   "test_pickling_special_file_handlesz7CloudPickleFileTests.test_pickling_special_file_handlesR   s`     ::szz) 	HCS&,,{/@/@/E"FG	H&..>	@r   N)__name__
__module____qualname____doc__r   r   r(   r1   r5   r;   r>   rC   r+   markskiprM   rI   r   r   r   r      sY    L)
#$$$$$$ [[9:@ ;@r   r   __main__)r   r   rG   r   unittestr+   srsly.cloudpickler"   srsly.cloudpickle.compatr   TestCaser   rN   mainrI   r   r   <module>rZ      sN    	  
    ' +K@8,, K@\ zHMMO r   