
    htf
                     j    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 Z G d d      Z	 G d d	      Z
y)
    N)settings)UserSettingsHolder)wrapsc                 d    d} t        j                  |t        j                  v d|z        |       S )Nzguardian.testappz)app %r must be installed to run this test)unittest
skipUnlessr   INSTALLED_APPS)objapps     e/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/guardian/testapp/tests/conf.pyskipUnlessTestAppr      s?    
CR8sh&=&==JSPRRUW W    c                        e Zd Z fdZ xZS )TestDataMixinc                    t         |           ddlm} ddlm}  |       }|j                  j                  dd       |j                  j                  dd      }|j                  j                  t        j                  	       |j                  j                  d
ddd      }|j                  j                  |       y )Nr   )Group)get_user_model   admins)pkname   	jackGroup)usernamejackTF)r   	is_activeis_superuseris_staff)supersetUpdjango.contrib.auth.modelsr   django.contrib.authr   objectscreateget_or_createguardian_settingsANONYMOUS_USER_NAMEgroupsadd)selfr   r   User
jack_groupr   	__class__s         r   r    zTestDataMixin.setUp   s    461]]))Q[)A
"",=,Q,Q"R||""Fd05 # G
#r   )__name__
__module____qualname__r    __classcell__)r-   s   @r   r   r      s    
$ 
$r   r   c                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	override_settingsa;  
    Acts as either a decorator, or a context manager. If it's a decorator it
    takes a function and returns a wrapped function. If it's a contextmanager
    it's used with the ``with`` statement. In either event entering/exiting
    are called before and after, respectively, the function/block is executed.
    c                 <    || _         t        j                  | _        y N)optionsr   _wrappedwrapped)r*   kwargss     r   __init__zoverride_settings.__init__%   s    ((r   c                 $    | j                          y r5   enabler*   s    r   	__enter__zoverride_settings.__enter__)   s    r   c                 $    | j                          y r5   disable)r*   exc_type	exc_value	tracebacks       r   __exit__zoverride_settings.__exit__,   s    r   c                      ddl m} t        t              r@t	        |      r4j
                  j                   fd} fd}|_        |_        S t               fd       }|S )Nr   )TransactionTestCasec                 6    j                           |        y r5   r<   )	innerselforiginal_pre_setupr*   s    r   
_pre_setupz.override_settings.__call__.<locals>._pre_setup5   s    "9-r   c                 6     |        j                          y r5   rA   )rJ   original_post_teardownr*   s    r   _post_teardownz2override_settings.__call__.<locals>._post_teardown9   s    &y1r   c                  D    5   | i |cd d d        S # 1 sw Y   y xY wr5    )argsr9   r*   	test_funcs     r   innerz)override_settings.__call__.<locals>.inner@   s(     6$d5f56 6 6s   )django.testrH   
isinstancetype
issubclassrL   rO   r   )r*   rS   rH   rL   rO   rT   rN   rK   s   ``    @@r   __call__zoverride_settings.__call__/   sr    3i&:iAT+U!*!5!5%.%=%=". $.I '5I$96 6 r   c                     t        t        j                        }| j                  j	                         D ]  \  }}t        |||        |t        _        y r5   )r   r   r7   r6   itemssetattr)r*   overridekey	new_values       r   r=   zoverride_settings.enableF   sF    %h&7&78"ll002 	.NCHc9-	.$r   c                 .    | j                   t        _        y r5   )r8   r   r7   r>   s    r   rB   zoverride_settings.disableL   s     LLr   N)
r.   r/   r0   __doc__r:   r?   rF   rY   r=   rB   rQ   r   r   r3   r3      s%    ).%)r   r3   )r   guardian.confr   r&   django.confr   django.utils.functionalr   r   r   r3   rQ   r   r   <module>re      s.     7   * )W$ $0) 0)r   