
     +h                     ,   d Z ddl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 n# e$ r	 ddlmZ Y nw xY wddlZej                            d           G d	 d
e                      Z G d de          Z G d de          Z G d de          ZdS )z+Test case for autocomplete implementations.    N)VERSION)ContentType)StaticLiveServerTestCase)transaction)reversecls_browserc                   d    e Zd ZdZ ej        d          d             Zd Zd Zd Z	d Z
d	 Zd
S )AutocompleteTestCasez<Provide a class-persistent selenium instance and assertions.class)scopec                     ||j         _        dS )z1Set splinter browser as `browser` class property.N)clsbrowser)selfrequestsession_browsers      Q/var/www/html/e360mart/e360mart_env/lib/python3.11/site-packages/dal/test/case.pyr   z AutocompleteTestCase.cls_browser   s     .    c                     | j                             | j        |           d| j         j        v r1| j                             d          j                                         |                                  dS )zOpen a URL.z/admin/login/zLog inN)r   visitlive_server_urlurlfind_by_valuefirstclickwait_script)r   r   s     r   getzAutocompleteTestCase.get   s      C
 	 	 	
 dl... L&&x006<<>>>r   c                 h    | j                             |          j                                         dS )z!Click an element by css selector.N)r   find_by_cssr   r   )r   selectors     r   r   zAutocompleteTestCase.click)   s-      **06688888r   c                     d| j                             |          j        _        | j                             |          j                            |           dS )z)Enter text in an element by css selector. N)r   r   r   valuetype)r   r    texts      r   
enter_textzAutocompleteTestCase.enter_text-   sJ    9;  **06  **055d;;;;;r   c                 b    | j                             |          }|r|j        j        du sJ dS dS )z1Assert an element is not visible by css selector.FNr   r   r   visibler   r    es      r   assert_not_visiblez'AutocompleteTestCase.assert_not_visible2   s=    L$$X..0500000000r   c                 Z    | j                             |          j        }|j        du sJ dS )z-Assert an element is visible by css selector.TNr(   r*   s      r   assert_visiblez#AutocompleteTestCase.assert_visible7   s3    L$$X..4yD      r   N)__name__
__module____qualname____doc__pytestfixturer   r   r   r&   r,   r.    r   r   r
   r
      s        FFV^'""". . #".  9 9 9< < <
1 1 1
! ! ! ! !r   r
   c                       e Zd ZdZd Zd ZdS )
AdminMixinz1Mixin for tests that should happen in ModelAdmin.c                 r    t          d| j        j        j        d| j        j        j        d||          S )z/Return a modeladmin url for a model and action.zadmin:_)kwargs)r   model_meta	app_label
model_name)r   actionr:   s      r   get_modeladmin_urlzAdminMixin.get_modeladmin_url@   sL    wJ&&&J'''F
 	   	r   c                     |                                  }t          t          |                    }||d         |d|         z   }| j                            d|           dS )zFill in the name input.Nname)idintlenr   fill)r   ihalfnot_ids       r   	fill_namezAdminMixin.fill_nameH   sX    GGII3q66{{455AeteH$&&)))))r   N)r/   r0   r1   r2   r@   rJ   r5   r   r   r7   r7   =   s8        ;;  * * * * *r   r7   c                   2    e Zd ZdZej        d             ZdS )OptionMixinz'Mixin to make a unique option per test.c                     t          t          j                              }t          dk     r|                    dd          }| j        j                            |          \  }}|S )z8Create a unique option from self.model into self.option.)   
   -r"   )rB   )struuiduuid1r   replacer;   objectsget_or_create)r   unique_nameoptioncreateds       r   create_optionzOptionMixin.create_optionS   sb     $*,,''W%--c266K*,:: ;  r   N)r/   r0   r1   r2   r   atomicrZ   r5   r   r   rL   rL   P   s7        11
 
 
 
 
r   rL   c                   "     e Zd ZdZ fdZ xZS )ContentTypeOptionMixinz(Same as option mixin, with content type.c                     t          t          |                                           }t          j                            |          }||fS )zReturn option, content type.)superr]   rZ   r   rU   get_for_model)r   rX   ctype	__class__s      r   rZ   z$ContentTypeOptionMixin.create_optiond   s?    -t44BBDD#11&99u}r   )r/   r0   r1   r2   rZ   __classcell__)rb   s   @r   r]   r]   a   s>        22        r   r]   )r2   rR   djangor   "django.contrib.contenttypes.modelsr   "django.contrib.staticfiles.testingr   	django.dbr   django.urlsr   ImportErrordjango.core.urlresolversr3   markusefixturesr
   objectr7   rL   r]   r5   r   r   <module>rn      s   1 1        : : : : : : G G G G G G ! ! ! ! ! !1####### 1 1 1000000001  ''(! (! (! (! (!3 (! (! ('(!V* * * * * * * *&    &   "    [     s   ' 55