
    ce                         d dl Z d dlZ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 dlmZ d dlmZ  ej                  e      Z G d d	ej                         Zy)
    N)mock)base)_factory)_gettextutils)_lazy)_messagec                   L     e Zd Z fdZ fdZd Zd Zd Zd Zd Z	d Z
 xZS )	GettextTestc                     t         t        |           t        j                  | _        t        j                  d      | _        y )Nzoslo_i18n.test)	superr
   setUpr   USE_LAZY	_USE_LAZYr   TranslatorFactorytself	__class__s    C/usr/lib/python3/dist-packages/oslo_i18n/tests/test_gettextutils.pyr   zGettextTest.setUp#   s.    k4&(++,<=    c                 T    | j                   t        _        t        t        |           y )N)r   r   r   r   r
   tearDownr   s    r   r   zGettextTest.tearDown)   s    k4)+r   c                 `    t         j                  | j                  j                  d             y )Ntest)LOGinfor   primaryr   s    r   test_gettext_does_not_blow_upz)GettextTest.test_gettext_does_not_blow_up.   s    '(r   c                    t        j                  d       t        j                  d       | j	                  t        | j                  j                  d      t                     t        j                  d       t        j                  d       | j	                  t        | j                  j                  d      t        j                               y )NblaaFzA StringTz	A Message)r   installr   enable_lazy
assertTrue
isinstancer   r   strr   Messager   s    r   test__gettextutils_installz&GettextTest.test__gettextutils_install1   s    f%% 
466>>*#=sCDf%$
466>>+#>#+#3#35 	6r   c                 .   t        j                  d      5 }t        j                  d      5  d|_        t        j                  d       |j                  t        j                  d      g       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nos.environ.getgettext.install/foo/barr!   BLAA_LOCALEDIR)r   patchreturn_valuer   r"   assert_has_callscallr   environ_gets     r   'test_gettext_install_looks_up_localedirz3GettextTest.test_gettext_install_looks_up_localedir;   s    ZZ() 	L[-. L+5(%%f-,,dii8H.I-JKL	L 	LL L	L 	Ls#   BAA?.B?B	BBc                 j   t        j                  d      5 }t        j                  d      5  d|_        dt        j                  v rt        j                  d= t        j                  d       | j                  dt        j                         d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr*   r+   r,   _r!   )r   r.   r/   builtins__dict__r   r"   assertInr2   s     r   %test_gettext_install_updates_builtinsz1GettextTest.test_gettext_install_updates_builtinsB   s    ZZ() 	6[-. 6+5((+++ ))#.%%f-c8#4#456	6 	66 6	6 	6s#   B)A BB)B&	"B))B2c                 $   dd}t         j                  j                  t        d|      }|j	                          | j                  |j                         i t        _        t        j                  d      }t        j                  d      }| j                  d|d          | j                  d|d          | j                  dt        |      |       | j                  h dt        |             | j                  d	t        |      |       | j                  h d
t        |             | j                  dt        t        j                               t        j                  d      }| j                  dt        |             | j                  d|       y )Nr   c                 r    |xs g }| dk(  rt        d |D              ryy | dk(  rt        d |D              ryy )Ndomain_1c              3   $   K   | ]  }|d v  
 yw))en_GBes_ESfil_PHitN .0xs     r   	<genexpr>zWGettextTest.test_get_available_languages.<locals>._mock_gettext_find.<locals>.<genexpr>P   s      + >> +   ztranslation-filedomain_2c              3   $   K   | ]  }|d v  
 yw))fr_FRzh_HKNrC   rD   s     r   rG   zWGettextTest.test_get_available_languages.<locals>._mock_gettext_find.<locals>.<genexpr>T   s     B1q..BrH   )any)domain	localedir	languagesalls       r   _mock_gettext_findzDGettextTest.test_get_available_languages.<locals>._mock_gettext_findM   sN    !RI# + )+ +-  :%B	BB-r   findr=   rI   en_US   >   rB   r?   rT   r@   rA      >   rT   rK   rL      huh   )NNr   )r   r.   objectgettextstart
addCleanupstopr   _AVAILABLE_LANGUAGESget_available_languagesassertEquallensetr9   )r   rR   mock_patcherdomain_1_languagesdomain_2_languagesunknown_domain_languagess         r   test_get_available_languagesz(GettextTest.test_get_available_languagesK   sW   		 zz((&:LM))* .0* +BB:N*BB:N 	"4Q"78"4Q"78C 235GH7"#	
 	C 235GH4/0	2 	C B BCD#0#H#H#O C 89:g78r   c                 l   d}|d d df}| j                  |t        j                         t        j                  |       | j                  |t        j                         dt        j                  |<   | j                  dt        j                  |             t        j                  j                  |       y )Nzmy-unique-domainr   zspoof result)assertNotInr   _FIND_CACHEr[   rS   r9   ra   pop)r   rN   keys      r   test_cached_findzGettextTest.test_cached_findw   s    #tT1%m778Vc=445)7!!#&f)=>!!%%c*r   )__name__
__module____qualname__r   r   r   r(   r4   r:   rh   rn   __classcell__)r   s   @r   r
   r
   !   s-    >,
)6L6*9X+r   r
   )r7   r[   loggingunittestr   oslotestr   	test_base	oslo_i18nr   r   r   r   	getLoggerro   r   BaseTestCaser
   rC   r   r   <module>rz      sJ   "     &  #   g!^+)(( ^+r   