
    d5!                     B   d Z ddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
mZmZmZ ddlmZ ddlmZ  G d	 d
e          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          ZdS )z Tests for revision spec parsing.    )TestCase   )Blob)parse_commitparse_commit_rangeparse_object	parse_ref
parse_refsparse_reftupleparse_reftuples
parse_tree)
MemoryRepo   )build_commit_graphc                       e Zd ZdZd Zd ZdS )ParseObjectTestszTest parse_object.c                 f    t                      }|                     t          t          |d           d S Nthisdoesnotexist)r   assertRaisesKeyErrorr   selfrs     a/home/feoh/.local/pipx/venvs/poetry/lib/python3.11/site-packages/dulwich/tests/test_objectspec.pytest_nonexistentz!ParseObjectTests.test_nonexistent'   ,    LL(L!5GHHHHH    c                     t                      }t          j        d          }|j                            |           |                     |t          ||j                             d S )Ns   Blah)r   r   from_stringobject_store
add_objectassertEqualr   id)r   r   bs      r   test_blob_by_shaz!ParseObjectTests.test_blob_by_sha+   sY    LLW%%	!!!$$$LAD1122222r   N)__name__
__module____qualname____doc__r   r&    r   r   r   r   $   s;        I I I3 3 3 3 3r   r   c                       e Zd ZdZd Zd ZdS )ParseCommitRangeTestszTest parse_commit_range.c                 f    t                      }|                     t          t          |d           d S r   )r   r   r   r   r   s     r   r   z&ParseCommitRangeTests.test_nonexistent5   s-    LL($6;MNNNNNr   c           	          t                      }t          |j        dgddgg dg          \  }}}|                     |gt	          t          ||j                                       d S Nr   r      r   r   )r   r   r!   r#   listr   r$   r   r   c1c2c3s        r   test_commit_by_shaz(ParseCommitRangeTests.test_commit_by_sha9   sf    LL'!q!fiii8PQQ
B"t$6q"%$@$@AABBBBBr   N)r'   r(   r)   r*   r   r8   r+   r   r   r-   r-   2   s@        ""O O OC C C C Cr   r-   c                   $    e Zd ZdZd Zd Zd ZdS )ParseCommitTestszTest parse_commit.c                 f    t                      }|                     t          t          |d           d S r   )r   r   r   r   r   s     r   r   z!ParseCommitTests.test_nonexistentB   r   r   c                     t                      }t          |j        dgg          \  }|                     |t	          ||j                             d S )Nr   r   r   r!   r#   r   r$   r   r   r5   s      r   r8   z#ParseCommitTests.test_commit_by_shaF   sJ    LL!!.A3%88\!RU3344444r   c           	          t                      }t          |j        dgg          \  }|                     |t	          ||j        d d                              d S )Nr   
   r=   r>   s      r   test_commit_by_short_shaz)ParseCommitTests.test_commit_by_short_shaK   sR    LL!!.A3%88\!RU3B3Z8899999r   N)r'   r(   r)   r*   r   r8   rA   r+   r   r   r:   r:   ?   sJ        I I I5 5 5
: : : : :r   r:   c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )ParseRefTestsc                 N    i }|                      t          t          |d           d S Ns   thisdoesnotexist)r   r   r	   r   s     r   r   zParseRefTests.test_nonexistentR   s(    (Iq2EFFFFFr   c                 `    ddddddd}|                      dt          |d                     d S )Nbla)   ambig1s   refs/ambig1s   refs/tags/ambig1s   refs/heads/ambig1s   refs/remotes/ambig1s   refs/remotes/ambig1/HEADrH   r#   r	   r   s     r   test_ambiguous_refz ParseRefTests.test_ambiguous_refV   sH    !!&"'$)).
 
 	Ia$;$;<<<<<r   c                 ^    dddddd}|                      dt          |d                     d S )NrG   )   refs/ambig2s   refs/tags/ambig2s   refs/heads/ambig2s   refs/remotes/ambig2s   refs/remotes/ambig2/HEADrL   s   ambig2rI   r   s     r   test_ambiguous_ref2z!ParseRefTests.test_ambiguous_ref2a   sE    !!&"'$)).
 
 	1i)@)@AAAAAr   c                 \    ddddd}|                      dt          |d                     d S )NrG   )   refs/tags/ambig3s   refs/heads/ambig3s   refs/remotes/ambig3s   refs/remotes/ambig3/HEADrO   s   ambig3rI   r   s     r   test_ambiguous_tagz ParseRefTests.test_ambiguous_tagk   sC    !&"'$)).	
 
 	,i9.E.EFFFFFr   c                 Z    dddd}|                      dt          |d                     d S )NrG   )   refs/heads/ambig4s   refs/remotes/ambig4s   refs/remotes/ambig4/HEADrR   s   ambig4rI   r   s     r   test_ambiguous_headz!ParseRefTests.test_ambiguous_headt   s@    "'$)).
 

 	-yI/F/FGGGGGr   c                 X    ddd}|                      dt          |d                     d S )NrG   )   refs/remotes/ambig5s   refs/remotes/ambig5/HEADrU   s   ambig5rI   r   s     r   test_ambiguous_remotez#ParseRefTests.test_ambiguous_remote|   s6    %*OO/1i1H1HIIIIIr   c                 V    ddi}|                      dt          |d                     d S )Ns   refs/remotes/ambig6/HEADrG   s   ambig6rI   r   s     r   test_ambiguous_remote_headz(ParseRefTests.test_ambiguous_remote_head   s3    (%04i96M6MNNNNNr   c                 V    ddi}|                      dt          |d                     d S N   refs/heads/foorG   rI   r   s     r   test_heads_fullzParseRefTests.test_heads_full   s4    &*Ia9J,K,KLLLLLr   c                 V    ddi}|                      dt          |d                     d S )Nr[   rG   s	   heads/foorI   r   s     r   test_heads_partialz ParseRefTests.test_heads_partial   s3    &*Ia,F,FGGGGGr   c                 V    ddi}|                      dt          |d                     d S )Ns   refs/tags/foorG   s   tags/foorI   r   s     r   test_tags_partialzParseRefTests.test_tags_partial   s3    u%)9Q+D+DEEEEEr   N)r'   r(   r)   r   rJ   rM   rP   rS   rV   rX   r\   r^   r`   r+   r   r   rC   rC   Q   s        G G G	= 	= 	=B B BG G GH H HJ J JO O OM M MH H HF F F F Fr   rC   c                        e Zd Zd Zd Zd ZdS )ParseRefsTestsc                 P    i }|                      t          t          |dg           d S rE   )r   r   r
   r   s     r   r   zParseRefsTests.test_nonexistent   s+    (J4G3HIIIIIr   c                 Z    ddi}|                      dgt          |dg                     d S )Nr[   rG      foor#   r
   r   s     r   	test_headzParseRefsTests.test_head   s8    &+,jVH.E.EFFFFFr   c                 X    ddi}|                      dgt          |d                     d S rZ   rf   r   s     r   	test_fullzParseRefsTests.test_full   s7    &+,j<M.N.NOOOOOr   Nr'   r(   r)   r   rg   ri   r+   r   r   rb   rb      sL        J J JG G GP P P P Pr   rb   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )ParseReftupleTestsc                 P    i }|                      t          t          ||d           d S rE   )r   r   r   r   s     r   r   z#ParseReftupleTests.test_nonexistent   s*    (NAq:MNNNNNr   c           	      8   ddi}|                      dt          ||d                     |                      dt          ||d                     |                      dt          |i d                     |                      dt          |i dd                     d S )Nr[   rG   r[   r[   Fre   r[   r[   Ts   +fooTr#   r   r   s     r   rg   zParseReftupleTests.test_head   s    &91a((	
 	
 	
 	81a))	
 	
 	
 	81b'**	
 	
 	
 	81b&$//	
 	
 	
 	
 	
r   c                 X    ddi}|                      dt          ||d                     d S )Nr[   rG   ro   rq   r   s     r   ri   zParseReftupleTests.test_full   sA    &91a!233	
 	
 	
 	
 	
r   c                 X    ddi}|                      dt          ||d                     d S )Nr[   rG   )Nr[   Fs   :refs/heads/foorq   r   s     r   test_no_left_refz#ParseReftupleTests.test_no_left_ref   A    &,1a!344	
 	
 	
 	
 	
r   c                 X    ddi}|                      dt          ||d                     d S )Nr[   rG   )r[   NFs   refs/heads/foo:rq   r   s     r   test_no_right_refz$ParseReftupleTests.test_no_right_ref   ru   r   c                 X    ddi}|                      dt          ||d                     d S )Nr[   rG   ro   foorq   r   s     r   test_default_with_stringz+ParseReftupleTests.test_default_with_string   s@    &91a''	
 	
 	
 	
 	
r   N)	r'   r(   r)   r   rg   ri   rt   rw   rz   r+   r   r   rl   rl      sq        O O O
 
 
&
 
 

 
 

 
 

 
 
 
 
r   rl   c                        e Zd Zd Zd Zd ZdS )ParseReftuplesTestsc                 R    i }|                      t          t          ||dg           d S rE   )r   r   r   r   s     r   r   z$ParseReftuplesTests.test_nonexistent   s-    (OQ<O;PQQQQQr   c                 \    ddi}|                      dgt          ||dg                     d S )Nr[   rG   ro   re   r#   r   r   s     r   rg   zParseReftuplesTests.test_head   sE    &:;Aq6(++	
 	
 	
 	
 	
r   c           	          ddi}|                      dgt          ||d                     ddi}|                      dgt          ||dd                     d S )Nr[   rG   ro   rp   Tr   r   s     r   ri   zParseReftuplesTests.test_full   s    &:;Aq"344	
 	
 	
 &9:Aq"3T::	
 	
 	
 	
 	
r   Nrj   r+   r   r   r|   r|      sD        R R R
 
 


 

 

 

 

r   r|   c                   $    e Zd ZdZd Zd Zd ZdS )ParseTreeTestszTest parse_tree.c                 f    t                      }|                     t          t          |d           d S r   )r   r   r   r   r   s     r   r   zParseTreeTests.test_nonexistent   s,    LL(J3EFFFFFr   c                 4   t                      }t          |j        dgddgg dg          \  }}}|                     ||j                 t          ||j                             |                     ||j                 t          ||j                             d S r0   )r   r   r!   r#   treer   r$   r4   s        r   test_from_commitzParseTreeTests.test_from_commit   s    LL'!q!fiii8PQQ
B27Z25%9%9:::27Z27%;%;<<<<<r   c                     t                      }t          |j        dgddgg dg          \  }}}|j        |j        d<   |                     ||j                 t          |d                     d S )Nr   r   r1   r[   re   )r   r   r!   r$   refsr#   r   r   r4   s        r   test_from_refzParseTreeTests.test_from_ref   sn    LL'!q!fiii8PQQ
B$&E !27Z6%:%:;;;;;r   N)r'   r(   r)   r*   r   r   r   r+   r   r   r   r      sJ        G G G= = =< < < < <r   r   N)r*   dulwich.testsr   objectsr   
objectspecr   r   r   r	   r
   r   r   r   repor   utilsr   r   r-   r:   rC   rb   rl   r|   r   r+   r   r   <module>r      s1  * ' &
 # " " " " "      7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7       % % % % % %3 3 3 3 3x 3 3 3
C 
C 
C 
C 
CH 
C 
C 
C: : : : :x : : :$=F =F =F =F =FH =F =F =F@P P P P PX P P P2
 2
 2
 2
 2
 2
 2
 2
j
 
 
 
 
( 
 
 
2< < < < <X < < < < <r   