o
    Ni                     @   s   d Z ddlmZ ddlmZ ddl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Zddlm  mZ ddlmZ ejd	d
 ejdd
 dZG dd dejjZdS )zBase TestCase to use test_data.    )absolute_import)division)print_functionN)logging)absltest)	gcs_utilsc                 C   s   g S N _r	   r	   Y/home/ubuntu/.local/lib/python3.10/site-packages/tensorflow_datasets/testing/test_case.py<lambda>$       r   c                 C   s   dS )NFr	   r
   r	   r	   r   r   &   r   )original_info
dummy_infooriginal_datasetsdummy_datasetsc                       sZ   e Zd ZdZe fddZejdd Z fddZ	 fdd	Z
ejdddZ  ZS )TestCasezBase TestCase to be used for all tests.

  `test_data` class attribute: path to the directory with test data.
  `tmp_dir` attribute: path to temp directory reset before every test.
  c                    s>   t t|   tjtjtd| _t	d t
_t	d t
_d S )N	test_datar   r   )superr   
setUpClassospathjoindirname__file__r   GCS_ACCESS_FNSr   gcs_dataset_info_filesis_dataset_on_gcs)cls	__class__r	   r   r   1   s   
zTestCase.setUpClassc                 c   s4    t d t_t d t_d V  t d t_t d t_d S )Nr   r   r   r   )r   r   r   r   selfr	   r	   r   
gcs_access9   s   


zTestCase.gcs_accessc                    s*   t t|   tjtjjj	 d| _
d S )N)dir)r   r   setUptempfilemkdtemptfcompatv1testget_temp_dirtmp_dirr"   r    r	   r   r&   C   s   zTestCase.setUpc                    s0   t  tjr fdd}n }tt| ||S )Nc                    s    t | v S r   )str)err	predicater	   r   r   J   s    z9TestCase.assertRaisesWithPredicateMatch.<locals>.<lambda>)
isinstancesixstring_typesr   r   assertRaisesWithPredicateMatch)r#   err_typer2   predicate_fctr    r1   r   r6   H   s   
z'TestCase.assertRaisesWithPredicateMatchinfoc           	      c   s    t jjt|5}d V  d}|jD ]}|d }|d |dd  }}|t| }|d| 7 }q| || W d    d S 1 sAw   Y  d S )N r       )r   mockpatchobjectr   call_args_listtupleassertIn)	r#   textlevelmock_logconcat_logslog_callargsbaselog_textr	   r	   r   
assertLogsP   s   
"zTestCase.assertLogs)r9   )__name__
__module____qualname____doc__classmethodr   
contextlibcontextmanagerr$   r&   r6   rK   __classcell__r	   r	   r    r   r   *   s    
	r   )rO   
__future__r   r   r   rQ   r   r'   abslr   absl.testingr   r4   tensorflow.compat.v2r*   v2r)   tensorflow_datasets.core.utilsr   r   r   r   r,   r   r	   r	   r	   r   <module>   s$   