
    Bh                         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  G d d	e      Z G d
 de      Zy)    HttpResponse)create_pagecreate_page_content)CMSTestCase)AttributeObject)get_language_list)PageLanguageUrl)DefaultLanguageChangerfind_selectedlanguage_changer_decoratorc                       e Zd Zd Zy)DumbPageLanguageUrlc                      y )N )selfs    I/home/dcms/DCMS/lib/python3.12/site-packages/cms/tests/test_menu_utils.py__init__zDumbPageLanguageUrl.__init__   s        N)__name__
__module____qualname__r   r   r   r   r   r      s    r   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)MenuUtilsTestsc                     d }|S )Nc                     t        d      S )N r   )requests    r   myviewz.MenuUtilsTests.get_simple_view.<locals>.myview   s    ##r   r   )r   r   s     r   get_simple_viewzMenuUtilsTests.get_simple_view   s    	$r   c                    | j                   j                  d      }| j                  |d       | j                   j                  d      }| j                  |d       | j                   j                  d      }| j                  |d       y )Nz/en/sample/login/z<h1>/fr/sample/login/</h1>z/en/sample/login_other/z <h1>/fr/sample/login_other/</h1>z/en/sample/login3/z<h1>/fr/sample/login3/</h1>)clientgetassertContains)r   responses     r   test_reverse_in_changerz&MenuUtilsTests.test_reverse_in_changer   sn    ;;??#67H&BC;;??#<=H&HI;;??#78H&CDr   c                 4   t        ddd      }t        d      D ]  }|dvst        |d|z  |        | j                  |j	                         d|      }g d	}t        d      D cg c]  } t        |      |       }}| j                  ||       y
c c}w )zt
        The DefaultLanguageChanger should not try to resolve the url
        for languages not configured.
        zen-pageznav_playground.htmlen   )site_id)r(   zpt-brzes-mxz%s-page)pathlanguagepage)/en/en-page/z/de/de-page/z/fr/fr-page/r.   r.   N)r   r	   r   get_requestget_absolute_urlr   assertSequenceEqual)r   cms_pager,   r   urls_expectedcode
urls_founds          r   test_default_language_changerz,MenuUtilsTests.test_default_language_changer$   s    
 y*?F)!4 	NH77#Hi(.BHM	N ""**, # 


 #4A">@ 6,W5d; @
 @  
;@s   (Bc                 t   d } t        |      | j                               }| j                  dd      } ||      }| j                  |j                  d       d|i}t               }|j                  |d      }|d   }| j                  |d       |j                  |d      }|d   }| j                  |d	       y )
Nc                     d| z  S )Nz
/%s/dummy/r   )langs    r   lang_changerzDMenuUtilsTests.test_language_changer_decorator.<locals>.lang_changer@   s    $&&r   z/some/path/r(   r   r   contentz
/en/dummy/jaz
/ja/dummy/)r   r    r/   assertEqualr;   r   get_context)	r   r:   decorated_viewr   r%   fake_contexttagoutputurls	            r   test_language_changer_decoratorz.MenuUtilsTests.test_language_changer_decorator?   s    	'A3LA$BVBVBXY""=$7!'*))3/!7+!#t4Yl+t4Yl+r   c                     t               }t        d|g      }t        d      }t        d|g      }t        d||g      }|g}t        |      }| j                  ||       y )NT)ancestorchildren)selected)r   r   r=   )r   subchild
firstchildselectedchildsecondchildrootnodesrH   s           r   test_find_selectedz!MenuUtilsTests.test_find_selectedO   sb    "$$dhZH
'6%t}oN
K7PQ '=1r   N)r   r   r   r    r&   r6   rD   rO   r   r   r   r   r      s    
E<6, 2r   r   N)django.httpr   cms.apir   r   cms.test_utils.testcasesr   cms.test_utils.util.mockr   cms.utils.i18nr	   menus.templatetags.menu_tagsr
   menus.utilsr   r   r   r   r   r   r   r   <module>rW      s;    $ 4 0 4 , 8 / 
C2[ C2r   