ó
­«Y]c           @   sÓ   d  d l  Z  d  d l m Z m Z m Z d  d l Z d  d l Z d  d l Z d e  j f d „  ƒ  YZ	 d d d „  ƒ  YZ
 d e
 e  j f d „  ƒ  YZ d	 e
 e  j f d
 „  ƒ  YZ d „  Z e d k rÏ e ƒ  n  d S(   iÿÿÿÿN(   t   run_unittestt   rmtreet   captured_stdoutt   MiscSourceEncodingTestc           B   sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   c         C   s6   |  j  d j d ƒ d ƒ |  j  d j d ƒ d ƒ d  S(   Nu
   ÐŸÐ¸Ñ‚Ð¾Ð½s   utf-8s
   ÐŸÐ¸Ñ‚Ð¾Ð½u   \ÐŸs   \ÐŸ(   t   assertEqualt   encode(   t   self(    (    s*   lib/python2.7/test/test_source_encoding.pyt   test_pep263   s    c         B   s8   e  d d d ƒ } i  } | | U|  j | d d ƒ d  S(   Ns   
# coding: utf-8
u = u'Ã³'
t   dummyt   exect   uu   Ã³(   t   compileR   (   R   t   ct   d(    (    s*   lib/python2.7/test/test_source_encoding.pyt   test_compilestring   s    c         B   s`   e  d d d ƒ } i  } | | U|  j | d | d ƒ |  j e | d ƒ e | d ƒ ƒ d  S(   Ns!   a, b = '\U0001010F', '\U0001010F'R   R	   t   at   b(   R   R   t   len(   R   R   R   (    (    s*   lib/python2.7/test/test_source_encoding.pyt   test_issue3297   s
    c         C   s*   |  j  t t d ƒ |  j  t t d ƒ d  S(   Ns   ÿ s   ï» (   t   assertRaisest   SyntaxErrort   eval(   R   (    (    s*   lib/python2.7/test/test_source_encoding.pyt   test_issue7820#   s    c         C   s  t  d d d ƒ t  d d d ƒ t  d d d ƒ |  j t d ƒ  t  d d d ƒ Wd  QX|  j t d ƒ  t  d	 d d ƒ Wd  QX|  j t d
 ƒ  t  d	 d d ƒ Wd  QX|  j t d ƒ  t  d d d ƒ Wd  QX|  j t d
 ƒ  t  d d d ƒ Wd  QXd  S(   Ns   # -*- coding: iso-8859-15 -*-
R   R	   s   ï»¿
s   ï»¿# -*- coding: utf-8 -*-
t   fakes   # -*- coding: fake -*-
s   iso-8859-15s!   ï»¿# -*- coding: iso-8859-15 -*-
t   BOMs   ï»¿# -*- coding: fake -*-
(   R   t   assertRaisesRegexpR   (   R   (    (    s*   lib/python2.7/test/test_source_encoding.pyt   test_error_message.   s    c         C   s-   |  j  t d ƒ  d d l m } Wd  QXd  S(   Ns   codec did not return a unicodeiÿÿÿÿ(   t   bad_coding3(   R   R   t   testR   (   R   R   (    (    s*   lib/python2.7/test/test_source_encoding.pyt   test_non_unicode_codec?   s    	
c         C   s   d } |  j  | ƒ d  S(   Nt
   bad_coding(   t   verify_bad_module(   R   t   module_name(    (    s*   lib/python2.7/test/test_source_encoding.pyt   test_bad_codingE   s    c         C   s   d } |  j  | ƒ d  S(   Nt   bad_coding2(   R   (   R   R    (    (    s*   lib/python2.7/test/test_source_encoding.pyt   test_bad_coding2I   s    c         C   s€   |  j  t t d | ƒ t j j t ƒ } t j j | | d ƒ } t | ƒ  } | j	 ƒ  } Wd  QX|  j  t t
 | | d ƒ d  S(   Ns   test.s   .pyR	   (   R   R   t
   __import__t   ost   patht   dirnamet   __file__t   joint   opent   readR   (   R   R    R&   t   filenamet   fpt   text(    (    s*   lib/python2.7/test/test_source_encoding.pyR   M   s    c         C   sa   d j  d ƒ } |  j t ƒ  } t | d d ƒ Wd  QXd } |  j | j j d j | ƒ ƒ d  S(   Nu   # coding: ascii
â˜ƒs   utf-8s   <string>R	   sN   'ascii' codec can't decode byte 0xe2 in position 16: ordinal not in range(128)i    (   R   R   R   R   t
   assertTruet	   exceptiont   argst
   startswith(   R   t   inputR   t   expected(    (    s*   lib/python2.7/test/test_source_encoding.pyt   test_error_from_stringV   s
    (   t   __name__t
   __module__R   R   R   R   R   R   R!   R#   R   R5   (    (    (    s*   lib/python2.7/test/test_source_encoding.pyR   	   s   	
									t   AbstractSourceEncodingTestc           B   sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C   s   d } |  j  | d ƒ d  S(   Ns&   #coding:iso8859-15
print(repr(u"Ã¤"))
s   u'\xc3\u20ac'(   t   check_script_output(   R   t   src(    (    s*   lib/python2.7/test/test_source_encoding.pyt   test_first_coding_lineb   s    c         C   s   d } |  j  | d ƒ d  S(   Ns(   #
#coding:iso8859-15
print(repr(u"Ã¤"))
s   u'\xc3\u20ac'(   R9   (   R   R:   (    (    s*   lib/python2.7/test/test_source_encoding.pyt   test_second_coding_lineg   s    c         C   s   d } |  j  | d ƒ d  S(   Ns5   #coding:iso8859-15
#coding:latin1
print(repr(u"Ã¤"))
s   u'\xc3\u20ac'(   R9   (   R   R:   (    (    s*   lib/python2.7/test/test_source_encoding.pyt   test_double_coding_linem   s    c         C   s   d } |  j  | d ƒ d  S(   Ns4   #coding:iso8859-15 coding:latin1
print(repr(u"Ã¤"))
s   u'\xc3\u20ac'(   R9   (   R   R:   (    (    s*   lib/python2.7/test/test_source_encoding.pyt   test_double_coding_same_linet   s    c         C   s   d } |  j  | d ƒ d  S(   Ns)   #coding:iso-8859-15 ¤
print(repr(u"Ã¤"))
s   u'\xc3\u20ac'(   R9   (   R   R:   (    (    s*   lib/python2.7/test/test_source_encoding.pyt   test_first_non_utf8_coding_liney   s    c         C   s   d } |  j  | d ƒ d  S(   Ns*   
#coding:iso-8859-15 ¤
print(repr(u"Ã¤"))
s   u'\xc3\u20ac'(   R9   (   R   R:   (    (    s*   lib/python2.7/test/test_source_encoding.pyt    test_second_non_utf8_coding_line~   s    c         C   s   d } |  j  | d ƒ d  S(   Ns   ï»¿print(repr(u"Ã¤"))
s   u'\xe4'(   R9   (   R   R:   (    (    s*   lib/python2.7/test/test_source_encoding.pyt   test_utf8_bom„   s    c         C   s   d } |  j  | d ƒ d  S(   Ns$   ï»¿#coding:utf-8
print(repr(u"Ã¤"))
s   u'\xe4'(   R9   (   R   R:   (    (    s*   lib/python2.7/test/test_source_encoding.pyt"   test_utf8_bom_and_utf8_coding_lineˆ   s    (
   R6   R7   R;   R<   R=   R>   R?   R@   RA   RB   (    (    (    s*   lib/python2.7/test/test_source_encoding.pyR8   `   s   							t   BytesSourceEncodingTestc           B   s   e  Z d  „  Z RS(   c         B   sI   e  ƒ   } | d  UWd  QX| j ƒ  j d ƒ } |  j | j ƒ  | ƒ d  S(   Nt   latin1(   R   t   getvalueR   R   t   rstrip(   R   R:   R4   t   stdoutt   out(    (    s*   lib/python2.7/test/test_source_encoding.pyR9      s    (   R6   R7   R9   (    (    (    s*   lib/python2.7/test/test_source_encoding.pyRC   Ž   s   t   FileSourceEncodingTestc           B   s   e  Z d  „  Z RS(   c   	      C   sŠ   t  j ƒ  } zV t j j | d ƒ } t | d ƒ  } | j | ƒ Wd  QXt j | ƒ \ } } } Wd  t	 | ƒ X|  j
 | j ƒ  | ƒ d  S(   Ns   test.pyt   wb(   t   tempfilet   mkdtempR%   R&   R)   R*   t   writet   script_helpert   assert_python_okR   R   RF   (	   R   R:   R4   t   tmpdt   fnR-   t   rcRH   t   err(    (    s*   lib/python2.7/test/test_source_encoding.pyR9   ™   s    (   R6   R7   R9   (    (    (    s*   lib/python2.7/test/test_source_encoding.pyRI   —   s   c           C   s   t  t t t ƒ d  S(   N(   R    R   RC   RI   (    (    (    s*   lib/python2.7/test/test_source_encoding.pyt	   test_main¥   s    t   __main__(    (   t   unittestt   test.test_supportR    R   R   RN   R%   RK   t   TestCaseR   R8   RC   RI   RT   R6   (    (    (    s*   lib/python2.7/test/test_source_encoding.pyt   <module>   s   W.		