
    d                         d Z ddlZddlZddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ dd	lmZmZ d
dlmZ 	 ddlmZ n# e$ r dZY nw xY w G d de          ZdS )zTests for archive support.    N)BytesIO)
skipUnless)TestCase   )
tar_stream)MemoryObjectStore)BlobTree   )build_commit_graph)patchc                   \    e Zd Zd Zd Zd Zd Zd Zd Z e	e
d          d             Zd	S )
ArchiveTestsc                    t                      }t          |dgddgg dg          \  }}}||j                 }d                    t	          ||d                    }t          |          }t          j        |          }|                     |j	                   | 
                    g |                                           d S )Nr   r   )   r   r       
   fileobj)r   r   treejoinr   r   tarfileTarFile
addCleanupcloseassertEqualgetnames)	selfstorec1c2c3r   streamouttfs	            ^/home/feoh/.local/pipx/venvs/poetry/lib/python3.11/site-packages/dulwich/tests/test_archive.py
test_emptyzArchiveTests.test_empty*   s    !##'aVYYY/GHH
BRW~*UD"5566foo_S)))!!!R[[]]+++++r   c                 T   t                      }t          j        d          }|                    |           t	                      }|                    dd|j                   |                    |           d                    t          ||g|R i |          }t          |          S )N   somedatas   somename餁  r   )
r   r	   from_string
add_objectr
   addidr   r   r   )r   tar_stream_argstar_stream_kwargsr   b1t1r#   s          r&   _get_example_tar_streamz$ArchiveTests._get_example_tar_stream4   s    !##k**VV
{Hbe,,,*UBVVVVDUVVWWvr   c                     |                      d          }t          j        |          }|                     |j                   |                     dg|                                           d S )Nr   mtimer   somenamer3   r   r   r   r   r   r   r   r#   r%   s      r&   test_simplezArchiveTests.test_simple>   sd    --A-66_V,,,!!!*r{{}}55555r   c                 *   t                      }t          j        d          }|                    |           t	                      }|                    d                                d|j                   |                    |           d                    t          ||d                    }t          j        t          |                    }|                     |j                   |                     dg|                                           d S )Nr)   u   őr*   r   r   r5   r   )r   r	   r+   r,   r
   r-   encoder.   r   r   r   r   r   r   r   r   r   )r   r   r1   r2   r#   r%   s         r&   test_unicodezArchiveTests.test_unicodeD   s    !##k**VV
t{{}}h...*UBa88899_WV__555!!!$/////r   c                     |                      dd          }t          j        |          }|                     |j                   |                     dg|                                           d S )Nr   s   blah)r6   prefixr   zblah/somenamer8   r9   s      r&   test_prefixzArchiveTests.test_prefixP   sg    --Ag-FF_V,,,!!!/*BKKMM:::::r   c                     |                      dd          }t          j        dd          }|                     |                                dd         |           d S )Ni  gzr6   formatz<L      )r3   structpackr   getvalue)r   r#   expected_mtimes      r&   test_gzip_mtimezArchiveTests.test_gzip_mtimeV   sZ    --D-FFT400**1Q3/@@@@@r   zRequired mock.patchc                    d d g}dD ]}dD ]Y}t          d|          5  |                     d|          }|                                ||<   d d d            n# 1 swxY w Y   Z|                     |d         |d         d|z             d S )	N) rB   bz2)r   r   z	time.time)return_valuer   rC   r   z%Different file contents for format %r)r   r3   rI   r   )r   contentsrD   ir#   s        r&   test_same_filezArchiveTests.test_same_file[   s    $<' 		 		F 4 4;Q777 4 4!99&9QQF"(//"3"3HQK4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 7&@   		 		s   /AA AN)__name__
__module____qualname__r'   r3   r:   r=   r@   rK   r   r   rR    r   r&   r   r   )   s        , , ,  6 6 6
0 
0 
0; ; ;A A A
 Z,--  .-  r   r   )__doc__rG   r   ior   unittestr   dulwich.testsr   archiver   object_storer   objectsr	   r
   utilsr   unittest.mockr   ImportErrorr   rV   r   r&   <module>ra      s  * !                 " " " " " "             , , , , , ,                 % % % % % %#######   EEE> > > > >8 > > > > >s   ? A	A	