
    d&                         d Z ddl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mZmZmZ d Z G d	 d
e          Z G d de          Z G d d          Z G d dee          Z G d dee          ZdS )zTests for graftpoints.    N)TestCase   )ObjectFormatException)Tree)
MemoryRepoRepoparse_graftpointsserialize_graftpointsc                 \    t          |                               d          dz  d d         S )Nascii(   )strencode)digits    ]/home/feoh/.local/pipx/venvs/poetry/lib/python3.11/site-packages/dulwich/tests/test_grafts.pymakeshar   !   s*    JJg&&+SbS11    c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )GraftParserTestsc                 f    |                      |t          t          |                               d S N)assertEqualr	   iterselfexpectedgraftpointss      r   assertParsezGraftParserTests.assertParse&   s/    #4T+5F5F#G#GHHHHHr   c                 2    |                      i g            d S r   )r   r   s    r   test_no_graftszGraftParserTests.test_no_grafts)   s    R     r   c                 l    |                      t          d          g it          d          g           d S Nr   )r   r   r    s    r   test_no_parentsz GraftParserTests.test_no_parents,   s1    '!**b)GAJJ<88888r   c           
         |                      t          d          t          d          t          d          gid                    t          d          t          d          t          d          g          g           d S )Nr      r       r   r   joinr    s    r   test_parentszGraftParserTests.test_parents/   sn    QZZ'!**gajj12YY

GAJJ

;<<=	
 	
 	
 	
 	
r   c                    |                      t          d          g t          d          t          d          gt          d          t          d          t          d          git          d          d                    t          d          t          d          g          d                    t          d          t          d          t          d          g          g           d S )Nr   r&   r            r'   r(   r    s    r   test_multiple_hybridz%GraftParserTests.test_multiple_hybrid5   s    

B

WQZZL

WQZZ4 

		71::wqzz233		71::wqzz71::>??	
 	
 	
 	
 	
r   N)__name__
__module____qualname__r   r!   r$   r*   r/    r   r   r   r   %   sb        I I I! ! !9 9 9
 
 

 
 
 
 
r   r   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )GraftSerializerTestsc                     |                      t          |          t          t          |                               d S r   )r   sortedr
   r   s      r   assertSerializez$GraftSerializerTests.assertSerializeE   s7    ))62G2T2T+U+UVVVVVr   c                 2    |                      di            d S )Nr   )r8   r    s    r   r!   z#GraftSerializerTests.test_no_graftsH   s    S"%%%%%r   c                 j    |                      t          d          t          d          g i           d S r#   )r8   r   r    s    r   r$   z$GraftSerializerTests.test_no_parentsK   s/    WQZZ'!**b)9:::::r   c           	         |                      d                    t          d          t          d          t          d          g          t          d          t          d          t          d          gi           d S )Nr'   r   r&   r   r8   r)   r   r    s    r   r*   z!GraftSerializerTests.test_parentsN   sk    IIwqzz71::wqzz:;;QZZ'!**gajj12	
 	
 	
 	
 	
r   c                    |                      d                    t          d          d                    t          d          t          d          g          d                    t          d          t          d          t          d          g          g          t          d          g t          d          t          d          gt          d          t          d          t          d          gi           d S )	N   
r   r'   r&   r   r,   r-   r.   r<   r    s    r   r/   z)GraftSerializerTests.test_multiple_hybridT   s    JJAJJIIwqzz71::677IIwqzz71::wqzzBCC  

B

WQZZL

WQZZ4	
 	
 	
 	
 	
r   N)r0   r1   r2   r8   r!   r$   r*   r/   r3   r   r   r5   r5   D   sb        W W W& & &; ; ;
 
 

 
 
 
 
r   r5   c                   B     e Zd Z fdZd Zd Zd Zd Zd Zd Z	 xZ
S )GraftsInRepositoryBasec                 H    t                                                       d S r   )supertearDown)r   	__class__s    r   rC   zGraftsInRepositoryBase.tearDownf   s    r   c                 >    | j         }|                    |           |S r   )_repo_add_graftpoints)r   graftsrs      r   get_repo_with_graftsz+GraftsInRepositoryBase.get_repo_with_graftsi   s"    J	6"""r   c                     |                      i           }d |                                D             }|                     || j        d d d                    d S )Nc                 &    g | ]}|j         j        S r3   commitid.0es     r   
<listcomp>z9GraftsInRepositoryBase.test_no_grafts.<locals>.<listcomp>q   s    444444r   )rJ   
get_walkerr   _shas)r   rI   shass      r   r!   z%GraftsInRepositoryBase.test_no_graftsn   sY    %%b))44Q\\^^444tz$$B$/00000r   c                     |                      | j                                        g i          }|                     d |                                D             |                                g           d S )Nc                 &    g | ]}|j         j        S r3   rM   rP   s     r   rS   z@GraftsInRepositoryBase.test_no_parents_graft.<locals>.<listcomp>w       >>>!!(+>>>r   )rJ   rF   headr   rU   r   rI   s     r   test_no_parents_graftz,GraftsInRepositoryBase.test_no_parents_graftt   sc    %%tz'8'8"&=>>>>q||~~>>>
KKKKKr   c                     |                      | j        d         | j        d         gi          }|                     d |                                D             | j        d         | j        d         g           d S )NrT   r   c                 &    g | ]}|j         j        S r3   rM   rP   s     r   rS   zEGraftsInRepositoryBase.test_existing_parent_graft.<locals>.<listcomp>}   s    111QQX[111r   )rJ   rV   r   rU   r\   s     r   test_existing_parent_graftz1GraftsInRepositoryBase.test_existing_parent_grafty   sw    %%tz"~
1&GHH11!,,..111Z^TZ]+	
 	
 	
 	
 	
r   c                 <   |                      | j                                        g i          }|                    | j                                        g           |                     d |                                D             | j        d d d                    d S )Nc                 &    g | ]}|j         j        S r3   rM   rP   s     r   rS   z<GraftsInRepositoryBase.test_remove_graft.<locals>.<listcomp>   rZ   r   rT   )rJ   rF   r[   _remove_graftpointsr   rU   rV   r\   s     r   test_remove_graftz(GraftsInRepositoryBase.test_remove_graft   s    %%tz'8'8"&=>>	tz001222>>q||~~>>>
44R4@PQQQQQr   c                 r    | j         }|                     t          |j        | j        d         dgi           d S )NrT   1)rF   assertRaisesr   rG   rV   r\   s     r   &test_object_store_fail_invalid_parentsz=GraftsInRepositoryBase.test_object_store_fail_invalid_parents   sB    J!1#5
27N	
 	
 	
 	
 	
r   )r0   r1   r2   rC   rJ   r!   r]   r`   rd   rh   __classcell__rD   s   @r   r@   r@   e   s              
1 1 1L L L

 
 
R R R
 
 
 
 
 
 
r   r@   c                   *     e Zd Z fdZd Zd Z xZS )GraftsInRepoTestsc                 :   t                                                       t          j                            t          j                              | _        t          j	        | j                  x}| _
        |                     t          j        | j                   g | _        ddddddd}| j                             |j        di |           | j                             |j        di |           | j                             |j        di |           d S )N"   Test Committer <test@nodomain.com>   Test Author <test@nodomain.com>k0  r   )	committerauthorcommit_timestampcommit_timezoneauthor_timestampauthor_timezone   empty commitrw   )rB   setUpospathr)   tempfilemkdtemp	_repo_dirr   initrF   
addCleanupshutilrmtreerV   append	do_commit)r   rI   commit_kwargsrD   s      r   ry   zGraftsInRepoTests.setUp   s	   h&6&8&8994>222DJt~666
 ?8 %  % 
 
 	
+!+GGGGHHH
+!+GGGGHHH
+!+GGGGHHHHHr   c                     | j         }|                    t          j                            dd          d           t          | j                  }|                     i |j                   d S )NinforH   r   )	rF   _put_named_filerz   r{   r)   r   r~   r   _graftpointsr\   s     r    test_init_with_empty_info_graftsz2GraftsInRepoTests.test_init_with_empty_info_grafts   s\    J	"',,vx88#>>>  Q^,,,,,r   c                 D   | j         }|                    t          j                            dd          | j        d         dz   | j        d         z              t          | j                  }|                     | j        d         | j        d         gi|j	                   d S )Nr   rH   rT   r'   r   )
rF   r   rz   r{   r)   rV   r   r~   r   r   r\   s     r   test_init_with_info_graftsz,GraftsInRepoTests.test_init_with_info_grafts   s    J	GLL**JrNT!DJqM1	
 	
 	

   $*R.4:a=/:ANKKKKKr   )r0   r1   r2   ry   r   r   ri   rj   s   @r   rl   rl      sb        I I I I I*- - -L L L L L L Lr   rl   c                        e Zd Z fdZ xZS )GraftsInMemoryRepoTestsc                    t                                                       t                      x}| _        g | _        t                      }dddddd|j        d}| j                             |j        di |           | j                             |j        di |           | j                             |j        di |           d S )Nrn   ro   rp   r   )rq   rr   rs   rt   ru   rv   treerw   rx   )	rB   ry   r   rF   rV   r   rO   r   r   )r   rI   r   r   rD   s       r   ry   zGraftsInMemoryRepoTests.setUp   s    #%DJ
vv ?8 %  % G
 
 	
+!+GGGGHHH
+!+GGGGHHH
+!+GGGGHHHHHr   )r0   r1   r2   ry   ri   rj   s   @r   r   r      sA        I I I I I I I I Ir   r   )__doc__rz   r   r|   dulwich.testsr   errorsr   objectsr   repor   r   r	   r
   r   r   r5   r@   rl   r   r3   r   r   <module>r      s  (   				   " " " " " " * * * * * *       M M M M M M M M M M M M2 2 2
 
 
 
 
x 
 
 
>
 
 
 
 
8 
 
 
B'
 '
 '
 '
 '
 '
 '
 '
T%L %L %L %L %L. %L %L %LPI I I I I4h I I I I Ir   