
    \eh                         d dl mZ d dlmZ d dlmZ d dlm	Z	  G d dej                        Z G d dej                        Zy	)
    )mock)fixture)base)encodeutilsc                   N    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zy)EncodeUtilsTestc                    t         j                  }| j                  t        |d       | j	                  d |dj                  d      d             | j	                  d |dj                  d      d	
             | j	                  d |dj                  d      d             | j	                  d |dj                  d      d             | j	                  d |d             y )NTu   niño   niÃ±olatin-1utf-8incomingstrangeu	   strangeignore)errors   À
iso-8859-1asciifoos   foo)r   safe_decodeassertRaises	TypeErrorassertEqualencode)selfr   s     D/usr/lib/python3/dist-packages/oslo_utils/tests/tests_encodeutils.pytest_safe_decodez EncodeUtilsTest.test_safe_decode   s    !--)[$7$]%9%9)%D.57	8 	$]%9%9)%D,46	7 	V]]9-E"."0 	1 	$]%9%9)%D.57	8 	F 34    c                 N    | j                  t        t        j                  d        y Nr   r   r   safe_encoder   s    r   %test_safe_encode_none_instead_of_textz5EncodeUtilsTest.test_safe_encode_none_instead_of_text1       )[%<%<dCr   c                 N    | j                  t        t        j                  d       y )NTr!   r#   s    r   %test_safe_encode_bool_instead_of_textz5EncodeUtilsTest.test_safe_encode_bool_instead_of_text4   r%   r   c                 N    | j                  t        t        j                  d       y )N   r!   r#   s    r   $test_safe_encode_int_instead_of_textz4EncodeUtilsTest.test_safe_encode_int_instead_of_text7   s    )[%<%<a@r   c                 N    | j                  t        t        j                  g        y r    r!   r#   s    r   %test_safe_encode_list_instead_of_textz5EncodeUtilsTest.test_safe_encode_list_instead_of_text:       )[%<%<bAr   c                 N    | j                  t        t        j                  i        y r    r!   r#   s    r   %test_safe_encode_dict_instead_of_textz5EncodeUtilsTest.test_safe_encode_dict_instead_of_text=   r-   r   c                 N    | j                  t        t        j                  d       y )N)r   barr!   r#   s    r   &test_safe_encode_tuple_instead_of_textz6EncodeUtilsTest.test_safe_encode_tuple_instead_of_text@   s    )[%<%<>NOr   c                     | j                  dj                  d      t        j                  dj                  d      d             y )Nr
   r   r   r   )r   r   r   r"   r#   s    r   -test_safe_encode_force_incoming_utf8_to_asciiz=EncodeUtilsTest.test_safe_encode_force_incoming_utf8_to_asciiC   s<      +##M$8$8$C-46	
r   c           	         t         j                  j                  t        dt        j                               5  t        j
                  dd      }| j                  t        j
                  |dd      t        j
                  |dd             | j                  t        j
                  |dd      t        j
                  |dd             t        j                  j                  g        d d d        y # 1 sw Y   y xY w)Nr      fooñbarr   )encodingzUTF-8)	r   patchobjectr   Mockr"   r   r   assert_has_calls)r   utf8s     r   .test_safe_encode_same_encoding_different_casesz>EncodeUtilsTest.test_safe_encode_same_encoding_different_casesK   s    ZZ{M499;G 	9**w0D''gw?''gw? ''gw?''gw? ##44R8	9 	9 	9s   B/C00C9c                     d}t        j                  |dd      }| j                  ||       | j                  dj                  d      |       y )Nu
   fooÃ±barr   r   )textr   r7   r6   r   )r   r"   assertNotEqualr   )r   r?   results      r   $test_safe_encode_different_encodingsz4EncodeUtilsTest.test_safe_encode_different_encodingsY   sJ    ((,@D&)L//	:FCr   c                 r   | j                  t        j                  d      d       | j                  t        j                  d      d       | j                  t        t        j                  d       t        j                         j                  d      }| j                  t        j                  |      d       y )Ns   au   aéÿ€s   aéÿ€{   tests   test)r   r   to_utf8r   r   oslo_i18n_fixtureTranslationlazy)r   msgs     r   test_to_utf8zEncodeUtilsTest.test_to_utf8`   s    ,,\:%	',,->?9	;)[%8%8#>
  ++-226:,,S1 	"r   N)__name__
__module____qualname__r   r$   r'   r*   r,   r/   r2   r4   r=   rB   rK    r   r   r   r      s@    5*DDABBP
9D"r   r   c                       e Zd Zd Zd Zy)ExceptionToUnicodeTestc                 *    G d dt               } |d      }| j                  t        j                  |      d        |d      }| j                  t        j                  |      d       t        j
                  j                  t        dd	      5   |d
      }| j                  t        j                  |      d       d d d         |d      }| j                  t        j                  |      d        |d      }| j                  t        j                  |      d       t        j
                  j                  t        dd	      5   |d      }| j                  t        j                  |      d       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nc                       e Zd Zd Zd Zy)?ExceptionToUnicodeTest.test_str_exception.<locals>.StrExceptionc                 <    t         j                  |        || _        y r    )	Exception__init__value)r   rX   s     r   rW   zHExceptionToUnicodeTest.test_str_exception.<locals>.StrException.__init__v   s    ""4("
r   c                     | j                   S r    )rX   r#   s    r   __str__zGExceptionToUnicodeTest.test_str_exception.<locals>.StrException.__str__z   s    zz!r   N)rL   rM   rN   rW   rZ   rO   r   r   StrExceptionrT   u   s    #"r   r[   s   bytes asciizbytes asciis   utf-8 é€u   utf-8 é€_getfilesystemencodingr   )return_values   rawbytes u   rawbytes ÿzunicode asciiu   unicode é€koi8_rs   u   Русский)rV   r   r   exception_to_unicoder   r8   r9   )r   r[   excs      r   test_str_exceptionz)ExceptionToUnicodeTest.test_str_exceptionq   s   	"9 	" >*99#>&	( 8999#>+	- ZZ{,D,3  5 	2 34C[==cB02		2 ?+99#>(	* /099#>-	/ ZZ{,D,4  6 	K>?C [==cBIK	K 	K%	2 	2$	K 	Ks   .E=.F	=F	Fc                     t        j                         j                  d      }| j                  t	        j
                  |      d       y )NrE   )rG   rH   rI   r   r   r_   )r   r`   s     r   test_oslo_i18n_messagez-ExceptionToUnicodeTest.test_oslo_i18n_message   s9    ++-226:99#>	!r   N)rL   rM   rN   ra   rc   rO   r   r   rQ   rQ   o   s    3Kj!r   rQ   N)unittestr   	oslo_i18nr   rG   oslotestr   	test_base
oslo_utilsr   BaseTestCaser   rQ   rO   r   r   <module>rj      s:   $  2 & "R"i,, R"j;!Y33 ;!r   