
    fS                         d Z ddlZ G d dej                        Z G d de      Z G d dee      Z G d	 d
ee      Zd Z G d dej                        Z	y)zField Properties tests
    Nc                       e Zd ZddZy)_BaseNc                     ddl m} |	 |d      }| | j                         |      S  | j                         ||      S )Nr   Texttesting__name__)zope.schemar   _getTargetClass)selffieldnamer   s       |/var/dept/share/cheung/public_html/OutSchool/python/env/lib/python3.12/site-packages/zope/schema/tests/test_fieldproperty.py_makeOnez_Base._makeOne   sG    $=),E<)4'')%00%t##%eT22    )NN)r
   
__module____qualname__r    r   r   r   r      s    3r   r   c                       e Zd Zd Zd Zd Zy)_Integrationc                 L     t                G  fddt              } |       S )Nc                       e Zd ZW j                  W  d         ZW j                  W  d         ZW j                  W  d         ZW j                  W  d         Zy)3_Integration._makeImplementer.<locals>._ImplementertitleweightcodedateN)r
   r   r   r   r   r   r   r   )schemar   s   r   _Implementerr   $   sL    MM&/2E]]6(#34F==0D==0Dr   r    )
_getSchemaobject)r   r    r   s   ` @r   _makeImplementerz_Integration._makeImplementer!   s     	16 	1 ~r   c                    ddl m} | j                         }| j                  |j                  d       | j                  |j
                  d        | j                  |j                  d       | j                  |t        |dd       | j                  |t        |dd       | j                  |t        |dd       | j                  |t        |dd	       | j                  |t        |d
d       | j                  |t        |d
d       | j                  |t        |d
d       d|_        d|_        d|_        | j                  |j                  d       | j                  |j
                  d       | j                  |j                  d       y )Nr   )ValidationErrorsay something   xxxxxxr   s   foor   g         r   s   xxxxxxxxxxz	c is goodg      $@s   abcdef
   )	zope.schema.interfacesr%   r#   assertEqualr   r   r   assertRaisessetattr)r   r%   cs      r   
test_basicz_Integration.test_basic,   s;   :!!#"234(+/7AwG/7AxH/7AxF/7AxC/7AvrB/7AvwG/7AvyI,/2&+r   c                 l    | j                         }d|_        | j                  t        t        |dd       y )N        r   g      ?)r#   r   r.   
ValueErrorr/   )r   r0   s     r   test_readonlyz_Integration.test_readonlyC   s-    !!#*gq&#>r   N)r
   r   r   r#   r1   r5   r   r   r   r   r      s    	,.?r   r   c                   r    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 Zd Zd Zd Zd Zd Zy)FieldPropertyTestsc                     ddl m} |S )Nr   FieldProperty)zope.schema.fieldpropertyr:   )r   r:   s     r   r   z"FieldPropertyTests._getTargetClassM   s    ;r   c                 ^   ddl m}  |d      }| j                         j                  }| j	                  |      }| j                  t        |d|z        |u        | j                  t        |d|z        d       | j                  |j                  d       | j                  |j                  |j                         | j                  |j                  |j                         | j                  |j                  |j                         | j                  |j                  |j                         y )Nr   r   r   r	   
_%s__field	_%s__namer   r   r   r
   r   
assertTruegetattrr-   descriptiondefaultreadonlyrequiredr   r   r   cnameprops        r   test_ctor_defaultsz%FieldPropertyTests.test_ctor_defaultsQ   s    $i($$&//}}U#lU&:;uDE{U':;YG	2))5+<+<=u}}577r   c                 2   ddl m}  |ddddd      }| j                         j                  }| j	                  |d	      }| j                  t        |d
|z        |u        | j                  t        |d|z        d       | j                  |j                  |j                         | j                  |j                  |j                         | j                  |j                  |j                         | j                  |j                  |j                         y )Nr   r   r   DESCRIPTIONDEFAULTTr
   rB   rC   rD   rE   overrider   r=   r>   r?   rF   s        r   test_ctor_explicitz%FieldPropertyTests.test_ctor_explicit^   s    $&
 $$&//}}U}4lU&:;uDE{U':;ZH))5+<+<=u}}577r   c                    ddl m}  |ddddd      }| j                  |       G fd	d
t              } |       }| j	                  j                  |d      d       d|_        | j	                  j                  |d      d       y )Nr   r   r   rK   rL   TrM   r   c                       e Zd ZW  Zy)=FieldPropertyTests.test_query_value_with_default.<locals>.FooNr
   r   r   r   rH   s   r   FoorT   ~       Gr   rW   testNO)r   r   r   r"   r-   
queryValuer   r   r   r   rW   foorH   s        @r   test_query_value_with_defaultz0FieldPropertyTests.test_query_value_with_defaultq   s    $&
 }}5})	& 	ef5zBf5u=r   c                     ddl m}  |dddd      }| j                  |       G fdd	t              } |       }| j	                  j                  |d
      d        y )Nr   r   r   rK   T)r
   rB   rD   rE   rR   c                       e Zd ZW  Zy)@FieldPropertyTests.test_query_value_without_default.<locals>.FooNrU   rV   s   r   rW   ra      rX   r   rW   rY   )r   r   r   r"   r-   r[   r\   s        @r    test_query_value_without_defaultz3FieldPropertyTests.test_query_value_without_default   s^    $&	
 }}5})	& 	e 	f5t<r   c                     | j                          G fddt              }| j                  |j                  u        y )Nc                       e Zd ZW  Zy)7FieldPropertyTests.test___get___from_class.<locals>.FooNrU   rV   s   r   rW   re      rX   r   rW   r   r"   r@   r   r   rW   rH   s     @r   test___get___from_classz*FieldPropertyTests.test___get___from_class   1    }}	& 	 	t+,r   c                      G d dt               }| j                   |       d       G fddt               } |       }| j                  t        t        |d       y )Nc                       e Zd Zd Zy)TFieldPropertyTests.test___get___from_instance_pseudo_field_wo_default.<locals>._Fauxc                     | S Nr   r   others     r   bindzYFieldPropertyTests.test___get___from_instance_pseudo_field_wo_default.<locals>._Faux.bind       r   N)r
   r   r   rq   r   r   r   _Fauxrl      s    r   rs   nonesuchc                       e Zd ZW  Zy)RFieldPropertyTests.test___get___from_instance_pseudo_field_wo_default.<locals>.FooNrU   rV   s   r   rW   rv      rX   r   rW   r   r"   r   r.   AttributeErrorrA   r   rs   rW   r]   rH   s       @r   2test___get___from_instance_pseudo_field_wo_defaultzEFieldPropertyTests.test___get___from_instance_pseudo_field_wo_default   sL    	F 	 }}UWj1	& 	 e.'3	Br   c                     | j                          G fddt              } |       }| j                  |j                  d        y )Nc                       e Zd ZW  Zy)RFieldPropertyTests.test___get___from_instance_miss_uses_field_default.<locals>.FooNrU   rV   s   r   rW   r}      rX   r   rW   r   r"   r-   r   r   rW   r]   rH   s      @r   2test___get___from_instance_miss_uses_field_defaultzEFieldPropertyTests.test___get___from_instance_miss_uses_field_default   7    }}	& 	 ed+r   c                     | j                  d       G fddt              } |       }d|_        | j                  |j                  d       y )Nrp   rO   c                       e Zd ZW  Zy)>FieldPropertyTests.test___get___from_instance_hit.<locals>.FooNrU   rV   s   r   rW   r      rX   r   rW   123)r   r"   rp   r-   r   r   s      @r   test___get___from_instance_hitz1FieldPropertyTests.test___get___from_instance_hit   sC    }}'}*	& 	 e	e,r   c                      G d dt               }| j                   |       d       G fddt               } |       }| j                  |j                  d       y )Nc                       e Zd ZdZd Zy)KFieldPropertyTests.test___get___from_instance_hit_after_bind.<locals>._Faux456c                     | S rn   r   ro   s     r   rq   zPFieldPropertyTests.test___get___from_instance_hit_after_bind.<locals>._Faux.bind   rr   r   N)r
   r   r   rC   rq   r   r   r   rs   r      s    Gr   rs   r   c                       e Zd ZW  Zy)IFieldPropertyTests.test___get___from_instance_hit_after_bind.<locals>.FooNrU   rV   s   r   rW   r      rX   r   rW   r   )r"   r   r-   r   ry   s       @r   )test___get___from_instance_hit_after_bindz<FieldPropertyTests.test___get___from_instance_hit_after_bind   sL    	F 	 }}UWi0	& 	 ee,r   c                      G d dt               } |       }g }|j                  |_        | j                  |d       G fddt               } |       }d|_        | j                  |j                  d   d       y )Nc                       e Zd ZdZdZd Zy);FieldPropertyTests.test___set___not_readonly.<locals>._FauxFr   c                     | S rn   r   ro   s     r   rq   z@FieldPropertyTests.test___set___not_readonly.<locals>._Faux.bind   rr   r   Nr
   r   r   rD   rC   rq   r   r   r   rs   r      s    HGr   rs   r   c                       e Zd ZW  Zy)9FieldPropertyTests.test___set___not_readonly.<locals>.FooNrU   rV   s   r   rW   r      rX   r   rW   r   r"   appendvalidater   r   r-   __dict__r   rs   faux
_validatedrW   r]   rH   s         @r   test___set___not_readonlyz,FieldPropertyTests.test___set___not_readonly   so    	F 	 w
"))}}T9-	& 	 ei0%8r   c                     G d dt               } |       }g }|j                  |_        | j                  |d       G fddt               } |       }d|_        | j                  |j                  d   d       | j                  |dg       y )Nc                       e Zd ZdZdZd Zy)IFieldPropertyTests.test___set___w_readonly_not_already_set.<locals>._FauxTr   c                     | S rn   r   ro   s     r   rq   zNFieldPropertyTests.test___set___w_readonly_not_already_set.<locals>._Faux.bind   rr   r   Nr   r   r   r   rs   r          HGr   rs   r   c                       e Zd ZW  Zy)GFieldPropertyTests.test___set___w_readonly_not_already_set.<locals>.FooNrU   rV   s   r   rW   r      rX   r   rW   r   r   r   s         @r   'test___set___w_readonly_not_already_setz:FieldPropertyTests.test___set___w_readonly_not_already_set   s    	F 	 w
"))}}T9-	& 	 ei0%8eW-r   c                 *    G d dt               } |       }g }|j                  |_        | j                  |d       G fddt               } |       }d|j                  d<   | j                  t        t        |dd       | j                  |dg       y )Nc                       e Zd ZdZdZd Zy)IFieldPropertyTests.test___set___w_readonly_and_already_set.<locals>._FauxTr   c                     | S rn   r   ro   s     r   rq   zNFieldPropertyTests.test___set___w_readonly_and_already_set.<locals>._Faux.bind   rr   r   Nr   r   r   r   rs   r      r   r   rs   r   c                       e Zd ZW  Zy)GFieldPropertyTests.test___set___w_readonly_and_already_set.<locals>.FooNrU   rV   s   r   rW   r     rX   r   rW   789r   )	r"   r   r   r   r   r.   r4   r/   r-   r   s         @r   'test___set___w_readonly_and_already_setz:FieldPropertyTests.test___set___w_readonly_and_already_set   s    	F 	 w
"))}}T9-	& 	 e"'Y*gsIuEeW-r   c                 F   ddl m} ddlm} ddlm} ddlm} ddlm	} g }|j                  |j                         | j                  |g         |ddd	d
d
      }| j                  t        |      d       |d   }| j                  t        ||             | j                   |||             | j                  |j                  |       | j                  |j                   d       | j                  |j"                  d       | j                  |D 	cg c]  }	|	j$                  j&                   c}	g d       | j                  |j(                  |       t               }
|
|_        | j                  |j(                  |
       | j                  |j                  |
       y c c}	w )Nr   subscribersverifyObjectr   FieldUpdatedEventIFieldUpdatedEventr   rK   rL   TrM      
min_length
max_lengthr   rB   rE   rD   )
zope.eventr   zope.interface.verifyr   r   r   r;   r   r,   r   r   r-   lenr@   
isinstancer"   	old_value	new_valuer   r
   inst)r   r   r   r   r   r   logr   eventevmarkers              r   test_field_eventz#FieldPropertyTests.test_field_event  sP   *6$?=3::&b!&
 	S1%A
5*;<=%7?@u-!,!,),-2RXX-	
 	U+
V,v. .s   Fc                 T   ddl m} ddlm} ddlm} ddlm} ddlm	}  |ddd	d
      }| j                  |       G fddt              } |       }g }	|j                  |	j                         d|_        d|_        | j                  t        |	      d       |	d   }
| j!                  t#        |
|             | j!                   |||
             | j                  |
j                  |       | j                  |
j$                  |       | j                  |
j&                  d       | j                  |
j(                  d       | j                  |
j*                  |       t               }||
_        | j                  |
j*                  |       | j                  |
j                  |       y )Nr   r   r   r   r   r   r   rK   rL   Tr
   rB   rC   rE   rR   c                       e Zd ZW  Zy)7FieldPropertyTests.test_field_event_update.<locals>.FooNrU   rV   s   r   rW   r   >  rX   r   rW   Barr(      )r   r   r   r   r   r   r;   r   r,   r   r   r"   r   r   r-   r   r@   r   r   r   r   r   )r   r   r   r   r   r   r   rW   r]   r   r   r   rH   s               @r   test_field_event_updatez*FieldPropertyTests.test_field_event_update/  sQ   *6$?=&	
 }}5})	& 	e3::&S1%A
5*;<=%7?@s+e,&1&1S)
V,v.r   c                 X    ddl m}  |d      }| j                  |j                         y Nr   )Boolr   r	   )r   r   r@   rE   r   r   r   s      r   test_field_Bool_is_requiredz.FieldPropertyTests.test_field_Bool_is_requiredU  s    $i('r   c                 X    ddl m}  |d      }| j                  |j                         y r   )r   r   assertIsNonerC   r   s      r   test_field_Bool_default_is_Nonez2FieldPropertyTests.test_field_Bool_default_is_None[  s!    $i(%--(r   N)r
   r   r   r   rI   rP   r^   rb   rh   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r7   r7   K   sZ    88&>(=&-
C,--9(.*.*!/F$/L()r   r7   c                   r    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 Zd Zd Zd Zd Zd Zy)$FieldPropertyStoredThroughFieldTestsc                     ddl m} |S )Nr   )FieldPropertyStoredThroughField)r;   r   )r   r   s     r   r   z4FieldPropertyStoredThroughFieldTests._getTargetClassd  s    M..r   c                    ddl m}  |d      }| j                         j                  }| j	                  |      }| j                  t        |j                  |j                               | j                  |j                  |u        | j                  |j                  j                  d       | j                  |j                  d       | j                  t        |d|z        d       | j                  |j                  |j                         | j                  |j                  |j                         | j                  |j                  |j                         | j                  |j                  |j                         y )Nr   r   r   r	   __st_testing_str>   r   r   r   r
   r   r@   r   r   	__class__assertFalser-   rA   rB   rC   rD   rE   rF   s        r   rI   z7FieldPropertyStoredThroughFieldTests.test_ctor_defaultsh  s   $i($$&//}}U#
4::u?@u,-,,.?@(9:{U':;YG))5+<+<=u}}577r   c                    ddl m}  |ddddd      }| j                         j                  }| j	                  |d	      }| j                  t        |j                  |j                               | j                  |j                  |u        | j                  |j                  j                  d
       | j                  |j                  d
       | j                  t        |d|z        d       | j                  |j                  |j                         | j                  |j                  |j                         | j                  |j                  |j                         | j                  |j                  |j                         y )Nr   r   r   rK   rL   TrM   rN   rO   r   r>   r   rF   s        r   rP   z7FieldPropertyStoredThroughFieldTests.test_ctor_explicitw  s(   $&
 $$&//}}U}4
4::u?@u,-,,.?@(9:{U':;ZH))5+<+<=u}}577r   c                     ddl m}  G d dt              } |       }| j                         } |d      }|j	                  ||d       | j                  |j                  d       y )Nr   r   c                       e Zd Zy)?FieldPropertyStoredThroughFieldTests.test_setValue.<locals>.FooNr
   r   r   r   r   r   rW   r         r   rW   r   r	   r   )r   r   r"   r   setValuer-   r   )r   r   rW   r]   rH   r   s         r   test_setValuez2FieldPropertyStoredThroughFieldTests.test_setValue  sS    $	& 	 e}}i(c5%(e,r   c                     ddl m} ddlm}  G d dt              } |       }| j                         } |d      }|j                  ||      }| j                  ||u        y )Nr   r   )_markerc                       e Zd Zy)DFieldPropertyStoredThroughFieldTests.test_getValue_miss.<locals>.FooNr   r   r   r   rW   r     r   r   rW   r   r	   )r   r   r;   r   r"   r   getValuer@   )r   r   r   rW   r]   rH   r   values           r   test_getValue_missz7FieldPropertyStoredThroughFieldTests.test_getValue_miss  sS    $5	& 	 e}}i(c5)()r   c                     ddl m}  G d dt              } |       }d|_        | j	                         } |d      }|j                  ||      }| j                  |d       y )Nr   r   c                       e Zd Zy)CFieldPropertyStoredThroughFieldTests.test_getValue_hit.<locals>.FooNr   r   r   r   rW   r     r   r   rW   r   r   r	   )r   r   r"   r   r   r   r-   )r   r   rW   r]   rH   r   r   s          r   test_getValue_hitz6FieldPropertyStoredThroughFieldTests.test_getValue_hit  sV    $	& 	 e}}i(c5)&r   c                     ddl m}  G d dt              } |       }| j                         } |d      }t               }|j	                  |||      }| j                  ||u        y )Nr   r   c                       e Zd Zy)FFieldPropertyStoredThroughFieldTests.test_queryValue_miss.<locals>.FooNr   r   r   r   rW   r     r   r   rW   r   r	   )r   r   r"   r   r[   r@   r   r   rW   r]   rH   r   rC   r   s           r   test_queryValue_missz9FieldPropertyStoredThroughFieldTests.test_queryValue_miss  sY    $	& 	 e}}i((UG4()r   c                     ddl m}  G d dt              } |       }d|_        | j	                         } |d      }t               }|j                  |||      }| j                  |d       y )Nr   r   c                       e Zd Zy)EFieldPropertyStoredThroughFieldTests.test_queryValue_hit.<locals>.FooNr   r   r   r   rW   r     r   r   rW   r   r   r	   )r   r   r"   r   r   r[   r-   r   s           r   test_queryValue_hitz8FieldPropertyStoredThroughFieldTests.test_queryValue_hit  s_    $	& 	 e}}i((UG4&r   c                     | j                          G fddt              }| j                  |j                  u        y )Nc                       e Zd ZW  Zy)IFieldPropertyStoredThroughFieldTests.test___get___from_class.<locals>.FooNrU   rV   s   r   rW   r     rX   r   rW   rf   rg   s     @r   rh   z<FieldPropertyStoredThroughFieldTests.test___get___from_class  ri   r   c                      G d dt               }| j                   |       d       G fddt               } |       }| j                  t        t        |d       y )Nc                       e Zd ZdZ d Zd Zy)fFieldPropertyStoredThroughFieldTests.test___get___from_instance_pseudo_field_wo_default.<locals>._FauxFauxc                     | S rn   r   ro   s     r   rq   zkFieldPropertyStoredThroughFieldTests.test___get___from_instance_pseudo_field_wo_default.<locals>._Faux.bind  rr   r   c                     |S rn   r   r   r   rC   s      r   queryzlFieldPropertyStoredThroughFieldTests.test___get___from_instance_pseudo_field_wo_default.<locals>._Faux.query      r   N)r
   r   r   rq   r  r   r   r   rs   r     s    Hr   rs   rt   c                       e Zd ZW  Zy)dFieldPropertyStoredThroughFieldTests.test___get___from_instance_pseudo_field_wo_default.<locals>.FooNrU   rV   s   r   rW   r    rX   r   rW   r   rw   ry   s       @r   rz   zWFieldPropertyStoredThroughFieldTests.test___get___from_instance_pseudo_field_wo_default  sL    	F 	 }}UWj1	& 	 e.'3	Br   c                     | j                          G fddt              } |       }| j                  |j                  d        y )Nc                       e Zd ZW  Zy)dFieldPropertyStoredThroughFieldTests.test___get___from_instance_miss_uses_field_default.<locals>.FooNrU   rV   s   r   rW   r    rX   r   rW   r~   r   s      @r   r   zWFieldPropertyStoredThroughFieldTests.test___get___from_instance_miss_uses_field_default  r   r   c                     ddl m}  |d      }| j                  |d       G fddt              } |       }d	|j                  d
<   d|_        | j                  |j                  d	       y )Nr   r   r   r	   rp   rO   c                       e Zd ZW  Zy)PFieldPropertyStoredThroughFieldTests.test___get___from_instance_hit.<locals>.FooNrU   rV   s   r   rW   r    rX   r   rW   r   r   r   )r   r   r   r"   r   rp   r-   r   r\   s        @r   r   zCFieldPropertyStoredThroughFieldTests.test___get___from_instance_hit  sa    $i(}}U}1	& 	 e*/&'	e,r   c                     G d dt               } |       }g }|j                  |_        | j                  |d       G fddt               } |       }d|_        | j                  |j                  d   d       | j                  |dg       y )Nc                   *    e Zd ZdZ dZdZd Zd Zd Zy)MFieldPropertyStoredThroughFieldTests.test___set___not_readonly.<locals>._Fauxr  Fr   c                     |S rn   r   r  s      r   r  zSFieldPropertyStoredThroughFieldTests.test___set___not_readonly.<locals>._Faux.query  r  r   c                     | S rn   r   ro   s     r   rq   zRFieldPropertyStoredThroughFieldTests.test___set___not_readonly.<locals>._Faux.bind  rr   r   c                     t        |d|       y Nr   )r/   r   r   r   s      r   setzQFieldPropertyStoredThroughFieldTests.test___set___not_readonly.<locals>._Faux.set
  s    fe,r   N)r
   r   r   rD   rC   r  rq   r  r   r   r   rs   r    s     HHG-r   rs   r   c                       e Zd ZW  Zy)KFieldPropertyStoredThroughFieldTests.test___set___not_readonly.<locals>.FooNrU   rV   s   r   rW   r    rX   r   rW   r   r   r   r   s         @r   r   z>FieldPropertyStoredThroughFieldTests.test___set___not_readonly  s    	-F 	- w
"))}}T9-	& 	 ef-u5eW-r   c                     G d dt               } |       }g }|j                  |_        | j                  |d       G fddt               } |       }d|_        | j                  |j                  d   d       | j                  |dg       y )Nc                   *    e Zd ZdZ dZdZd Zd Zd Zy)[FieldPropertyStoredThroughFieldTests.test___set___w_readonly_not_already_set.<locals>._Fauxr  Tr   c                     | S rn   r   ro   s     r   rq   z`FieldPropertyStoredThroughFieldTests.test___set___w_readonly_not_already_set.<locals>._Faux.bind   rr   r   c                     |S rn   r   r  s      r   r  zaFieldPropertyStoredThroughFieldTests.test___set___w_readonly_not_already_set.<locals>._Faux.query#  r  r   c                 B    | j                   rt        t        |d|       y r  )rD   r4   r/   r  s      r   r  z_FieldPropertyStoredThroughFieldTests.test___set___w_readonly_not_already_set.<locals>._Faux.set&  s    ==$$fe,r   N)r
   r   r   rD   rC   rq   r  r  r   r   r   rs   r    s     HHG-r   rs   r   c                       e Zd ZW  Zy)YFieldPropertyStoredThroughFieldTests.test___set___w_readonly_not_already_set.<locals>.FooNrU   rV   s   r   rW   r!  0  rX   r   rW   r   r   r   r   s         @r   r   zLFieldPropertyStoredThroughFieldTests.test___set___w_readonly_not_already_set  s    	-F 	-  w
"))}}T9-	& 	 ef-u5eW-r   c                     G d dt               } |       }g }|j                  |_        | j                  |d       G fddt               } |       }d|j                  d<   | j                  t        t        |dd       y )Nc                   $    e Zd ZdZ dZdZd Zd Zy)[FieldPropertyStoredThroughFieldTests.test___set___w_readonly_and_already_set.<locals>._Fauxr  Tr   c                     | S rn   r   ro   s     r   rq   z`FieldPropertyStoredThroughFieldTests.test___set___w_readonly_and_already_set.<locals>._Faux.bind>  rr   r   c                      y)Nr   r   r  s      r   r  zaFieldPropertyStoredThroughFieldTests.test___set___w_readonly_and_already_set.<locals>._Faux.queryA  s    r   N)r
   r   r   rD   rC   rq   r  r   r   r   rs   r$  9  s    HHGr   rs   r   c                       e Zd ZW  Zy)YFieldPropertyStoredThroughFieldTests.test___set___w_readonly_and_already_set.<locals>.FooNrU   rV   s   r   rW   r(  I  rX   r   rW   r   r   )r"   r   r   r   r   r.   r4   r/   r   s         @r   r   zLFieldPropertyStoredThroughFieldTests.test___set___w_readonly_and_already_set8  ss    		F 		 w
"))}}T9-	& 	 e"'Y*gsIuEr   c                 B  	 ddl m} ddlm} ddlm}  |dddd	      }| j                  |
      	 G 	fddt              } |       }g }|j                  |j                         d|_	        d|_	        | j                  t        |      d       |d   }| j                  t        ||             | j                  |j                  |       | j                  |j                  |       | j                  |j                  d       | j                  |j                   d       y )Nr   r   r   r   r   rK   rL   Tr   rR   c                       e Zd ZW  Zy)IFieldPropertyStoredThroughFieldTests.test_field_event_update.<locals>.FooNrU   rV   s   r   rW   r+  ]  rX   r   rW   r   r(   r   )r   r   r   r   r;   r   r   r"   r   r   r-   r   r@   r   r   r   r   )
r   r   r   r   r   rW   r]   r   r   rH   s
            @r   r   z<FieldPropertyStoredThroughFieldTests.test_field_event_updateP  s    *$?&	
 }}5})	& 	e3::&S1%A
5*;<=s+e,&1&1r   c                 4   ddl m} ddlm} ddlm} g }|j                  |j                         | j                  |g         |ddddd	      }| j                  t        |      d
       | j                  |D cg c]  }|j                  j                   c}g d       |d   }| j                  t        ||             | j                  |j                  |       | j                  |j                  d       | j                  |j                  d       y c c}w )Nr   r   r   r   r   rK   rL   TrM   r   r   )r   r   r   r   r;   r   r   r-   r   r   r
   r@   r   r"   r   r   )r   r   r   r   r   r   r   r   s           r   r   z5FieldPropertyStoredThroughFieldTests.test_field_eventm  s     	+$?3::&b!&
 	S1%),-2RXX-	 A
5*;<=u-!,!, .s   9DN)r
   r   r   r   rI   rP   r   r   r   r   r   rh   rz   r   r   r   r   r   r   r   r   r   r   r   r   b  sY    /88,
-*'*'-C$,-.8.<F02:-r   r   c                  Z    ddl m}  ddlm ddlm ddlm  G fdd|       }|S )Nr   )	Interface)Bytes)Floatr   c                   f    e Zd Z W dd      Z W d      Z W  ddd      Z W d	d
      Zy)_getSchema.<locals>.SchemazShort summaryr&   )rB   rC   r3   )minr   r'   )r   r   rC   DateT)r   rD   N)r
   r   r   r   r   r   r   )r/  r0  r   s   r   Schemar2    s6    !1-/3aC7T2r   r5  )zope.interfacer.  r   r/  r0  r   )r.  r5  r/  r0  r   s     @@@r   r!   r!     s'    (!! 3 3 3 Mr   c                       e Zd ZdZd Zd Zy)CreateFieldPropertiesTestsz.Testing ..fieldproperty.createFieldProperties.c                 @   ddl m} ddl m t                G fddt              }| j                  t        |j                  |             | j                  t        |j                  |             | j                  |j                  j                  d   u        y )Nr   r9   createFieldPropertiesc                   "    e Zd Z W  W        y)OCreateFieldPropertiesTests.test_creates_fieldproperties_on_class.<locals>.DummyNr   )r;  r   s   r   Dummyr=    s    !&)r   r>  r   )
r;   r:   r;  r!   r"   r@   r   r   r   _FieldProperty__field)r   r:   r>  r;  r   s      @@r   %test_creates_fieldproperties_on_classz@CreateFieldPropertiesTests.test_creates_fieldproperties_on_class  sk    ;C	*F 	* 	
5;;>?
5::}=>

88F6NJKr   c                     ddl m  G fddt              }| j                  t	        |d             | j                  t	        |d             | j                  t	        |d             y )Nr   r:  c                   2    e Zd Z W   e       ddg       y)VCreateFieldPropertiesTests.test_fields_in_omit_are_not_created_on_class.<locals>.Dummyr   r   )omitN)r
   r   r   r!   r:  s   r   r>  rC    s    !*,ff5EFr   r>  r   r   r   )r;   r;  r"   r   hasattrr@   )r   r>  r;  s     @r   ,test_fields_in_omit_are_not_created_on_classzGCreateFieldPropertiesTests.test_fields_in_omit_are_not_created_on_class  sS    C	GF 	G 	/0/0w/0r   N)r
   r   r   __doc__r@  rF  r   r   r   r8  r8    s    8
L1r   r8  )
rG  unittestTestCaser   r"   r   r7   r   r!   r8  r   r   r   <module>rJ     sg    3H 3)?6 )?XT) T)nf-5, f-R	"1!2!2 1r   