
    cf                     <   d dl mZ d dlmZm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mZmZ d dlmZ 	 d d	lmZ n # e$ r 	 d d	lmZ n# e$ r eZY nw xY wY nw xY w	 d d
lmZ n# e$ r	 d d
lmZ Y nw xY wdZdZdZ G d de          ZdZ G d de          Z dS )    )cache)ClientRequestFactory)override_settings)SimpleTestCase)	UserAgent)utils)get_cache_keyget_user_agentget_and_set_user_agent)user_agents)reload)reversezMozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B179 Safari/7534.48.3zMozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10a/  Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.3; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
 ed	
          d             Z ed
          d             Zd	S )MiddlewareTestc                 v    t           t          t          fD ]#}t          j        t          |                     $d S )N)iphone_ua_stringipad_ua_stringlong_ua_stringr   deleter
   )selfuas     P/var/www/html/env/lib/python3.11/site-packages/django_user_agents/tests/tests.pytearDownzMiddlewareTest.tearDown"   s=    #^^D 	, 	,BLr**++++	, 	,    c                     t          t                    }|                    t          d                    }|                     |j        d         t                     d S )NHTTP_USER_AGENTuser_agent_test
user_agent)r   r   getr   assertIsInstancecontextr   r   clientresponses      r   "test_middleware_assigns_user_agentz1MiddlewareTest.test_middleware_assigns_user_agent&   sP    777::g&78899h.|<iHHHHHr   c                 (   t          t                                        d          }t          |          }|                     |t
                     |                     t          j        t          t                              t
                     d S Nr    )r   r   r!   r   r"   r   r   r
   r   requestr    s      r   test_cache_is_setz MiddlewareTest.test_cache_is_set+   ss     1ABBBFFrJJ#G,,
j)444ei6F(G(GHH)TTTTTr   c                     t                                          d          }t          |          }|                     |t                     d S Nr*   )r   r!   r   r"   r   r+   s      r   *test_empty_user_agent_does_not_cause_errorz9MiddlewareTest.test_empty_user_agent_does_not_cause_error1   sD     ""&&r**#G,,
j)44444r   c                     t                                          d          }t          |           |                     |j        t
                     d S r/   )r   r!   r   r"   r    r   r   r,   s     r   test_get_and_set_user_agentz*MiddlewareTest.test_get_and_set_user_agent6   sH     ""&&r**w'''g0)<<<<<r   c                     t          t                    }|                    t          d                    }|                     |j        d           |                     |d           d S )Nr   user_agent_test_filters   z;Just making sure all the filters can be used without errors)r   r   r!   r   assertEqualstatus_codeassertContainsr$   s      r   &test_filters_can_be_loaded_in_templatez5MiddlewareTest.test_filters_can_be_loaded_in_template<   sr    777::g&?@@AA-s333I	K 	K 	K 	K 	Kr   c                    t          t                                        d          }|                     t	          j        |                     |                     t	          j        |                     |                     t	          j        |                     |                     t	          j	        |                     |                     t	          j
        |                     d S r)   )r   r   r!   
assertTruer   	is_mobileis_touch_capableassertFalse	is_tabletis_pcis_botr2   s     r   test_filterszMiddlewareTest.test_filtersD   s     1ABBBFFrJJ-g667774W==>>>.w77888*733444+G4455555r   c                     |                      t          t                    d           |                      t          t                    d           d S )Nz3django_user_agents.c226ec488bae76c60dd68ad58f03d729z3django_user_agents.00705b9375a0e46e966515fe90f111da)r7   r
   r   r   )r   s    r   test_get_cache_keyz!MiddlewareTest.test_get_cache_keyL   s[    .))A	
 	
 	
 	*++A	
 	
 	
 	
 	
r   NUSER_AGENTS_CACHEc                 D   t          t                     t          t                                        d          }t          |          }|                     |t                     |                     t          j        t          t                                         d S r)   reload_moduler	   r   r   r!   r   r"   r   assertIsNoner   r
   r+   s      r   test_disabled_cachez"MiddlewareTest.test_disabled_cacheV   s    e 1ABBBFFrJJ#G,,
j)444%)M2B$C$CDDEEEEEr   testc                    t          t                     t          t                                        d          }t          |          }|                     |t                     |                     t          j        t          t                                         |                     t          j	                            t          t                              t                     d S r)   rI   r+   s      r   test_custom_cachez MiddlewareTest.test_custom_cache_   s    e 1ABBBFFrJJ#G,,
j)444%)M2B$C$CDDEEEekoom<L.M.MNNPYZZZZZr   )__name__
__module____qualname__r   r'   r-   r0   r3   r:   rC   rE   r   rL   rO    r   r   r   r       s        , , ,I I I
U U U5 5 5
= = =K K K6 6 6
 
 
 ...F F /.F 000[ [ 10[ [ [r   r   u   Mozilla/5.0 (Linux; Android 4.4.2; X325 – Locked to Life Wireless Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36c                   8    e Zd Z ed          d             ZdS )	UtilsTestNrF   c                     t          t                     t          t                                        d          }|                     t          j        |                     d S r)   )rJ   r	   r   unicode_ua_stringr!   r<   r   r=   r2   s     r   test_unicode_ua_stringz UtilsTest.test_unicode_ua_stringn   sR    e 1BCCCGGKK-g6677777r   )rP   rQ   rR   r   rX   rS   r   r   rU   rU   l   s<        ...8 8 /.8 8 8r   rU   N)!django.core.cacher   django.test.clientr   r   django.test.utilsr   django.testr   user_agents.parsersr   django_user_agentsr	   django_user_agents.utilsr
   r   r   django_user_agents.templatetagsr   	importlibr   rJ   ImportErrorimpdjango.urlsr   django.core.urlresolversr   r   r   r   rW   rU   rS   r   r   <module>rf      s   # # # # # # 5 5 5 5 5 5 5 5 / / / / / / & & & & & & ) ) ) ) ) ) $ $ $ $ $ $ Z Z Z Z Z Z Z Z Z Z 7 7 7 7 7 71111111   ///////   1####### 1 1 1000000001 \  f CG[ G[ G[ G[ G[^ G[ G[ G[T @ 8 8 8 8 8 8 8 8 8 8sE   ? AAAAAAAA A' 'A54A5