ó
šßÈ[c           @` sc   d  d l  m Z m Z m Z m Z d  d l Z d  d l Z d  d l Z d d l m	 Z	 d „  Z
 d S(   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsNi   (   t   make_function_with_signaturec          C` sÌ   d „  }  t  |  d ƒ } d j ƒ  } y | d d ƒ Wnƒ t k
 rº t j ƒ  \ } } } | t k sl t ‚ t j | ƒ } d | d k s‘ t ‚ | | d	 k r± d
 | d	 k sÈ t ‚ n Xt	 j
 d ƒ d S(   uØ   
    Tests that a function made with ``make_function_with_signature`` is give
    the correct line number into the module it was created from (i.e. the line
    ``make_function_with_signature`` was called from).
    c          _` s   d d d  S(   Ni   i    (    (   t   argst   kwargs(    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_codegen.pyt   crashy_function   s    u   au   buM   
    wrapped = make_function_with_signature(crashy_function, ('a', 'b'))
    i   i   u   1 / 0iÿÿÿÿiþÿÿÿu   line =u$   This should have caused an exceptionN(   u   au   b(   R   t   stript	   Exceptiont   syst   exc_infot   ZeroDivisionErrort   AssertionErrort	   tracebackt	   format_tbt   pytestt   fail(   R   t   wrappedt   linet   exc_clst   exct   tbt   tb_lines(    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_codegen.pyt(   test_make_function_with_signature_lineno   s    	*(   t
   __future__R    R   R   R   R
   R   R   t   codegenR   R   (    (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_codegen.pyt   <module>   s
   "