;
Íâ"Ic               @   sÂ  d  Z  d d l m Z m Z d d l m Z d d l Z d d l Z d d l Z d d l	 m
 Z
 m Z m Z m Z d d l	 m Z m Z d d l Z y
 e ‚ WnK e k
 o? e j ƒ  \ Z Z Z e ƒ  Z e e e ƒ e j ƒ  Z Yn Xe d ƒ ‚ Gd „  d	 e j ƒ Z Gd
 „  d e j ƒ Z d Z d Z e j d e j e ƒ e j e ƒ f ƒ Z  Gd „  d ƒ Z! Gd „  d e! e j ƒ Z" Gd „  d e! e j ƒ Z# d „  Z$ e% d k o e$ ƒ  n d S(   u   Test cases for traceback modulei    (   u   traceback_printu   exception_print(   u   StringION(   u   run_unittestu	   is_jythonu   Erroru   captured_output(   u   TESTFNu   unlinku&   unable to create test traceback stringc             B   sq   |  Ee  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d S(   c             C   sU   y | ƒ  Wn7 | k
 o+ } z t  j | | ƒ SWYd  d  } ~ Xn Xt d ƒ ‚ d  S(   Nu   call did not raise exception(   u	   tracebacku   format_exception_onlyu
   ValueError(   u   selfu   funcu   excu   value(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   get_exception_format   s
    $c             C   s   t  d d d ƒ d  S(   Nu   def fact(x):
	return x!
u   ?u   exec(   u   compile(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   syntax_error_with_caret$   s    c             C   s   d d  l  } d  S(   Ni    (   u   test.badsyntax_nocaret(   u   selfu   test(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   syntax_error_without_caret'   s    c             C   s   t  d d d ƒ d  S(   Nu    def spam():
  print(1)
 print(2)u   ?u   exec(   u   compile(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   syntax_error_bad_indentation+   s    c             C   s   |  j  |  j t ƒ } |  j t | ƒ d ƒ |  j | d j ƒ  d k ƒ |  j d | d k ƒ |  j | d j d ƒ | d j d ƒ ƒ d  S(   Ni   i   u	   return x!u   ^i   u   !(   u   get_exception_formatu   syntax_error_with_caretu   SyntaxErroru   assertEqualu   lenu   assert_u   stripu   find(   u   selfu   err(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu
   test_caret.   s    	c             C   sX   t  o d  S|  j |  j t ƒ } |  j t | ƒ d ƒ |  j | d j ƒ  d k ƒ d  S(   Ni   i   u   [x for x in x] = x(   u	   is_jythonu   get_exception_formatu   syntax_error_without_caretu   SyntaxErroru   assertEqualu   lenu   assert_u   strip(   u   selfu   err(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   test_nocaret6   s    	c             C   sŠ   |  j  |  j t ƒ } |  j t | ƒ d ƒ |  j | d j ƒ  d ƒ |  j d | d k ƒ |  j | d j d ƒ | d j d ƒ ƒ d  S(   Ni   i   u   print(2)u   ^i   u   )(   u   get_exception_formatu   syntax_error_bad_indentationu   IndentationErroru   assertEqualu   lenu   stripu   assert_u   find(   u   selfu   err(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   test_bad_indentation?   s    	c             C   s5   t  ƒ  } t j | j | ƒ } |  j | d g ƒ d  S(   Nu   KeyboardInterrupt
(   u   KeyboardInterruptu	   tracebacku   format_exception_onlyu	   __class__u   assertEqual(   u   selfu   eu   lst(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   test_base_exceptionG   s    	c             C   s¥   Gd „  d t  ƒ } t j | | ƒ  ƒ } |  j t | ƒ d ƒ d | j } | j d
 k o | j } n d j | j | j g ƒ } |  j | d d	 | | f ƒ d  S(   Nc             B   s   |  Ee  Z d  „  Z d S(   c             S   s   d d d  S(   Ni   i    (    (   u   self(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   __str__O   s    N(   u   __name__u
   __module__u   __str__(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   XN   s   
u   Xi   u   <unprintable %s object>u   __main__u   builtinsu   .i    u   %s: %s
(   u   __main__u   builtins(   u	   Exceptionu	   tracebacku   format_exception_onlyu   assertEqualu   lenu   __name__u
   __module__u   join(   u   selfu   Xu   erru	   str_valueu   str_name(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu%   test_format_exception_only_bad__str__M   s    c             C   s)   t  j d  d  ƒ } |  j | d g ƒ d  S(   Nu   None
(   u	   tracebacku   format_exception_onlyu   Noneu   assertEqual(   u   selfu   err(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   test_without_exceptionZ   s    c       	   
      s4  d d  l  } d d  l ‰ d d  l ‰ d d  l } ˆ j ˆ j d d g d ˆ j d ˆ j ƒ} | j ƒ  \ } } t	 | d ƒ j
 ƒ  d ‰  ‡  ‡ ‡ ‡ f d †  } | d d	 d d
 ƒ xz d D]r } | d k o
 d	 } n | d k o
 d } n d } | d j | ƒ | | d ƒ | d j | ƒ | | d ƒ qº Wd  S(   Ni    u   -cu&   import sys; print(sys.stdout.encoding)u   stdoutu   stderru   asciic                sc  z t  t d d | ƒ} | j d j |  | ƒ ƒ | j ƒ  ˆ j ˆ j t g d ˆ j d ˆ j ƒ} | j	 ƒ  \ } } | j
 ˆ  ƒ j ƒ  } Wd  t t ƒ X| j ˆ  d ƒ } | j
 ˆ  ƒ }	 d j |	 ƒ }
 d j |	 ƒ } ˆ j d	 | | d
 k d j | d
 | ƒ ƒ ˆ j | d j |
 ƒ d j | d |
 ƒ ƒ ˆ j | d | k d j | d | ƒ ƒ d  S(   Nu   wu   encodinguq   {0}if 1:
                    import traceback;
                    raise RuntimeError('{1}')
                    u   stdoutu   stderru   backslashreplaceu   raise RuntimeError('{0}')u   RuntimeError: {0}u   line %si   u)   Invalid line number: {0!r} instead of {1}i   u.   Invalid traceback line: {0!r} instead of {1!r}i   u-   Invalid error message: {0!r} instead of {1!r}(   u   openu   TESTFNu   writeu   formatu   closeu   Popenu
   executableu   PIPEu   STDOUTu   communicateu   decodeu
   splitlinesu   unlinku   encodeu   assert_u   endswith(   u
   firstlinesu   messageu   charsetu   linenou   outputu   processu   stdoutu   stderru   encoded_messageu   message_asciiu   err_lineu   err_msg(   u   output_encodingu   selfu
   subprocessu   sys(    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   do_testn   s0    
		u    u   fooi   u
   iso-8859-1u   utf-8u   GBKu   ä¸‚å„€u   hÃ© hou   # coding: {0}
i   u   #!shebang
# coding: {0}
i   (   u   asciiu
   iso-8859-1u   utf-8u   GBK(   u   tempfileu   sysu
   subprocessu   osu   Popenu
   executableu   PIPEu   STDOUTu   communicateu   stru
   splitlinesu   format(	   u   selfu   tempfileu   osu   processu   stdoutu   stderru   do_testu   charsetu   text(    (   u   output_encodingu   selfu
   subprocessu   sysu0   /mit/python/lib/python3.0/test/test_traceback.pyu   test_encoded_file^   s(    0		# 

N(   u   __name__u
   __module__u   get_exception_formatu   syntax_error_with_caretu   syntax_error_without_caretu   syntax_error_bad_indentationu
   test_caretu   test_nocaretu   test_bad_indentationu   test_base_exceptionu%   test_format_exception_only_bad__str__u   test_without_exceptionu   test_encoded_file(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   SyntaxTracebackCases   s   
											u   SyntaxTracebackCasesc             B   s   |  Ee  Z d  „  Z d S(   c             C   sw   t  j ƒ  } |  j t | ƒ d ƒ | \ } } } |  j | j d ƒ ƒ |  j | j d ƒ ƒ |  j | j d ƒ ƒ d  S(   Ni   u	   Tracebacku     Fileu	       raise(   u   example_tracebacku
   splitlinesu   assertEqualsu   lenu   assert_u
   startswith(   u   selfu   tb_linesu   banneru   locationu   source_line(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   test_traceback_indentation¡   s    N(   u   __name__u
   __module__u   test_traceback_indentation(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   TracebackFormatTestsŸ   s   
u   TracebackFormatTestsuG   
The above exception was the direct cause of the following exception:

uF   
During handling of the above exception, another exception occurred:

u   (%s|%s)c             B   sM   |  Ee  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   c             C   sR   t  | t ƒ o | Sy | ƒ  Wn+ t k
 o } z	 | SWYd  d  } ~ Xn Xd  S(   N(   u
   isinstanceu	   Exception(   u   selfu   exception_or_callableu   e(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   get_exception¹   s    c             C   s   d d d  S(   Ni   i    (    (   u   self(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   zero_divÁ   s    c             C   si   | j  ƒ  } |  j | d j d ƒ ƒ |  j d | d k | d ƒ |  j | d j d ƒ | d ƒ d  S(   Niýÿÿÿu     Fileu   1/0 # In zero_diviþÿÿÿiÿÿÿÿu   ZeroDivisionError(   u
   splitlinesu   assert_u
   startswith(   u   selfu   msgu   lines(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   check_zero_divÄ   s    c             C   sÐ   y d d Wn- t  k
 o! } z | } WYd  d  } ~ Xn X|  j | ƒ j ƒ  } |  j t | ƒ d ƒ |  j | d j d ƒ ƒ |  j | d j d ƒ ƒ |  j d | d k ƒ |  j | d j d	 ƒ ƒ d  S(
   Ni   i    i   u	   Tracebacku     Fileu   1/0 # Markeri   i   u   ZeroDivisionError(   u   ZeroDivisionErroru
   get_reportu
   splitlinesu   assertEqualsu   lenu   assert_u
   startswith(   u   selfu   _u   eu   lines(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   test_simpleÊ   s    c                sŒ   ‡ f d †  ‰  ‡  f d †  } t  j ˆ j | ƒ ƒ } ˆ j t | ƒ d ƒ ˆ j | d t ƒ ˆ j | d ƒ ˆ j d | d k ƒ d  S(   Nc                 sE   y ˆ  j  ƒ  Wn0 t k
 o$ }  z t |  ‚ WYd  d  }  ~  Xn Xd  S(   N(   u   zero_divu   ZeroDivisionErroru   KeyError(   u   e(   u   self(    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   inner_raise×   s    c                  s   ˆ  ƒ  d  S(   N(    (    (   u   inner_raise(    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   outer_raiseÜ   s    i   i   i    u   inner_raise() # Markeri   (   u
   boundariesu   splitu
   get_reportu   assertEqualsu   lenu   cause_messageu   check_zero_divu   assert_(   u   selfu   outer_raiseu   blocks(    (   u   inner_raiseu   selfu0   /mit/python/lib/python3.0/test/test_traceback.pyu
   test_causeÖ   s    c                sŒ   ‡ f d †  ‰  ‡  f d †  } t  j ˆ j | ƒ ƒ } ˆ j t | ƒ d ƒ ˆ j | d t ƒ ˆ j | d ƒ ˆ j d | d k ƒ d  S(   Nc                  s/   y ˆ  j  ƒ  Wn t k
 o t ‚ Yn Xd  S(   N(   u   zero_divu   ZeroDivisionErroru   KeyError(    (   u   self(    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   inner_raiseå   s    c                  s   ˆ  ƒ  d  S(   N(    (    (   u   inner_raise(    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   outer_raiseê   s    i   i   i    u   inner_raise() # Markeri   (   u
   boundariesu   splitu
   get_reportu   assertEqualsu   lenu   context_messageu   check_zero_divu   assert_(   u   selfu   outer_raiseu   blocks(    (   u   inner_raiseu   selfu0   /mit/python/lib/python3.0/test/test_traceback.pyu   test_contextä   s    c                sº   ‡ f d †  ‰  ‡  f d †  } t  j ˆ j | ƒ ƒ } ˆ j t | ƒ d ƒ ˆ j | d t ƒ ˆ j d | d k ƒ ˆ j d | d k ƒ ˆ j d | d	 k ƒ ˆ j | d	 ƒ d  S(
   Nc                 s‚   yK y ˆ  j  ƒ  Wn6 t k
 o* }  z |  } t |  ‚ WYd  d  }  ~  Xn XWn0 t k
 o$ }  z | |  ‚ WYd  d  }  ~  Xn Xd  S(   N(   u   zero_divu   ZeroDivisionErroru   KeyError(   u   eu   z(   u   self(    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   inner_raiseó   s    !c                  s   ˆ  ƒ  d  S(   N(    (    (   u   inner_raise(    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   outer_raiseü   s    i   i   u   raise KeyError from ei    u   1/0u   inner_raise() # Markeri   (   u
   boundariesu   splitu
   get_reportu   assertEqualsu   lenu   cause_messageu   assert_u   check_zero_div(   u   selfu   outer_raiseu   blocks(    (   u   inner_raiseu   selfu0   /mit/python/lib/python3.0/test/test_traceback.pyu   test_cause_recursiveò   s    	N(	   u   __name__u
   __module__u   get_exceptionu   zero_divu   check_zero_divu   test_simpleu
   test_causeu   test_contextu   test_cause_recursive(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   BaseExceptionReportingTests·   s   
						u   BaseExceptionReportingTestsc             B   s   |  Ee  Z d  „  Z d S(   c          
   C   s   |  j  | ƒ } d j t j t | ƒ | | j ƒ ƒ } t d ƒ j } j ƒ  } z) | ~ } t j	 t | ƒ | | j ƒ Wd  | ~ QX|  j
 | j ƒ  | ƒ | S(   Nu    u   stderr(   u   get_exceptionu   joinu	   tracebacku   format_exceptionu   typeu   __traceback__u   captured_outputu   __exit__u	   __enter__u   print_exceptionu   assertEqualsu   getvalue(   u   selfu   eu   su   _[2]u   _[1]u   sio(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu
   get_report  s    !%(N(   u   __name__u
   __module__u
   get_report(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   PyExcReportingTests  s   
u   PyExcReportingTestsc             B   s   |  Ee  Z d  „  Z d S(   c             C   sT   |  j  | ƒ } t d ƒ j } j ƒ  } z | ~ } t | ƒ Wd  | ~ QX| j ƒ  S(   Nu   stderr(   u   get_exceptionu   captured_outputu   __exit__u	   __enter__u   exception_printu   getvalue(   u   selfu   eu   _[2]u   _[1]u   s(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu
   get_report   s    %N(   u   __name__u
   __module__u
   get_report(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   CExcReportingTests  s   
u   CExcReportingTestsc               C   s   t  t ƒ d  S(   N(   u   run_unittestu   __name__(    (    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu	   test_main'  s    u   __main__(&   u   __doc__u	   _testcapiu   traceback_printu   exception_printu   iou   StringIOu   sysu   unittestu   reu   test.supportu   run_unittestu	   is_jythonu   Erroru   captured_outputu   TESTFNu   unlinku	   tracebacku   KeyErroru   exc_infou   type_u   valueu   tbu   file_u   getvalueu   example_tracebacku   TestCaseu   SyntaxTracebackCasesu   TracebackFormatTestsu   cause_messageu   context_messageu   compileu   escapeu
   boundariesu   BaseExceptionReportingTestsu   PyExcReportingTestsu   CExcReportingTestsu	   test_mainu   __name__(    (    (    u0   /mit/python/lib/python3.0/test/test_traceback.pyu   <module>   s8   "
	‡%T	