
    $ge                        d dl mZ d dlmZ ddlmZmZmZ ddlm	Z	m
Z
mZ ddlmZ g dZ G d	 d
e          Z G d de	          Z G d de          Z ee          Zd  ee          D             Zd Zd Zd,dZd-dZej        d             Zej        d             Zej        d             Zej        d             Zej        d             Zej        d             Zej        d             Z ej        d             Z!ej        d             Z"ej        d             Z#ej        d              Z$ej        d!             Z%ej        d"             Z&ej        d#             Z'ej        d$             Z(ej        d%             Z)ej        d&             Z*ej        d'             Z+ej        d(             Z,ej        d)             Z-ej        d*             Z.d+S ).    )mark)base64   )
ObjectTypeSchemaString   )
ConnectionConnectionFieldPageInfo)Node)ABCDEc                   <    e Zd Z G d d          Z e            ZdS )Letterc                       e Zd ZefZdS )Letter.MetaN)__name__
__module____qualname__r   
interfaces     j/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/graphene/relay/tests/test_connection_query.pyMetar      s        W


r   r   N)r   r   r   r   r   letterr   r   r   r   r      sC                VXXFFFr   r   c                   (    e Zd Z G d d          ZdS )LetterConnectionc                       e Zd ZeZdS )LetterConnection.MetaN)r   r   r   r   noder   r   r   r   r#      s        r   r   N)r   r   r   r   r   r   r   r!   r!      s<                 r   r!   c                       e Zd Z ee          Z ee          Z ee          Z ej	                    Z
d Zd Zd ZdS )Queryc                 N    t          t                                                    S Nlistlettersvaluesselfinfoargss      r   resolve_letterszQuery.resolve_letters   s    GNN$$%%%r   c                 R   K   t          t                                                    S r(   r)   r-   s      r   resolve_async_letterszQuery.resolve_async_letters"   s      GNN$$%%%r   c           	          t          t          dd          t                               t          dd          d          g	          S )
NTF)has_next_pagehas_previous_pager   r   idr   a-cursorr$   cursor)	page_infoedges)r!   r   Edger   r-   s      r   resolve_connection_lettersz Query.resolve_connection_letters%   sQ    TUKKK %%6Qs+C+C+CJ%WW
 
 
 	
r   N)r   r   r   r   r!   r+   connection_lettersasync_lettersr   Fieldr$   r1   r3   r?   r   r   r   r&   r&      s        o.//G()9::#O$455M4:<<D& & && & &
 
 
 
 
r   r&   c                 8    i | ]\  }}|t          ||           S )r7   )r   ).0ir   s      r   
<dictcomp>rF   0   s+    
X
X
X91f66Qv...
X
X
Xr   c                 .    d d | D             D             S )Nc                 |    g | ]9}t          d |j        z            |j        dt          d|j        z            d:S )z	Letter:%sr7   arrayconnection:%sr:   )r   r8   r   )rD   r   s     r   
<listcomp>zedges.<locals>.<listcomp>4   s`       
  "+	"9::fmTT1FI=>>	
 	
  r   c                 (    g | ]}t           |         S r   )r+   )rD   rE   s     r   rJ   zedges.<locals>.<listcomp>9   s    <<<awqz<<<r   r   )selected_letterss    r   r=   r=   3   s4     
 =<+;<<<   r   c                 J    t           |          }t          d|j        z            S )NrI   )r+   r   r8   )ltrr   s     r   
cursor_forrO   =   s!    S\F&2333r    c                 `   K   | rd| z   dz   } t                               d| z             d {V S )N()aZ  
    {
        letters%s {
            edges {
                node {
                    id
                    letter
                }
                cursor
            }
            pageInfo {
                hasPreviousPage
                hasNextPage
                startCursor
                endCursor
            }
        }
    }
    )schemaexecute_async)r0   s    r   executerV   B   sa        TzC%%	& '	        r   Fc                    K   t          |            d {V }t          |          }|||r|d         d         nd |r|d         d         nd d}|j        rJ |j        d||dik    sJ d S )Nr;   r   )hasPreviousPagehasNextPage	endCursorstartCursorr+   r=   pageInfo)rV   r=   errorsdata)r0   r+   r6   r5   resultexpected_edgesexpected_page_infos          r   checkrd   ]   s      4==      F7^^N,$5CM^B'116DN~a(22$	  };^9KLL      r   c                  6   K   t          dd           d {V  d S )NrP   ABCDErd   r   r   r   )test_returns_all_elements_without_filtersrh   m   s.      
G

r   c                  :   K   t          ddd           d {V  d S )Nzfirst: 2ABTr5   rg   r   r   r   test_respects_a_smaller_firstrl   r   s3      

D
5
5
5555555555r   c                  6   K   t          dd           d {V  d S )Nz	first: 10rf   rg   r   r   r   #test_respects_an_overly_large_firstrn   w   s.      
W
%
%%%%%%%%%%r   c                  :   K   t          ddd           d {V  d S )Nzlast: 2DETr6   rg   r   r   r   test_respects_a_smaller_lastrr   |   s3      
	44
8
8
8888888888r   c                  6   K   t          dd           d {V  d S )Nzlast: 10rf   rg   r   r   r   "test_respects_an_overly_large_lastrt      s.      

G
$
$$$$$$$$$$r   c                  \   K   t          dt          d           ddd           d {V  d S )Nfirst: 2, after: "r   "CDTrk   rd   rO   r   r   r   test_respects_first_and_afterrz      sE      
7Z__777T
R
R
RRRRRRRRRRr   c                  X   K   t          dt          d           dd           d {V  d S )Nzfirst: 10, after: "r   rw   CDEry   r   r   r   -test_respects_first_and_after_with_long_firstr}      @      
8joo888%
@
@@@@@@@@@@r   c                  \   K   t          dt          d           ddd           d {V  d S )Nzlast: 2, before: "r   rw   BCTrq   ry   r   r   r   test_respects_last_and_beforer      sF      
7Z__777QU
V
V
VVVVVVVVVVr   c                  X   K   t          dt          d           dd           d {V  d S )Nzlast: 10, before: "r   rw   ABCry   r   r   r   ,test_respects_last_and_before_with_long_lastr      r~   r   c                  |   K   t          dt          d           dt          d           ddd           d {V  d S )	Nrv   r   ", before: "r   rw   r   Trk   ry   r   r   r   0test_respects_first_and_after_and_before_too_fewr      sm      
LZ__LL*S//LLL           r   c                  x   K   t          dt          d           dt          d           dd           d {V  d S )Nzfirst: 4, after: "r   r   r   rw   BCDry   r   r   r   1test_respects_first_and_after_and_before_too_manyr      d      
LZ__LL*S//LLLe          r   c                  x   K   t          dt          d           dt          d           dd           d {V  d S )Nzfirst: 3, after: "r   r   r   rw   r   ry   r   r   r   6test_respects_first_and_after_and_before_exactly_rightr      r   r   c                  |   K   t          dt          d           dt          d           ddd           d {V  d S )	Nzlast: 2, after: "r   r   r   rw   rx   Trq   ry   r   r   r   /test_respects_last_and_after_and_before_too_fewr      sm      
KJsOOKKCKKK           r   c                  x   K   t          dt          d           dt          d           dd           d {V  d S )Nzlast: 4, after: "r   r   r   rw   r   ry   r   r   r   0test_respects_last_and_after_and_before_too_manyr      d      
KJsOOKKCKKKU          r   c                  x   K   t          dt          d           dt          d           dd           d {V  d S )Nzlast: 3, after: "r   r   r   rw   r   ry   r   r   r   5test_respects_last_and_after_and_before_exactly_rightr      r   r   c                  :   K   t          ddd           d {V  d S )Nzfirst: 0rP   Trk   rg   r   r   r   &test_returns_no_elements_if_first_is_0r      s3      

Bd
3
3
3333333333r   c                  6   K   t          dd           d {V  d S )Nz"before: "invalid" after: "invalid"rf   rg   r   r   r   0test_returns_all_elements_if_cursors_are_invalidr      s/      
4g
>
>>>>>>>>>>r   c            	         K   t          dt          ddz             dt          ddz             dd           d {V  d S )N	before: "rI      
" after: "rX   rw   rf   rd   r   r   r   r   7test_returns_all_elements_if_cursors_are_on_the_outsider      sv      
dF/!344ddG[^`G`@a@addd          r   c            	         K   t          dt          ddz             dt          ddz             dd           d {V  d S )Nr   rI   r	   r      rw   rP   r   r   r   r   )test_returns_no_elements_if_cursors_crossr      sv      
cF/!344ccG[^_G_@`@`ccc
          r   c                     K   t                               d           d {V } | j        rJ | j        ddddddgdd	d
dik    sJ d S )Na,  
    {
        connectionLetters {
            edges {
                node {
                    id
                    letter
                }
                cursor
            }
            pageInfo {
                hasPreviousPage
                hasNextPage
            }
        }
    }
    connectionLettersTGV0dGVyOjA=r   r7   r9   r:   FTrY   rZ   r]   rT   rU   r_   r`   ra   s    r   test_connection_type_nodesr      s      ''	       F( }; .#>>*UU -2$GG	
 
      r   c                     K   t                               d           d {V } | j        rJ | j        dddddigddd	d
ik    sJ d S )Na  
    {
        asyncLetters(first:1) {
            edges {
                node {
                    id
                    letter
                }
            }
            pageInfo {
                hasPreviousPage
                hasNextPage
            }
        }
    }
    asyncLettersr$   r   r   r7   FTr   r]   r   r   s    r   test_connection_asyncr     s      ''	       F& };nDDEF,1$GG
 
      r   N)rP   )FF)/pytestr   graphql_relay.utilsr   typesr   r   r   
connectionr
   r   r   r$   r   letter_charsr   r!   r&   rT   	enumerater+   r=   rO   rV   rd   asynciorh   rl   rn   rr   rt   rz   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s         & & & & & & / / / / / / / / / / > > > > > > > > > >      (((    Z       z   

 
 
 
 
J 
 
 
, 

X
X		,@W@W
X
X
X  4 4 4
   6        6 6 6 & & & 9 9 9 % % % S S S A A A W W W A A A                   4 4 4 ? ? ?         @     r   