
    $g'                     $   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 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  G d dej                  Zd Zd Zd Zd Z G d d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 Z(dS )     )forms)ValidationError)raises)Field
ObjectTypeSchemaString)DjangoObjectType)PetForm)Pet)PetMutation   )DjangoFormMutationDjangoModelFormMutationc                   8    e Zd Z ej                    Zd Zd ZdS )MyFormc                 J    | j         d         }|dk    rt          d          |S )NtextINVALID_INPUTInvalid input)cleaned_datar   )selfr   s     i/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/graphene_django/forms/tests/test_mutation.py
clean_textzMyForm.clean_text   s-     (?""!/222    c                     d S )N )r   s    r   savezMyForm.save   s    r   N)__name__
__module____qualname__r   	CharFieldr   r   r   r   r   r   r   r      sA        5?D      r   r   c                      t          t                    5 }  G d dt                    }d d d            n# 1 swxY w Y   | j        j        d         dk    sJ d S )Nc                       e Zd ZdS ))test_needs_form_class.<locals>.MyMutationN)r   r    r!   r   r   r   
MyMutationr%      s        Dr   r&   r   z-form_class is required for DjangoFormMutation)r   	Exceptionr   valueargs)excr&   s     r   test_needs_form_classr+      s    				 c	 	 	 	 	+ 	 	 	              
 9>! OOOOOOOs   599c                  L     G d dt                     } d| j        j        v sJ d S )Nc                   (    e Zd Z G d d          ZdS )*test_has_output_fields.<locals>.MyMutationc                       e Zd ZeZdS )/test_has_output_fields.<locals>.MyMutation.MetaNr   r    r!   r   
form_classr   r   r   Metar0   &           JJJr   r3   Nr   r    r!   r3   r   r   r   r&   r.   %   <        	  	  	  	  	  	  	  	  	  	 r   r&   errors)r   _metafieldsr&   s    r   test_has_output_fieldsr;   $   sL             '       z'.......r   c                  V     G d dt                     } d| j        j        j        v sJ d S )Nc                   (    e Zd Z G d d          ZdS ))test_has_input_fields.<locals>.MyMutationc                       e Zd ZeZdS ).test_has_input_fields.<locals>.MyMutation.MetaNr1   r   r   r   r3   r@   .   r4   r   r3   Nr5   r   r   r   r&   r>   -   r6   r   r&   r   )r   Inputr8   r9   r:   s    r   test_has_input_fieldsrB   ,   sO             '       Z%+2222222r   c                 8    G d dt                      G d dt                     G fddt                    } |j        d d           }d |j        D             h dk    sJ d	| _         |j        d d           }d
 |j        D             h dk    sJ d S )Nc                   0    e Zd Z ej        d          ZdS )4test_mutation_error_camelcased.<locals>.ExtraPetFormT)requiredN)r   r    r!   r   r"   
test_fieldr   r   r   ExtraPetFormrE   5   s"        $U_d333


r   rH   c                   (    e Zd Z G d d          ZdS )/test_mutation_error_camelcased.<locals>.PetTypec                       e Zd ZeZdZdS )4test_mutation_error_camelcased.<locals>.PetType.Meta__all__Nr   r    r!   r   modelr9   r   r   r   r3   rL   9           EFFFr   r3   Nr5   r   r   r   PetTyperJ   8   <        	 	 	 	 	 	 	 	 	 	r   rQ   c                   D    e Zd Z e          Z G  fdd          ZdS )3test_mutation_error_camelcased.<locals>.PetMutationc                       e Zd Z ZdS )8test_mutation_error_camelcased.<locals>.PetMutation.MetaN)r   r    r!   r2   )rH   s   r   r3   rV   @   s        %JJJr   r3   Nr   r    r!   r   petr3   )rH   rQ   s   r   r   rT   =   sT        eGnn	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&r   r   c                     h | ]	}|j         
S r   field.0fs     r   	<setcomp>z1test_mutation_error_camelcased.<locals>.<setcomp>D       +++AG+++r   >   agename	testFieldFc                     h | ]	}|j         
S r   rZ   r\   s     r   r_   z1test_mutation_error_camelcased.<locals>.<setcomp>G   r`   r   >   ra   rb   rG   )r   r
   r   mutate_and_get_payloadr7   CAMELCASE_ERRORS)graphene_settingsr   resultrH   rQ   s      @@r   test_mutation_error_camelcasedri   4   s   4 4 4 4 4w 4 4 4    "   
& & & & & & & &- & & & 0[/d;;F++V]+++/K/K/KKKKK).&/[/d;;F++V]+++/L/L/LLLLLLLr   c                   "    e Zd Z e            ZdS )	MockQueryN)r   r    r!   r	   ar   r   r   rk   rk   J   s        AAAr   rk   c                       G d dt                      G fddt                    } t          t          |           }|                    d          }|j        J |j        d         d         d	d
gdgk    sJ d S )Nc                   (    e Zd Z G d d          ZdS )*test_form_invalid_form.<locals>.MyMutationc                       e Zd ZeZdS )/test_form_invalid_form.<locals>.MyMutation.MetaNr1   r   r   r   r3   rq   P   r4   r   r3   Nr5   r   r   r   r&   ro   O   r6   r   r&   c                   8    e Zd Z                                 ZdS )(test_form_invalid_form.<locals>.MutationNr   r    r!   r   my_mutationr:   s   r   Mutationrs   S             &&((r   rv   querymutationz mutation MyMutation {
            myMutation(input: { text: "INVALID_INPUT" }) {
                errors {
                    field
                    messages
                }
                text
            }
        }
        
myMutationr7   r   r   r[   messagesr   r   r   rk   executer7   datarv   schemarh   r&   s      @r   test_form_invalid_formr   N   s             '      ) ) ) ) ) ) ): ) ) ) )h777F^^		 F =   ;|$X.&7883      r   c                  $    G d dt                      G fddt                    } t          t          |           }|                    d          }|j        J |j        d         d         g k    sJ |j        d         d	         d
k    sJ d S )Nc                   (    e Zd Z G d d          ZdS ))test_form_valid_input.<locals>.MyMutationc                       e Zd ZeZdS ).test_form_valid_input.<locals>.MyMutation.MetaNr1   r   r   r   r3   r   m   r4   r   r3   Nr5   r   r   r   r&   r   l   r6   r   r&   c                   8    e Zd Z                                 ZdS )'test_form_valid_input.<locals>.MutationNrt   r:   s   r   rv   r   p   rw   r   rv   rx   z mutation MyMutation {
            myMutation(input: { text: "VALID_INPUT" }) {
                errors {
                    field
                    messages
                }
                text
            }
        }
        r{   r7   r   VALID_INPUTr~   r   s      @r   test_form_valid_inputr   k   s             '      ) ) ) ) ) ) ): ) ) ) )h777F^^		 F =   ;|$X."4444;|$V,======r   c                      t           j        j        t          u sJ t           j        j        dk    sJ dt           j        j        v sJ d S )NrX   )r   r8   rO   r   return_field_namer9   r   r   r   test_default_meta_fieldsr      sM    "c)))).%7777K%,,,,,,,r   c                     t           j        j        t          u sJ t           j        j        dk    sJ dt           j        j        j        v sJ dt           j        j        j        v sJ dt           j        j        j        v sJ d S )NrX   rb   client_mutation_idid)r   r8   rO   r   r   rA   r9   r   r   r   test_default_input_meta_fieldsr      s    "c)))).%7777[&,33333;#4#:#AAAAA;$*1111111r   c                  N    G d dt                      G fddt                    } | j        j        t          u sJ | j        j        dk    sJ d| j        j        j        v sJ d| j        j        j        v sJ d| j        j        j        v sJ d	| j        j        j        vsJ d S )
Nc                   (    e Zd Z G d d          ZdS )6test_exclude_fields_input_meta_fields.<locals>.PetTypec                       e Zd ZeZdZdS );test_exclude_fields_input_meta_fields.<locals>.PetType.MetarM   NrN   r   r   r   r3   r      rP   r   r3   Nr5   r   r   r   rQ   r      rR   r   rQ   c                   @    e Zd Z e           Z G d d          ZdS ):test_exclude_fields_input_meta_fields.<locals>.PetMutationc                       e Zd ZeZdgZdS )?test_exclude_fields_input_meta_fields.<locals>.PetMutation.Metar   N)r   r    r!   r   r2   exclude_fieldsr   r   r   r3   r      s         J"VNNNr   r3   NrW   rQ   s   r   r   r      sJ        eGnn	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$r   r   rX   rb   ra   r   r   )r
   r   r8   rO   r   r   rA   r9   r   rQ   s    @r   %test_exclude_fields_input_meta_fieldsr      s       "   
$ $ $ $ $ $ $- $ $ $ "c)))).%7777[&,33333K%+22222;#4#:#AAAAA{(.5555555r   c                       G d dt                      G fddt                    } | j        j        t          u sJ | j        j        dk    sJ d| j        j        v sJ d S )Nc                   (    e Zd Z G d d          ZdS ).test_custom_return_field_name.<locals>.PetTypec                       e Zd ZeZdZdS )3test_custom_return_field_name.<locals>.PetType.MetarM   NrN   r   r   r   r3   r      rP   r   r3   Nr5   r   r   r   rQ   r      rR   r   rQ   c                   @    e Zd Z e           Z G d d          ZdS )2test_custom_return_field_name.<locals>.PetMutationc                       e Zd ZeZeZdZdS )7test_custom_return_field_name.<locals>.PetMutation.MetaanimalN)r   r    r!   r   r2   r   rO   r   r   r   r   r3   r      s          JE (r   r3   NrW   r   s   r   r   r      sJ        eGnn	) 	) 	) 	) 	) 	) 	) 	) 	) 	)r   r   r   )r
   r   r8   rO   r   r   r9   r   s    @r   test_custom_return_field_namer      s        "   
) ) ) ) ) ) )- ) ) ) "c)))).(::::{(///////r   c                      G d dt                     } t          t          |           }t          j                            dd          }|                    dd|j        i	          }|j        J |j	        d
         d         dddk    sJ t          j        
                                dk    sJ |                                 |j        dk    sJ d S )Nc                   ,    e Zd Z ej                    ZdS ):test_model_form_mutation_mutate_existing.<locals>.MutationNr   r    r!   r   r   pet_mutationr   r   r   rv   r              ({(**r   rv   rx   Axel
   rb   ra   z mutation PetMutation($pk: ID!) {
            petMutation(input: { id: $pk, name: "Mia", age: 10 }) {
                pet {
                    name
                    age
                }
            }
        }
        pk)variable_valuespetMutationrX   Mia   )r   r   rk   r   objectscreater   r   r7   r   countrefresh_from_dbrb   )rv   r   rX   rh   s       r   (test_model_form_mutation_mutate_existingr      s   + + + + +: + + + )h777F
+

&b

1
1C^^	 sv   F =   ;}%e,r0J0JJJJJ;!####8ur   c                      G d dt                     } t          t          |           }|                    d          }|j        J |j        d         d         ddd	k    sJ t          j                                        d
k    sJ t          j        	                                }|j
        dk    sJ |j        dk    sJ d S )Nc                   ,    e Zd Z ej                    ZdS )6test_model_form_mutation_creates_new.<locals>.MutationNr   r   r   r   rv   r      r   r   rv   rx   a.   mutation PetMutation {
            petMutation(input: { name: "Mia", age: 10 }) {
                pet {
                    name
                    age
                }
                errors {
                    field
                    messages
                }
            }
        }
        r   rX   r   r   r   r   r   r   rk   r   r7   r   r   r   r   getrb   ra   rv   r   rh   rX   s       r   $test_model_form_mutation_creates_newr      s    + + + + +: + + + )h777F^^	 F =   ;}%e,r0J0JJJJJ;!####
+//

C8u7b======r   c                  B    G d dt                     } t          t          |           }|                    d          }|j        J |j        d         d         J |j        d         d         dd	gd
gk    sJ t          j                                        dk    sJ d S )Nc                   ,    e Zd Z ej                    ZdS )8test_model_form_mutation_invalid_input.<locals>.MutationNr   r   r   r   rv   r      r   r   rv   rx   a.   mutation PetMutation {
            petMutation(input: { name: "Mia", age: 99 }) {
                pet {
                    name
                    age
                }
                errors {
                    field
                    messages
                }
            }
        }
        r   rX   r7   ra   Too oldr|   r   )	r   r   rk   r   r7   r   r   r   r   )rv   r   rh   s      r   &test_model_form_mutation_invalid_inputr      s    + + + + +: + + + )h777F^^	 F =   ;}%e,444;}%h/i[114     ;!######r   c                  J   t          j        d d           } t          j                                        dk    sJ d | j        D             }t          | j                  dk    sJ | j        d         j        dgk    sJ | j        d         j        dgk    sJ d|v sJ d|v sJ d S )Nr   c                     g | ]	}|j         
S r   rZ   )r]   es     r   
<listcomp>z@test_model_form_mutation_mutate_invalid_form.<locals>.<listcomp>  s    555!ag555r   r   zThis field is required.r   ra   rb   )r   re   r   r   r   r7   lenr}   )rh   fields_w_errors     r   ,test_model_form_mutation_mutate_invalid_formr     s    /d;;F ;!####55v}555Nv}""""=$)B(CCCCC=$)B(CCCCCN""""^######r   c                  ,    G d dt                     } t          t          |           }|                    d          }|j        J |j        d         d         ddd	k    sJ |j        d
         d         ddd	k    sJ t          j                                        dk    sJ t          j        	                                }|j
        dk    sJ |j        dk    sJ t          j                                        }|j
        dk    sJ |j        dk    sJ d S )Nc                   ,    e Zd Z ej                    ZdS )Btest_model_form_mutation_multiple_creation_valid.<locals>.MutationNr   r   r   r   rv   r   %  r   r   rv   rx   aW  
        mutation PetMutations {
            petMutation1: petMutation(input: { name: "Mia", age: 10 }) {
                pet {
                    name
                    age
                }
                errors {
                    field
                    messages
                }
            }
            petMutation2: petMutation(input: { name: "Enzo", age: 0 }) {
                pet {
                    name
                    age
                }
                errors {
                    field
                    messages
                }
            }
        }
        petMutation1rX   r   r   r   petMutation2Enzor   r   )r   r   rk   r   r7   r   r   r   r   firstrb   ra   last)rv   r   rh   pet1pet2s        r   0test_model_form_mutation_multiple_creation_validr   $  s?   + + + + +: + + + )h777F^^	 F4 =   ;~&u-%1K1KKKKK;~&u-&1K1KKKKK;!####;D98r>>>>;D98q======r   c                      G d dt                     } t          t          |           }|                    d          }|j        J |j        d         d         J |j        d         d         dd	gd
gk    sJ |j        d         d         dddk    sJ t          j                                        dk    sJ t          j        	                                }|j
        dk    sJ |j        dk    sJ d S )Nc                   ,    e Zd Z ej                    ZdS )Dtest_model_form_mutation_multiple_creation_invalid.<locals>.MutationNr   r   r   r   rv   r   T  r   r   rv   rx   aW  
        mutation PetMutations {
            petMutation1: petMutation(input: { name: "Mia", age: 99 }) {
                pet {
                    name
                    age
                }
                errors {
                    field
                    messages
                }
            }
            petMutation2: petMutation(input: { name: "Enzo", age: 0 }) {
                pet {
                    name
                    age
                }
                errors {
                    field
                    messages
                }
            }
        }
        r   rX   r7   ra   r   r|   r   r   r   r   r   r   r   s       r   2test_model_form_mutation_multiple_creation_invalidr   S  s2   + + + + +: + + + )h777F^^	 F4 =   ;~&u-555;~&x0i[115     ;~&u-&1K1KKKKK;!####
+//

C8v7a<<<<<<r   N))djangor   django.core.exceptionsr   pytestr   graphener   r   r   r	   graphene_djangor
   graphene_django.tests.formsr   graphene_django.tests.modelsr   graphene_django.tests.mutationsr   rz   r   r   Formr   r+   r;   rB   ri   rk   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s         2 2 2 2 2 2       6 6 6 6 6 6 6 6 6 6 6 6 , , , , , , / / / / / / , , , , , , 7 7 7 7 7 7 B B B B B B B B
 
 
 
 
UZ 
 
 
P P P/ / /3 3 3M M M,    
     :> > >8- - -2 2 26 6 6*0 0 0&  :  <$ $ $<$ $ $, , ,^- - - - -r   