a
    lc4                     @   s   d Z ddlZddlZddlmZmZmZmZmZm	Z	 G dd dejZ
G dd dejZG dd	 d	ejZd
 ZG dd dejZG dd dejZdS )z"
Test the trait-type ``UseEnum``.
    N)CaselessStrEnumEnum	FuzzyEnum	HasTraits
TraitErrorUseEnumc                   @   s   e Zd ZdZdZdZdZdS )Color            N)__name__
__module____qualname__redgreenblueyellow r   r   _/var/www/html/django/DPS/env/lib/python3.9/site-packages/traitlets/tests/test_traitlets_enum.pyr      s   r   c                   @   s   e Zd ZdZdZdS )
OtherColorr   r	   N)r   r   r   r   r   r   r   r   r   r      s   r   c                   @   s   e Zd ZdZdZdZdZdS )CSColorr	   r
   r   r   N)r   r   r   r   GreenZBLUEZYeLLoWr   r   r   r   r      s   r   zred Green  BLUE YeLLoWc                   @   s   e Zd ZG dd deZdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'S )(TestUseEnumc                   @   s   e Zd ZeeddZdS )zTestUseEnum.Example
Color enumhelpNr   r   r   r   r   colorr   r   r   r   Example,   s   r   c                 C   s$   |   }tj|_| |jtj d S N)r   r   r   r   assertEqualselfexampler   r   r   test_assign_enum_value/   s    z"TestUseEnum.test_assign_enum_valuec                 C   sV   dd t j D }|D ]8}| |t  |  }||_| |j| | |t  qd S )Nc                 S   s   g | ]}|qS r   r   ).0valuer   r   r   
<listcomp>6       z;TestUseEnum.test_assign_all_enum_values.<locals>.<listcomp>)r   __members__valuesassertIsInstancer   r   r!   )r#   Zenum_valuesr'   r$   r   r   r   test_assign_all_enum_values4   s    z'TestUseEnum.test_assign_all_enum_valuesc                 C   s>   |   }| t tj|_W d    n1 s00    Y  d S r    )r   assertRaisesr   r   r   r   r"   r   r   r   4test_assign_enum_value__with_other_enum_raises_error>   s    z@TestUseEnum.test_assign_enum_value__with_other_enum_raises_errorc                 C   s"   |   }d|_| |jtj d S )Nr   )r   r   r!   r   r   r"   r   r   r   test_assign_enum_name_1C   s    z#TestUseEnum.test_assign_enum_name_1c                 C   sf   dd t j D }|D ]H}| |t |  }t j|}||_| |j| | 	|jj
| qd S )Nc                 S   s   g | ]
}|j qS r   )namer&   Zenum_valr   r   r   r(   L   r)   z;TestUseEnum.test_assign_enum_value_name.<locals>.<listcomp>)r   r*   r+   r,   strr   getr   assertIsr!   r1   )r#   Z
enum_namesr'   r$   Z
enum_valuer   r   r   test_assign_enum_value_nameI   s    z'TestUseEnum.test_assign_enum_value_namec                 C   sD   g d}|D ]2}|   }||_| |jt | t|j| qd S )N)z	Color.redzColor.greenz
Color.bluezColor.yellow)r   r   r,   r   r!   r3   )r#   Zscoped_namesr'   r$   r   r   r   "test_assign_scoped_enum_value_nameU   s    z.TestUseEnum.test_assign_scoped_enum_value_namec              	   C   sN   g d}|D ]<}|   }| t ||_W d    q1 s>0    Y  qd S )N)ZUNKNOWN_COLORZREDr   blue2)r   r.   r   r   )r#   Zbad_enum_namesr'   r$   r   r   r   -test_assign_bad_enum_value_name__raises_error^   s
    z9TestUseEnum.test_assign_bad_enum_value_name__raises_errorc                 C   s,   |   }d|_tjj|_| |jtj d S )Nr	   )r   r   r   r   r'   r!   r"   r   r   r   test_assign_enum_value_number_1f   s    
z+TestUseEnum.test_assign_enum_value_number_1c                 C   sZ   dd t j D }|D ]<}| |t |  }||_| |jt  | |jj| qd S )Nc                 S   s   g | ]
}|j qS r   )r'   r2   r   r   r   r(   p   r)   z=TestUseEnum.test_assign_enum_value_number.<locals>.<listcomp>)	r   r*   r+   r,   intr   r   r!   r'   )r#   Zenum_numbersr'   r$   r   r   r   test_assign_enum_value_numberm   s    z)TestUseEnum.test_assign_enum_value_numberc              	   C   sr   g d}|D ]`}|  |t tt|d d u s4J |  }| t ||_W d    q1 sb0    Y  qd S )N)r      )	r,   r;   r   r   Zselect_by_numberr   r.   r   r   )r#   Zbad_numbersr'   r$   r   r   r   /test_assign_bad_enum_value_number__raises_errorx   s    z;TestUseEnum.test_assign_bad_enum_value_number__raises_errorc                 C   s*   G dd dt }| }| |jtj d S )Nc                   @   s   e Zd ZeeZdS )z=TestUseEnum.test_ctor_without_default_value.<locals>.Example2Nr   r   r   r   r   Example2   s   r@   )r   r!   r   r   r   r#   r@   r$   r   r   r   test_ctor_without_default_value   s    z+TestUseEnum.test_ctor_without_default_valuec                 C   s*   G dd dt }| }| |jtj d S )Nc                   @   s   e Zd ZeeejdZdS )zHTestUseEnum.test_ctor_with_default_value_as_enum_value.<locals>.Example2default_valueN)r   r   r   r   r   r   r   r   r   r   r   r@      s   r@   )r   r!   r   r   r   rA   r   r   r   *test_ctor_with_default_value_as_enum_value   s    z6TestUseEnum.test_ctor_with_default_value_as_enum_valuec                 C   s:   G dd dt }| }| |jtj | |jtj d S )Nc                   @   s&   e Zd ZeedddZeeddZdS )zRTestUseEnum.test_ctor_with_default_value_none_and_not_allow_none.<locals>.Example2NFrD   
allow_nonerC   r   r   r   r   r   color1color2r   r   r   r   r@      s   r@   )r   r!   rI   r   r   rJ   rA   r   r   r   4test_ctor_with_default_value_none_and_not_allow_none   s    z@TestUseEnum.test_ctor_with_default_value_none_and_not_allow_nonec                 C   s6   G dd dt }| }| |jd  | |jd  d S )Nc                   @   s&   e Zd ZeedddZeeddZdS )zNTestUseEnum.test_ctor_with_default_value_none_and_allow_none.<locals>.Example2NTrF   rG   rH   r   r   r   r   r@      s   r@   )r   r5   rI   rJ   rA   r   r   r   0test_ctor_with_default_value_none_and_allow_none   s    z<TestUseEnum.test_ctor_with_default_value_none_and_allow_nonec                 C   sF   G dd dt }| }d |_d |_| |jtj | |jtj d S )Nc                   @   s    e Zd ZeeddZeeZdS )zYTestUseEnum.test_assign_none_without_allow_none_resets_to_default_value.<locals>.Example2FrL   NrH   r   r   r   r   r@      s   r@   )r   rI   rJ   r5   r   r   rA   r   r   r   ;test_assign_none_without_allow_none_resets_to_default_value   s    zGTestUseEnum.test_assign_none_without_allow_none_resets_to_default_valuec                 C   s.   G dd dt }| }d |_| |jd  d S )Nc                   @   s   e Zd ZeeddZdS )z>TestUseEnum.test_assign_none_to_enum_or_none.<locals>.Example2TrL   Nr   r   r   r   r   r@      s   r@   )r   r   r5   rA   r   r   r    test_assign_none_to_enum_or_none   s    z,TestUseEnum.test_assign_none_to_enum_or_nonec                 C   sJ   G dd dt }| }| t d|_W d    n1 s<0    Y  d S )Nc                   @   s   e Zd ZeeddZdS )zHTestUseEnum.test_assign_bad_value_with_to_enum_or_none.<locals>.Example2TrL   Nr   r   r   r   r   r@      s   r@   Z	BAD_VALUE)r   r.   r   r   rA   r   r   r   *test_assign_bad_value_with_to_enum_or_none   s    z6TestUseEnum.test_assign_bad_value_with_to_enum_or_nonec                    s<  t  G  fdddt}tddD ]}d| }t||}d|_| }| t|dt |d | 	d| |
 }| t|d	t |d	 | 	d
| | |d d|_| }| t|dt |d | d| |
 }| t|d	t |d	 | d| | |d q"d S )Nc                       s<   e Zd Ze ddZe ddZe ddZe	e
ddZdS )z&TestUseEnum.test_info.<locals>.ExampleFrL   N)r   r   r   r   Zenum1r   Zenum2r   Zenum3r   r   Zenum4r   choicesr   r   r      s   r   r	   r>   zenum%sTz, zor None|z	or `None`z\b\\\bFNone)color_choicesr   rangegetattrrG   infor!   lensplitZassertInZinfo_rstassertNotRegexZassertNotIn)r#   r   iattrenumrX   r   rQ   r   	test_info   s*    
""""zTestUseEnum.test_infoN)r   r   r   r   r   r%   r-   r/   r0   r6   r7   r9   r:   r<   r?   rB   rE   rK   rM   rN   rO   rP   r_   r   r   r   r   r   )   s&   
	

	r   c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestFuzzyEnumc                 C   s   G dd dt }| }tD ]h}tdt|D ]T}|d | }||_| |j| | |_| |j| | |_| |j| q,qd S )Nc                   @   s   e Zd ZeeddZdS )zGTestFuzzyEnum.test_search_all_prefixes__overwrite.<locals>.FuzzyExampler   r   Nr   r   r   r   rU   r   r   r   r   r   FuzzyExample   s   rb   r	   r   rU   rV   rY   r   r!   upperlowerr#   rb   r$   r   wlenr'   r   r   r   #test_search_all_prefixes__overwrite   s    

z1TestFuzzyEnum.test_search_all_prefixes__overwritec                 C   s   G dd dt }tD ]z}tdt|D ]f}|d | }| }||_| |j| | }| |_| |j| | }| |_| |j| q&qd S )Nc                   @   s   e Zd ZeeddZdS )zBTestFuzzyEnum.test_search_all_prefixes__ctor.<locals>.FuzzyExampler   r   Nra   r   r   r   r   rb     s   rb   r	   rc   )r#   rb   r   rg   r'   r$   r   r   r   test_search_all_prefixes__ctor  s    

z,TestFuzzyEnum.test_search_all_prefixes__ctorc                 C   s   G dd dt }| }tD ]d}tddD ]T}||d  }||_| |j| | |_| |j| | |_| |j| q(qd S )Nc                   @   s   e Zd ZeedddZdS )zETestFuzzyEnum.test_search_substrings__overwrite.<locals>.FuzzyExampler   Tr   substring_matchingNra   r   r   r   r   rb     s   rb   r   r
   )r   rU   rV   r   r!   rd   re   rf   r   r   r   !test_search_substrings__overwrite  s    

z/TestFuzzyEnum.test_search_substrings__overwritec                 C   s   G dd dt }td }dt|fD ]`}tdt|d D ]H}||| }| }||_| |j| | }| |_| |j| q:q$d S )Nc                   @   s   e Zd ZeedddZdS )z@TestFuzzyEnum.test_search_substrings__ctor.<locals>.FuzzyExampler   Trj   Nra   r   r   r   r   rb   (  s   rb   r=   r	   r
   )r   rU   rY   rV   r   r!   rd   )r#   rb   r   endstartr'   r$   r   r   r   test_search_substrings__ctor'  s    
z*TestFuzzyEnum.test_search_substrings__ctorc                 C   s  dd }|ddd }|  t d|_W d    n1 s<0    Y  |  t d|_W d    n1 sl0    Y  |  t d|_W d    n1 s0    Y  |ddd }|  t d|_W d    n1 s0    Y  |  t d	|_W d    n1 s0    Y  |ddd }|  t d|_W d    n1 sL0    Y  |  t d|_W d    n1 s~0    Y  |  t d
|_W d    n1 s0    Y  |  t d|_W d    n1 s0    Y  |  t d|_W d    n1 s0    Y  |ddd }|  t d|_W d    n1 sT0    Y  |  t d|_W d    n1 s0    Y  d S )Nc                    s   G  fdddt }|S )Nc                       s   e Zd Zee dZdS )zPTestFuzzyEnum.test_assign_other_raises.<locals>.new_trait_class.<locals>.Examplecase_sensitiverk   Nra   r   rp   r   r   r   :  s
   r   r   )rq   rk   r   r   rp   r   new_trait_class9  s    z?TestFuzzyEnum.test_assign_other_raises.<locals>.new_trait_classFrp    z	BAD COLORZedTRedr   ZlueZlUE)r.   r   r   )r#   rs   r$   r   r   r   test_assign_other_raises8  s:    
$$$$&&&&&&&z&TestFuzzyEnum.test_assign_other_raisesc                 C   sv   dd }t D ]@}||dd }| |j| || dd }| |j| qt d }||dd }| |j| d S )Nc                    s   G  fdddt }|S )Nc                       s   e Zd Zee dZdS )zTTestFuzzyEnum.test_ctor_with_default_value.<locals>.new_trait_class.<locals>.Example)rD   rq   rk   Nra   r   rq   rD   rk   r   r   r   e  s   r   rr   )rD   rq   rk   r   r   rw   r   rs   d  s    zCTestFuzzyEnum.test_ctor_with_default_value.<locals>.new_trait_classFr=   T)rU   r!   r   rd   )r#   rs   r   r$   r   r   r   test_ctor_with_default_valuec  s    z*TestFuzzyEnum.test_ctor_with_default_valueN)	r   r   r   rh   ri   rl   ro   rv   rx   r   r   r   r   r`      s   +r`   )__doc__r^   ZunittestZ	traitletsr   r   r   r   r   r   r   r   r   rZ   rU   ZTestCaser   r`   r   r   r   r   <module>   s     C