o
    ¹iº  ã                   @   sf   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 G dd„ dej	ƒZ
edkr1e ¡  dS dS )é    N)Ú
GoogleAuth)ÚGoogleDrive)Ú	test_utilc                   @   sh   e Zd ZdZedƒZe ¡  eeƒZdd„ Z	dd„ Z
dd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚGoogleDriveFileListTestzgTests operations of files.GoogleDriveFileList class.
  Equivalent to Files.list in Google Drive API.
  zsettings/test1.yamlc                 C   sd   t | jƒ}| dd| j i¡}| ¡ }| jD ]}d}|D ]}|d |d kr(d}q|  |d¡ qd S )NÚqú title = '%s' and trashed = falseFÚidT)r   ÚgaÚListFileÚtitleÚGetListÚ	file_listÚassertEqual)ÚselfÚdriveÚflistÚfilesÚfile1ÚfoundÚfile2© r   úU/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pydrive/test/test_filelist.pyÚtest_01_Files_List_GetList   s   
ÿ
€ûz2GoogleDriveFileListTest.test_01_Files_List_GetListc                 C   sˆ   t | jƒ}| d| j ddœ¡}g }|D ]}|  t|ƒdk¡ | |¡ q| jD ]}d}|D ]}|d |d kr:d}q.|  |d¡ q(d S )Nr   é   ©r   Ú
maxResultsFr   T)	r   r	   r
   r   Ú
assertTrueÚlenÚextendr   r   ©r   r   r   r   Úxr   r   r   r   r   r   Útest_02_Files_List_ForLoop   s    
ÿ
€ûz2GoogleDriveFileListTest.test_02_Files_List_ForLoopc                 C   s¢   t | jƒ}| d| j ddœ¡}g }	 z| ¡ }|  t|ƒdk¡ | |¡ W n	 ty0   Y nw q| j	D ]}d}|D ]}|d |d krGd}q;|  
|d¡ q5d S )Nr   r   r   TFr   )r   r	   r
   r   r   r   r   r   ÚStopIterationr   r   r   r   r   r   Ú"test_03_Files_List_GetList_Iterate.   s,   
ÿÿû
€ûz:GoogleDriveFileListTest.test_03_Files_List_GetList_Iteratec                 C   s€   t | jƒ}| d| jdœ¡}| ¡  | j |¡ | dd| j i¡}d}|D ]}|D ]}|  |¡ |d7 }q*q&|  	|dk¡ d S )Nz"application/vnd.google-apps.folder)ÚmimeTyper   r   r   r   é   é   )
r   r	   Ú
CreateFiler   ÚUploadr   Úappendr
   ÚassertFileInFileListr   )r   r   Úfolder1r   ÚcountÚ_flistr   r   r   r   Útest_File_List_FoldersA   s$   
ÿÿÿ

þz.GoogleDriveFileListTest.test_File_List_Foldersc                 C   sP   t  ¡ }g }tddƒD ]}| j ¡ }||d< | ¡  | |¡ q|| _|| _d S )Nr   é
   r   )	r   ÚCreateRandomFileNameÚranger   r'   r(   r)   r   r   )r   r   r   r    r   r   r   r   ÚsetUpU   s   

zGoogleDriveFileListTest.setUpc                 C   s   | j D ]}| ¡  qd S ©N)r   ÚDelete)r   r   r   r   r   ÚtearDowna   s   

ÿz GoogleDriveFileListTest.tearDownc                 C   s4   d}| j D ]}|d |d krd}q|  |d¡ d S )NFr   T)r   r   )r   Úfile_objectr   r   r   r   r   r*   f   s   
€z,GoogleDriveFileListTest.assertFileInFileListc                 C   s&   zt  |¡ W d S  ty   Y d S w r3   )ÚosÚremoveÚOSError)r   Ú	file_namer   r   r   ÚDeleteOldFilem   s
   ÿz%GoogleDriveFileListTest.DeleteOldFileN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r	   ÚLocalWebserverAuthr   r   r   r!   r#   r.   r2   r5   r*   r;   r   r   r   r   r      s    r   Ú__main__)r7   ÚsysÚunittestÚpydrive.authr   Úpydrive.driver   Úpydrive.testr   ÚTestCaser   r<   Úmainr   r   r   r   Ú<module>   s   hÿ