
    hF                     v    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dlmZ  G d	 d
e      Zy)    )RequestFactory)override_settings)get_urlconfresolvereverse)translation)get_translated_url   )ArticleSlugModel)AppTestCasec                        e Zd ZdZe fd       Zd Z ed      d        Z ed      d        Z	 ed      d        Z
 ed      d	        Z ed      d
        Z ed      d        Z xZS )UrlTestsz!
    Test model construction
    c                    t         |           t        | j                  d      }|j	                  | j
                         d|_        |j	                  | j                         d|_        |j                          || _	        y )Ndefault)_current_languagesluglang1lang2)
super
setUpClassr   conf_fallbackset_current_languageother_lang1r   other_lang2savearticle)clsr   	__class__s     F/home/dcms/DCMS/lib/python3.12/site-packages/parler/tests/test_urls.pyr   zUrlTests.setUpClass   sb    "S5F5FYW$$S__5$$S__5    c                 N   | j                  | j                  j                  d| j                        d       | j                  | j                  j                  d| j                        d       | j                  | j                  j                  d| j
                        d       y)z<
        Test whether the model is properly stored.
        r   )language_coder   r   r   N)assertEqualr   safe_translation_getterr   r   r   selfs    r   test_init_datazUrlTests.test_init_data   s     	LL00tGYGY0Z	
 	LL00tGWGW0XZa	
 	LL00tGWGW0XZa	
r    zparler.tests.testapp.urls)ROOT_URLCONFc                 2   | j                   j                  | j                         | j                  | j                   j	                         d| j                   d       | j                   j                  | j
                         | j                  | j                   j	                         d| j
                   d       | j                   j                  | j                         | j                  | j                   j	                         d| j                   d       y)zC
        Test whether the absolute URL values are correct.
        //article/default//article/lang1//article/lang2/N)r   r   r   r#   get_absolute_urlr   r   r%   s    r   test_get_absolute_urlzUrlTests.test_get_absolute_url+   s    
 	))$*<*<=LL))+q1C1C0DDU-V	

 	))$*:*:;668Ad>N>N=O:_`))$*:*:;668Ad>N>N=O:_`r    c                    t        j                  | j                        5  | j                  j	                  | j                         t               j                  d| j                   d      | j                  d}| j                  t        || j                        d| j                   d       | j                  t        || j                        d| j                   d       ddd       y# 1 sw Y   yxY w)zN
        Test whether get_translated_url works properly in templates.
        r*   r,   requestobject	lang_coder-   r+   Nr   overrider   r   r   r   getr#   r	   r   r   )r&   contexts     r   test_get_translated_urlz UrlTests.test_get_translated_url<   s     !!$"2"23 	LL--d.>.>?)+//!D4D4D3E_0UV,,G "7d6F6FGD$$%_5 "7d6H6HID&&''89	 	 	   CC--C6c                    t        j                  | j                        5  t        d      }| j	                  |d| j                   d       dt               j                  |      i}t        |      |d   _        | j	                  t        || j                        d| j                   d       | j	                  t        || j                        d| j                   d       ddd       y# 1 sw Y   yxY w)zF
        Test that get_translated_url can handle view kwargs.
        zview-kwargs-test-viewr*   z/tests/kwargs-view/r2   r4   N)r   r7   r   r   r#   r   r8   r   resolver_matchr	   r   r   )r&   urlr9   s      r   #test_get_translated_url_view_kwargsz,UrlTests.test_get_translated_url_view_kwargsT   s    
 !!$"2"23 	12CSAd&6&6%77J"KL >+//4G 18GI- "7d6F6FGD$$%%89 "7d6H6HID&&'':;	 	 	r;   c                    t        j                  | j                        5  | j                  j	                  | j                         t               j                  d| j                   dddi      | j                  d}d}| j                  t        || j                        d| j                   d|        | j                  t        || j                        d| j                   d	|        | j                  t        || j                  | j                  
      d| j                   d       ddd       y# 1 sw Y   yxY w)zL
        Test that the querystring is copied to the translated URL.
        r*   r,   nextu   /fr/propriété/add/r1   z*?next=%2Ffr%2Fpropri%C3%A9t%C3%A9%2Fadd%2Fr4   r-   r+   )r5   r3   Nr6   )r&   r9   added_qss      r   $test_get_translated_url_query_stringz-UrlTests.test_get_translated_url_query_stringm   s/    !!$"2"23 	LL--d.>.>?)+//(()9FD^;_ ,,	G DH"7d6F6FGD$$%_XJ? "7d6H6HID&&''8
C "7d6F6Ft||\D$$%_5/	 	 	s   DD66D?c                    t        j                  | j                        5  | j                  j	                  d| j                   d      }| j                  |d       ddd       t        j                  | j                        5  | j                  j	                  d| j                   d      }| j                  |d       ddd       y# 1 sw Y   mxY w# 1 sw Y   yxY w)zF
        Test whether translated slugs are properly resolved.
        r*   r,   zview: lang1Nr-   zview: lang2)r   r7   r   clientr8   assertContainsr   r&   responses     r   test_translatable_slug_mixinz%UrlTests.test_translatable_slug_mixin   s     !!$"2"23 	9{{4+;+;*<O'LMH-8	9 !!$"2"23 	9{{4+;+;*<O'LMH-8	9 	9		9 	9	9 	9s   <C<CCCc                    t        j                  | j                        5  | j                  j	                  d| j                   d      }| j                  |d| j                   dd       ddd       y# 1 sw Y   yxY w)z\
        Test whether calling a translated URL by their fallback causes a redirect.
        r*   r+   r-   i-  )status_codeN)r   r7   r   rE   r8   assertRedirectsrG   s     r   %test_translatable_slug_mixin_redirectz.UrlTests.test_translatable_slug_mixin_redirect   sz     !!$"2"23 	c{{4+;+;*<<M'NOH  Qt/?/?.@+P^a b	c 	c 	cs   AA55A>)__name__
__module____qualname____doc__classmethodr   r'   r   r/   r:   r?   rC   rI   rM   __classcell__)r   s   @r   r   r      s      
 $?@a Aa  $?@ A. $?@ A0 $?@ AB $?@9 A9 $?@c Acr    r   N)django.testr   django.test.utilsr   django.urlsr   r   r   django.utilsr   parler.templatetags.parler_tagsr	   testapp.modelsr   utilsr   r    r    r   <module>r\      s-    & / 5 5 $ > , Yc{ Ycr    