o
    wi                     @   sV   d dl Z d dlmZ d dlZd dlmZ d dlmZm	Z	m
Z
mZmZ G dd dZdS )    N)mock)__version__)
ais_binaryais_endpoint_to_dirbucket_and_object_from_uriis_datastore_pathresolve_cache_dirc                   @   s\   e Zd Zejjdd Zejjdd Zejjdd Zejjdd Z	ejjd	d
 Z
dS )TestDataUtilsc                 C   s   d}t d|> dtjt dtjdt d}| D ]\}}|tj	|< t
  }||ks=J d| d| q!W d	   d	S 1 sIw   Y  d	S )
Test cache dir path.TEST_NEMO_ENV_CACHE_DIRz!nemo.constants.NEMO_ENV_CACHE_DIR/path/to/cacherelative/pathz~/.cache/torch/NeMo/NeMo_)r   r    z
Expected: z, got N)r   patchospathjoingetcwd
expanduserNEMO_VERSIONitemsenvironr   as_posix)selfr   envar_to_resolved_pathenvarexpected_pathuut_path r   S/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/tests/utils/test_utils.pytest_resolve_cache_dir   s   

"z$TestDataUtils.test_resolve_cache_dirc                 C   s4   t dsJ t drJ t drJ t drJ dS )z!Test checking for datastore path.zais://positive/examplezais/negative/examplez/negative/exampleznegative/exampleN)r   r   r   r   r   test_is_datastore_path2   s   z$TestDataUtils.test_is_datastore_pathc                 C   s   t ddksJ t ddksJ tt t d W d   n1 s$w   Y  tt t d W d   dS 1 s>w   Y  dS )z(Test getting bucket and object from URI.zais://bucket/object)bucketobjectzais://bucket_2/object/is/here)bucket_2zobject/is/herez/local/fileNz
local/file)r   pytestraises
ValueErrorr!   r   r   r   test_bucket_and_object_from_uri<   s   

"z-TestDataUtils.test_bucket_and_object_from_uric                 C   sl   t dtjddksJ t dtjddksJ tt t d W d   dS 1 s/w   Y  dS )	z'Test converting an AIS endpoint to dir.zhttp://local:123local123zhttp://1.2.3.4:567z1.2.3.4567z	local:123N)r   r   r   r   r&   r'   r(   r!   r   r   r   test_ais_endpoint_to_dirJ   s
   
"z&TestDataUtils.test_ais_endpoint_to_dirc              	   C   s   t ddd  t dksJ W d   n1 sw   Y  t ddd 4 t ddd  t  t du s<J W d   n1 sFw   Y  W d   dS W d   dS 1 s^w   Y  dS )r
   zshutil.whichc                 S   s   dS )N/test/path/aisr   xr   r   r   <lambda>V       z/TestDataUtils.test_ais_binary.<locals>.<lambda>r.   Nc                 S   s   d S )Nr   r/   r   r   r   r1   Z   r2   zos.path.isfile)r   r   r   cache_clearr!   r   r   r   test_ais_binaryS   s   $PzTestDataUtils.test_ais_binaryN)__name__
__module____qualname__r&   markunitr    r"   r)   r-   r4   r   r   r   r   r	      s    

	

r	   )r   unittestr   r&   nemor   r   nemo.utils.data_utilsr   r   r   r   r   r	   r   r   r   r   <module>   s   	