
    ]j                     *   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 	 d d
lmZ dZdZdZ G d de      ZdZ G d de      Z y# e$ r 	 d d	lmZ n# e$ r eZY nw xY wY Bw xY w# e$ r	 d d
lmZ Y Lw xY w)    )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                   x    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y	)MiddlewareTestc                 l    t         t        t        fD ]   }t        j                  t        |             " y )N)iphone_ua_stringipad_ua_stringlong_ua_stringr   deleter
   )selfuas     H/root/env/lib/python3.12/site-packages/django_user_agents/tests/tests.pytearDownzMiddlewareTest.tearDown"   s)    #^^D 	,BLLr*+	,    c                     t        t              }|j                  t        d            }| j	                  |j
                  d   t               y )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&   s;    7::g&789h..|<iHr   c                     t        t              j                  d      }t        |      }| j	                  |t
               | j	                  t        j                  t        t                    t
               y Nr    )r   r   r!   r   r"   r   r   r
   r   requestr    s      r   test_cache_is_setz MiddlewareTest.test_cache_is_set+   sQ     1ABFFrJ#G,
j)4eii6F(GH)Tr   c                 x    t               j                  d      }t        |      }| j                  |t               y 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   s/     "&&r*#G,
j)4r   c                     t               j                  d      }t        |       | j                  |j                  t
               y r/   )r   r!   r   r"   r    r   r   r,   s     r   test_get_and_set_user_agentz*MiddlewareTest.test_get_and_set_user_agent6   s3     "&&r*w'g00)<r   c                     t        t              }|j                  t        d            }| j	                  |j
                  d       | j                  |d       y )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<   sK    7::g&?@A--s3I	Kr   c                    t        t              j                  d      }| j                  t	        j
                  |             | j                  t	        j                  |             | j                  t	        j                  |             | j                  t	        j                  |             | j                  t	        j                  |             y 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FFrJ--g6744W=>..w78**734++G45r   c                     | j                  t        t              d       | j                  t        t              d       y )Nz3django_user_agents.c226ec488bae76c60dd68ad58f03d729z3django_user_agents.00705b9375a0e46e966515fe90f111da)r7   r
   r   r   )r   s    r   test_get_cache_keyz!MiddlewareTest.test_get_cache_keyL   s7    .)A	
 	*+A	
r   NUSER_AGENTS_CACHEc                    t        t               t        t              j	                  d      }t        |      }| j                  |t               | j                  t        j                  t        t                           y r)   reload_moduler	   r   r   r!   r   r"   r   assertIsNoner   r
   r+   s      r   test_disabled_cachez"MiddlewareTest.test_disabled_cacheV   sW    e 1ABFFrJ#G,
j)4%))M2B$CDEr   testc                    t        t               t        t              j	                  d      }t        |      }| j                  |t               | j                  t        j                  t        t                           | j                  t        j                  j	                  t        t                    t               y r)   rI   r+   s      r   test_custom_cachez MiddlewareTest.test_custom_cache_   s{    e 1ABFFrJ#G,
j)4%))M2B$CDEekkoom<L.MNPYZr   )__name__
__module____qualname__r   r'   r-   r0   r3   r:   rC   rE   r   rL   rO    r   r   r   r       sc    ,I
U5
=K6
 .F /F 0[ 1[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                   *    e Zd Z ed      d        Zy)	UtilsTestNrF   c                     t        t               t        t              j	                  d      }| j                  t        j                  |             y r)   )rJ   r	   r   unicode_ua_stringr!   r<   r   r=   r2   s     r   test_unicode_ua_stringz UtilsTest.test_unicode_ua_stringn   s7    e 1BCGGK--g67r   )rP   rQ   rR   r   rX   rS   r   r   rU   rU   l   s    .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 / & ) $ Z Z 711#
 \  f CG[^ G[T @ 8 8{  /   101sF   A$ B $B*A10B1A;8B:A;;B BBB