
    i(                        d Z ddlmZmZmZmZ ddlZddlZddlmZmZm	Z	m
Z
 ddlmZ d Zd Zd Zej                            d	e          d
             Zi ej        dej        dej        dej        dej        dej        dej        dej        dej        dej        dej        dej        dej        dej         dej!        dej"        dZ#ej                            d e$e#%                                                    dej&        de'fd            Z(d Z)d Z*ej                            de	e
g          ej                            d  ed!d"d"          df ed!d"d"          df ed"d"          df ed"d"          dfg          d#                         Z+d$ Z,d% Z-d& Z.d' Z/d( Z0d) Z1ej                            d*g d+          d,             Z2d- Z3d. Z4d/ Z5dS )0zCheck some module consistency.    )datedatetimetime	timedeltaN)
Parametersprop	vDDDLists	vDDDTypes)PARAMETER_NAMESc                     | t           j        v sJ | t          j        v sJ t          t           | d          J t          t          | d          J dS )z2icalendar.prop should export all these properties.N)r   __all__	icalendargetattr)v_prop_names    l/var/www/prod/INCONGRUES/venv/lib/python3.11/site-packages/icalendar/tests/prop/test_common_functionality.pytest_all_propeties_are_exportedr      s_    $,&&&&)+++++4d++7779k400<<<<<    c                 \                                      }t          |t                    s
J d            t          |          dk    s
J d            t	           fd|D                       s
J d             j         j         j                                        d         v s
J d            dS )zCAll properties have a class method that returns a list of examples.zWe expect a list of examples.r   zWe have examples.c              3   8   K   | ]}t          |          V  d S )N)
isinstance).0examplev_props     r   	<genexpr>z>test_all_properties_have_an_examples_method.<locals>.<genexpr>   s-      CCwz'6**CCCCCCr   z$All examples should be of that type.ztype is in docstringN)examplesr   listlenall__name____doc__
splitlines)r   r   s   ` r   +test_all_properties_have_an_examples_methodr"      s      Hh%%FF'FFFFx==11CCCC(CCCCC  .   ?fo5@@BB1EEEE FEEEEr   c                 0    | t           j        j        v sJ dS )z6Check the union type captures all vProperty instances.Nr   	VPROPERTY__args__)r   s    r   .test_all_properties_are_part_of_the_union_typer'   !   s    T^,,,,,,,r   no_propc                 0    | t           j        j        vsJ dS )zCIf these are not properties rather parameters, do not include them.Nr$   )r(   s    r   @test_if_not_part_of_properties_they_are_not_included_in_the_typer*   &   s      $.1111111r   BOOLEANzCAL-ADDRESSTEXTDATE	DATE-TIMEDURATIONFLOATINTEGERPERIODRECURTIMEz
UTC-OFFSETURIBINARY)r   default_valuev_prop_exampler7   c                 :    | ` | j         |k    sJ d| j        vsJ dS )z*Check the default value of all properties.VALUEN)r:   params)r8   r7   s     r   test_get_default_valuer<   @   s8     	=0000.///////r   c                 R    d| _         | j         dk    sJ | j        j        dk    sJ dS )z!Test setting the VALUE parameter.zX-OTHER-VALUEN)r:   r;   valuer8   s    r   test_set_valuer@   H   s;    *N?2222 &/999999r   c                     d| _         | ` | j         dk    sJ |t          v r | j         t          |         k    sJ d            dS dS )z%The value is defaulting after delete.zX-VALUEzdeleted value defaultsN)r:   default_value_map)r8   r   s     r   test_delete_the_set_valuerC   O   sd    $N9,,,,"""#'8'@@@@$ A@@ #"@@r   r   )dtr>        c                 2     | |          j         |k    sJ dS )z7Check that the VALUE parameter is correctly determined.Nr:   )r   rD   r>   s      r   test_dt_valuerI   Z   s&     6"::u$$$$$$r   c                  :    t          g           j        dk    sJ dS )z,If the list is empty, we still need a value.r.   N)r	   r:    r   r   test_special_case_no_dtsrL   i   s"    R==+------r   c                      t          t          ddd          t          dd          fg          j        dk    sJ t	          t          ddd          t          dd          f          j        dk    sJ dS )z)Check PERIOD for vDDDLists and vDDDTypes.rE   rF   r2   N)r	   r   r   r:   r
   rK   r   r   special_case_periodrN   n   su    xa++Yq!__=>??EQQQQhtQ**IaOO<==CxOOOOOOr   c                  `    t                      } d| d<   |                                 i k    sJ dS )z.The VALUE parameter should not turn up if set.r.   r:   N)r   to_jcal)r;   s    r   -test_value_parameter_does_not_turn_up_in_jcalrQ   t   s5    \\F!F7O>>r!!!!!!r   c                 .    d| _         | j         dk    sJ dS z/The VALUE parameter should always be uppercase.unknownUNKNOWNNrH   r?   s    r   test_value_is_always_uppercaserV   {   s$    $N9,,,,,,r   c                  J    t                      } d| _        | j        dk    sJ dS rS   )r   r>   
parameterss    r   )test_setting_the_value_turns_it_uppercaserZ      s-    J Jy((((((r   c                      t          j        d           t          ddi          } | j        dk    sJ | d         dk    sJ dS )z-The default value should always be uppercase.z@TODO at a later stage when the __init__ function is implemented.r:   unknown1UNKNOWN1N)pytestskipr   r>   rX   s    r   &test_default_value_is_always_uppercaser`      sU    
KRSSSWj122Jz))))g*,,,,,,r   	attribute)r:   rP   to_icalc                 P    t          | |          sJ | j         d| d            dS )z;Check that common functionality is provided by all of them.z* is missing a function or property named "z".N)hasattrr   )r   ra   s     r   test_common_methodsre      sJ     69%%  ?SSiSSS    r   c                     |                                  D ]:}|t          j        j        v sJ d| d            || j        v sJ d| d            ;dS )zDCheck that all values types added are also part of the TypesFactory.The value type z is not part of VPROPERTY.z is not part of TypesFactory.N)valuesr   r%   r&   	all_types)types_factoryr>   s     r   (test_all_possible_value_types_are_listedrk      s    %%'' 
 
////?e??? 0// ////BeBBB 0///	
 
r   c                 4    | |j         v sJ d|  d            dS )z<Check that all vProperty types are part of the TypesFactory.rg   z' is not part of TypesFactory.all_types.N)ri   )r   rj   s     r   'test_all_value_types_are_in_the_factoryrm      s2    ],,,,I&III -,,,,r   c                 ^    |                      d          |                      d          u sJ dS )z)Check that the result is always the same.VCUSTOMN)get_component_class)component_factorys    r   )test_an_new_component_class_is_registeredrr      sG    00 		.	.y	9	9: : : : : :r   )6r    r   r   r   r   r^   r   r   r   r	   r
   icalendar.tests.datar   r   r"   r'   markparametrizer*   vBooleanvCalAddress	vCategoryvDate	vDatetime	vDurationvFloatvIntvPeriodvRecurvTextvTime
vUTCOffsetvUrivBinaryvGeorB   r   itemsr%   strr<   r@   rC   rI   rL   rN   rQ   rV   rZ   r`   re   rk   rm   rr   rK   r   r   <module>r      s   $ $ 4 4 4 4 4 4 4 4 4 4 4 4      < < < < < < < < < < < < 0 0 0 0 0 0= = =
 
 
- - -
 O442 2 542
M9m 	NF 	J	
 	NK 	NJ 	K 	Iy 	L( 	K 	J 	J 	O\ 	Iu 	L(  	Iw! ( 4dd;L;R;R;T;T6U6UVV04> 0# 0 0 0 WV0: : :
 
 
 Iy#9::	$1		{+	dAq		6"	aV	1a*%	 % %  ;:%
. . .
P P P" " "- - -) ) )- - - &E&E&EFF  GF
 
 
  : : : : :r   