σ
ίΘ[c        	   @` s  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 d l
 m Z d d l m Z d d l m Z d d	 l m Z d
 e j f d     YZ d   Z e j j e d   d    Z d   Z d   Z e j j e d   d    Z d   Z d   Z e j j e d   d    Z d   Z d   Z  d   Z! d   Z" d   Z# d   Z$ e j j% d7 d8 d9 d: d; d< d= g  d)    Z& e j j% d> d? d@ dA dB dC d1 e j' d2 f g  d3    Z( e j j% d* d4 e j) d5 e j* f  d6    Z+ d S(D   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsNi   (   t   six(   t   next(   t   rangei   (   t   console(   t   unitst   FakeTTYc           B` s8   e  Z d  Z d d  Z d d  Z d   Z d   Z RS(   um   IOStream that fakes a TTY; provide an encoding to emulate an output
    stream with a specific encoding.
    c         C` sd   | d  k r" t t |   j |   St |  } t | j   |  j |  f i | d 6 }  |  j |   S(   Nu   encoding(   t   Nonet   superR	   t   __new__t   strt   typet   titlet   __name__(   t   clst   encoding(    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyR      s    c         C` s   t  t |   j   d  S(   N(   R   R	   t   __init__(   t   selfR   (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyR   (   s    c         C` sY   t  | t  r! | j d  } n" |  j d  k	 rC | j |  j  n  t t |   j |  S(   Nu   latin-1(	   t
   isinstancet   bytest   decodeR   R
   t   encodeR   R	   t   write(   R   t   s(    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyR   +   s
    c         C` s   t  S(   N(   t   True(   R   (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   isatty4   s    N(   R   t
   __module__t   __doc__R
   R   R   R   R   (    (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyR	      s
   		c          C` s°   t    }  |  j   s t  |  j d  |  j   d k s@ t  t  d  } | j   s^ t  | j j d k sv t  t j t	 | j d  s t  | j   d k s¬ t  d  S(   Nu   βu   asciiu   AsciiFakeTTYu    (
   R	   R   t   AssertionErrorR   t   getvaluet	   __class__R   t   pytestt   raisest   UnicodeEncodeError(   t   f1t   f2(    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   test_fake_tty8   s    	u   sys.platform.startswith('win')c           C` s"   t  j d d  d k s t  d  S(   Nu   foou   greenu   [0;32mfoo[0m(   R   t   _color_textR   (    (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   test_color_textI   s    c           C` s*   t  j d d  t  j d d d d  d  S(   Nu   foou   greenu   baru   red(   R   t   color_print(    (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   test_color_printN   s    c          C` s   t  j   }  t j d d d |  |  j   d k s: t  t  j   }  t j d d d d d d |  |  j   d k s} t  d  S(	   Nu   foou   greent   fileu   foo
u   baru   redu   bazu
   foobarbaz
(   t   iot   StringIOR   R*   R    R   (   t   stream(    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   test_color_print2U   s    c          C` s{   t    }  t j d d d |  |  j   d k s7 t  t    }  t j d d d d d d |  |  j   d k sw t  d  S(	   Nu   foou   greenR,   u   [0;32mfoo[0m
u   baru   redu   bazu    [0;32mfoo[0m[0;31mbar[0mbaz
(   R	   R   R*   R    R   (   R/   (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   test_color_print3a   s    		c           C` s   t  j d d  d  S(   Nu	   ΓΌberbΓ¦ru   red(   R   R*   (    (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   test_color_print_unicoden   s    c           C` s   t  j d d  d  S(   Nu   foou   unknown(   R   R*   (    (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   test_color_print_invalid_colorr   s    u   not six.PY2c          C` s   t  j }  d   t  _ zx t j   } t j d d d | | j   d k sR t  t j   } t j d d d | | j   d k s t  Wd	 |  t  _ Xd	 S(
   u   Regression test for #1244

    In some environments `locale.getpreferredencoding` can return ``''``;
    make sure there are some reasonable fallbacks.
    c           S` s   d S(   Nu    (    (    (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   <lambda>   s    s   βu   whiteR,   u   β
s   Νοu   redu   ΓΓ―
N(   t   localet   getpreferredencodingR-   R.   R   R*   R    R   (   t	   orig_funcR/   (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt$   test_color_print_no_default_encodingv   s    
	c          C` sJ   t  d  }  t j j } t j d d |  d |  } t |  Wd QXd S(   uΝ   Regression test for #1760

    Ensures that the spinner can fall go into fallback mode when using the
    unicode spinner on a terminal whose default encoding cannot encode the
    unicode characters.
    u   asciiu   Reticulating splinesR,   t   charsN(   R	   R   t   Spinnert   _default_unicode_charsR   (   R/   R9   R   (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt    test_spinner_non_unicode_console   s
    c          C` s=   t  j d  ( }  x t d  D] } |  j   q WWd  QXd  S(   Ni2   (   R   t   ProgressBarR   t   update(   t   bart   i(    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   test_progress_bar    s    c          C` s$   x t  j t d   D] }  q Wd  S(   Ni2   (   R   R=   R   (   t   x(    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   test_progress_bar2§   s    c          C` s&   d   }  t  j j |  t d   d  S(   Nc          _` s   d  S(   N(    (   t   argst   kwargs(    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt
   do_nothing­   s    i2   (   R   R=   t   mapR   (   RF   (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   test_progress_bar3¬   s    	c          C` s   t  j d   }  Wd  QXd  S(   Ni    (   R   R=   (   R?   (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   test_zero_progress_bar³   s    c          C` s   d }  x' t  j t d   D] } |  | 7}  q W|  d k sB t  d }  x! t  j d  D] } |  | 7}  qX W|  d k s~ t  d  S(   Ni    i2   iΙ  (   R   R=   R   R   (   t   sumRB   (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   test_progress_bar_as_generatorΈ   s    u   secondsu   stringiX/ u    1w 3diMΫ u    2d 4hiA  u    1h 5mi@   u    1m 4si   u      15su       2sc         C` s%   t  j |   } | | k s! t  d  S(   N(   R   t
   human_timeR   (   t   secondst   stringRL   (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   test_human_timeΔ   s    	u   sizeirΩ u   8.6Mu   187ku   3.9ku    64 u     2 i
   u    10Gc         C` s%   t  j |   } | | k s! t  d  S(   N(   R   t   human_file_sizeR   (   t   sizeRN   RL   (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   test_human_file_sizeΡ   s    	i2   id   c         C` s%   t  j t j t j |   s! t  d  S(   N(   R"   R#   t   ut   UnitConversionErrorR   RP   R   (   RQ   (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   test_bad_human_file_sizeή   s    (   u   secondsu   string(   iX/ u    1w 3d(   iMΫ u    2d 4h(   iA  u    1h 5m(   i@   u    1m 4s(   i   u      15s(   i   u       2s(   u   sizeu   string(   irΩ u   8.6M(   iMΫ u   187k(   iA  u   3.9k(   i@   u    64 (   i   u     2 (,   t
   __future__R    R   R   R   R-   R5   R"   t   externR   t
   extern.sixR   t   extern.six.movesR   t    R   R   RS   R.   R	   R'   t   markt   skipifR   R)   R+   R0   R1   R2   R3   R8   R<   RA   RC   RH   RI   RK   t   parametrizeRO   t   GBRR   t   kmt   gRU   (    (    (    s?   lib/python2.7/site-packages/astropy/utils/tests/test_console.pyt   <module>   sL   ""	!		!		!						"