ó
šxŠ\c           @   s•  d  d l  m  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l	 Z
 d  d l	 m Z m Z d  d l j j Z e j d ƒ Z e j d ƒ Z e j d ƒ Z e j d ƒ Z d Z d Z d Z e j rð d	 Z n d
 Z d Z d j e d e ƒ Z e j ƒ  Z  d „  Z! d „  Z" d „  Z# d „  Z$ d „  Z% d „  Z& d „  Z' d „  Z( d „  Z) e j* j+ d e, f d „  ƒ  Yƒ Z- d S(   iÿÿÿÿ(   t   datetimeN(   t   range(   t	   DataFramet   compats   google.api_core.exceptionss   google.cloud.bigquerys   google.oauth2.service_accountt
   pandas_gbqt   pydata_pandas_bq_testing_py3t   pydata_pandas_bq_testing_py2t   new_tests   {0}.{1}t   1c           C   s   t  ƒ  s t j d ƒ n  d  S(   Ns1   Cannot run integration tests without a project id(   t   _get_project_idt   pytestt   skip(    (    (    s7   lib/python2.7/site-packages/pandas/tests/io/test_gbq.pyt   _skip_if_no_project_id#   s    	c           C   s   t  ƒ  s t j d ƒ n  d  S(   NsA   Cannot run integration tests without a private key json file path(   t   _get_private_key_pathR
   R   (    (    (    s7   lib/python2.7/site-packages/pandas/tests/io/test_gbq.pyt   _skip_if_no_private_key_path)   s    	c           C   s   d t  j k o d t  j k S(   Nt   TRAVIS_BUILD_DIRt   GBQ_PROJECT_ID(   t   ost   environ(    (    (    s7   lib/python2.7/site-packages/pandas/tests/io/test_gbq.pyt   _in_travis_environment/   s    c           C   s/   t  ƒ  r t j j d ƒ St p. t j j d ƒ S(   NR   (   R   R   R   t   gett
   PROJECT_ID(    (    (    s7   lib/python2.7/site-packages/pandas/tests/io/test_gbq.pyR	   4   s    	c          C   sS   t  ƒ  r. t j j t j j d ƒ d d g Œ  St }  |  sO t j j d ƒ }  n  |  S(   NR   t   cis   travis_gbq.jsont"   GBQ_GOOGLE_APPLICATION_CREDENTIALS(   R   R   t   patht   joinR   R   t   PRIVATE_KEY_JSON_PATH(   t   private_key_path(    (    s7   lib/python2.7/site-packages/pandas/tests/io/test_gbq.pyR   :   s    	
c          C   s#   t  ƒ  }  |  r t j j |  ƒ Sd  S(   N(   R   t   service_accountt   Credentialst   from_service_account_file(   R   (    (    s7   lib/python2.7/site-packages/pandas/tests/io/test_gbq.pyt   _get_credentialsE   s    		c          C   s(   t  ƒ  }  t ƒ  } t j d |  d | ƒ S(   Nt   projectt   credentials(   R	   R   t   bigqueryt   Client(   t
   project_idR!   (    (    s7   lib/python2.7/site-packages/pandas/tests/io/test_gbq.pyt   _get_clientL   s    		c         C   s  t  j j d d d |  f ƒj t ƒ } t  j j d |  ƒ } t  j j d d d d |  f ƒ} t  j j d d d d |  f ƒj t ƒ } g  t |  ƒ D] } t j	 t
 j d ƒ ƒ ^ q” } t i | d d 6| d d 6| d d	 6| d d
 6| d d 6d t |  ƒ ƒS(   Ni   t   sizei   i
   s
   US/Arizonai    t   boolst   fltst   intst   strst   timest   index(   t   npt   randomt   randintt   astypet   boolt   randnt   strR   R    t   nowt   pytzt   timezoneR   (   t	   test_sizeR'   R(   R)   R*   t   tR+   (    (    s7   lib/python2.7/site-packages/pandas/tests/io/test_gbq.pyt   make_mixed_dataframe_v2R   s    '!*.c         C   sC   d „  } |  j  t d | ƒ t j t ƒ  t j d ƒ Wd  QXd  S(   Nc          _   s   t  d g g ƒ S(   Ng      ð?(   R   (   t   argst   kwargs(    (    s7   lib/python2.7/site-packages/pandas/tests/io/test_gbq.pyt   mock_read_gbqf   s    t   read_gbqs   SELECT 1(   t   setattrR   t   tmt   assert_produces_warningt   FutureWarningt   pdR=   (   t   monkeypatchR<   (    (    s7   lib/python2.7/site-packages/pandas/tests/io/test_gbq.pyt1   test_read_gbq_without_dialect_warns_future_changeb   s    	t-   TestToGBQIntegrationWithServiceAccountKeyPathc           B   s/   e  Z e d  „  ƒ Z e d „  ƒ Z d „  Z RS(   c         C   s‡   t  ƒ  t ƒ  t ƒ  |  _ |  j j t d ƒ |  _ y |  j j |  j d t ƒWn t j	 k
 rf n X|  j j
 t j |  j ƒ ƒ d  S(   NR   t   delete_contents(   R   R   R%   t   clientt   datasett
   DATASET_IDt   delete_datasett   Truet   api_exceptionst   NotFoundt   create_datasetR"   t   Dataset(   t   cls(    (    s7   lib/python2.7/site-packages/pandas/tests/io/test_gbq.pyt   setup_classq   s    c         C   s   |  j  j |  j d t ƒd  S(   NRF   (   RG   RJ   RH   RK   (   RP   (    (    s7   lib/python2.7/site-packages/pandas/tests/io/test_gbq.pyt   teardown_class„   s    c         C   sŒ   t  d } d } t | ƒ } | j | t ƒ  d d  d t ƒ  ƒt j d j | ƒ d t ƒ  d t ƒ  d d ƒ} | d	 d
 | k sˆ t	 ‚ d  S(   NR   i!N  t	   chunksizeR!   s$   SELECT COUNT(*) AS num_rows FROM {0}R$   t   dialectt   standardt   num_rowsi    (
   t   DESTINATION_TABLER9   t   to_gbqR	   t   NoneR   RB   R=   t   formatt   AssertionError(   t   selft   destination_tableR7   t   dft   result(    (    s7   lib/python2.7/site-packages/pandas/tests/io/test_gbq.pyt   test_roundtrip‹   s    

				(   t   __name__t
   __module__t   classmethodRQ   RR   R`   (    (    (    s7   lib/python2.7/site-packages/pandas/tests/io/test_gbq.pyRE   n   s   (.   R    R   t   platformt   numpyR-   R
   R5   t   pandas.compatR   t   pandasRB   R   R   t   pandas.util.testingt   utilt   testingR?   t   importorskipRL   R"   R   R   RY   R   R   t   PRIVATE_KEY_JSON_CONTENTSt   PY3RI   t   TABLE_IDRZ   RW   t   python_versiont   VERSIONR   R   R   R	   R   R   R%   R9   RD   t   markt   singlet   objectRE   (    (    (    s7   lib/python2.7/site-packages/pandas/tests/io/test_gbq.pyt   <module>   sB   											