o
    ^"<f¼S  ã                   @   s´   d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ G dd„ deƒZG d	d
„ d
eƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZdS )é    N)ÚFileListingÚ
FileObject)ÚVERSIONS©Úsite)Úpatch)ÚFilebrowserTestCasec                       s@   e Zd Z‡ fdd„Zedeƒdd„ ƒZedeƒdd„ ƒZ‡  Z	S )ÚFileObjectPathTestsc                    ó"   t t| ƒ ¡  t | j| j¡ d S ©N)Úsuperr	   ÚsetUpÚshutilÚcopyÚSTATIC_IMG_PATHÚFOLDER_PATH©Úself©Ú	__class__© úF/var/www/html/kck/venv/lib/python3.10/site-packages/tests/test_base.pyr      ó   zFileObjectPathTests.setUpúfilebrowser.base.os.pathc                 C   ó,   t dtd}|  |jd¡ |  |jd¡ dS )úP
        Use ntpath to test windows paths independently from current os
        z!_test\uploads\folder\testfile.jpgr   zfolder\testfile.jpgÚfolderN©r   r   ÚassertEqualÚpath_relative_directoryÚdirname©r   Úfr   r   r   Útest_windows_paths   ó   z&FileObjectPathTests.test_windows_pathsc                 C   r   )úQ
        Use posixpath to test posix paths independently from current os
        z!_test/uploads/folder/testfile.jpgr   zfolder/testfile.jpgr   Nr   r!   r   r   r   Útest_posix_paths    r$   z$FileObjectPathTests.test_posix_paths)
Ú__name__Ú
__module__Ú__qualname__r   r   Úntpathr#   Ú	posixpathr&   Ú__classcell__r   r   r   r   r	      s    
	r	   c                       s\   e Zd Z‡ fdd„Zedeƒdd„ ƒZedeƒdd„ ƒZedeƒedd	ƒd
d„ ƒƒZ	‡  Z
S )ÚFileObjectUnicodeTestsc                    r
   r   )r   r-   r   r   r   r   r   r   r   r   r   r   -   r   zFileObjectUnicodeTests.setUpr   c                 C   r   )r   u$   _test\uploads\$%^&*\æ¸¬è©¦æ–‡ä»¶.jpgr   u   $%^&*\æ¸¬è©¦æ–‡ä»¶.jpgú$%^&*Nr   r!   r   r   r   r#   1   r$   z)FileObjectUnicodeTests.test_windows_pathsc                 C   r   )r%   u$   _test/uploads/$%^&*/æ¸¬è©¦æ–‡ä»¶.jpgr   u   $%^&*/æ¸¬è©¦æ–‡ä»¶.jpgr.   Nr   r!   r   r   r   r&   ;   r$   z'FileObjectUnicodeTests.test_posix_pathsú filebrowser.namers.VERSION_NAMERúfilebrowser.namers.OptionsNamerc                 C   sJ   t j | jd¡}d}t | j|¡ t|td}| 	d¡}|  
|j|¡ d S )Nu   æ¸¬è©¦æ–‡ä»¶.jpgu   æ¸¬è©¦æ–‡ä»¶_large--680x0.jpgr   Úlarge)ÚosÚpathÚjoinr   r   r   r   r   r   Úversion_generater   Úfilename)r   Úpath_unicodeÚexpectedr"   Úversionr   r   r   Ú"test_unicode_options_namer_versionE   s   
z9FileObjectUnicodeTests.test_unicode_options_namer_version)r'   r(   r)   r   r   r*   r#   r+   r&   r:   r,   r   r   r   r   r-   +   s    
	
	r-   c                       sˆ   e Zd Z‡ fdd„Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Ze	ddgƒdd„ ƒZ
e	ddgƒdd„ ƒZe	ddgƒdd„ ƒZdd„ Z‡  ZS )ÚFileObjectAttributeTestsc                    r
   r   )r   r;   r   r   r   r   r   r   r   r   r   r   S   r   zFileObjectAttributeTests.setUpc                 C   ót   |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjd¡ dS ©z¶
        FileObject init attributes

        # path
        # head
        # filename
        # filename_lower
        # filename_root
        # extension
        # mimetype
        ú"_test/uploads/folder/testimage.jpgú_test/uploads/folderútestimage.jpgÚ	testimagez.jpg)z
image/jpegNN©	r   ÚF_IMAGEr3   Úheadr6   Úfilename_lowerÚfilename_rootÚ	extensionÚmimetyper   r   r   r   Útest_init_attributesW   s   z-FileObjectAttributeTests.test_init_attributesc                 C   sh   |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjddg¡ |   | jjg ¡ dS )zš
        FileObject general attributes

        # filetype
        # format
        # filesize
        # date
        # datetime
        # exists
        ÚImagei•F TÚfileÚimageN)r   rC   ÚfiletypeÚfilesizeÚexistsÚformatÚF_FOLDERr   r   r   r   Útest_general_attributesk   s   z0FileObjectAttributeTests.test_general_attributesc                 C   sN  |   | jjd¡ |   | jjd¡ |   | jjtj tjj	tj
d¡¡ |   | jjd¡ |   | jjtj | jj¡¡ |   | jjd¡ |   | jjd¡ |   | jjtj tjj	tj
d¡¡ |   | jjd¡ |   | jjtj | jj¡¡ |   | jjd¡ |   | jjd¡ |   | jjtj tjj	tj
d¡¡ |   | jjd¡ |   | jjtj | jj¡¡ dS )	z¥
        FileObject path and url attributes

        # path (see init)
        # path_relative_directory
        # path_full
        # dirname
        # url
        r>   úfolder/testimage.jpgr   r?   Ú ú_test/uploads/folder/subfolderúfolder/subfolderN)r   rC   r3   r   Ú	path_fullr2   r4   r   ÚstorageÚlocationÚ	directoryr    ÚurlrQ   ÚF_SUBFOLDERr   r   r   r   Útest_path_url_attributes   s   """ z1FileObjectAttributeTests.test_path_url_attributesc                 C   sT   |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjd¡ dS )z
        FileObject image attributes

        # dimensions
        # width
        # height
        # aspectratio
        # orientation
        )éè  éî  r^   r_   gUUUUUUõ?Ú	LandscapeN)r   rC   Ú
dimensionsÚwidthÚheightÚaspectratioÚorientationr   r   r   r   Útest_image_attributes    s
   
z.FileObjectAttributeTests.test_image_attributesc                 C   sÄ   |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjd¡ dS )z¹
        FileObject folder attributes

        # directory (deprecated) > path_relative_directory
        # folder (deprecated) > dirname
        # is_folder
        # is_empty
        rS   r   FrT   TrV   N)r   rC   r   r    Ú	is_folderÚis_emptyrQ   r\   r   r   r   r   Útest_folder_attributes°   s   
z/FileObjectAttributeTests.test_folder_attributesúfilebrowser.base.ADMIN_VERSIONSr1   c                 C   s"  t dd„ t ¡ D ƒƒ}dg}|  | jjd¡ |  | jjj| jj¡ |  | jjd¡ |  | j 	¡ |¡ |  | j 
¡ |¡ |  | j d¡d¡ |  | j d¡d¡ ttj tjdd¡td	}|  |jd¡ | j d¡}|  |jd¡ |  |jd
¡ |  |jd
¡ |  |jd¡ |  |jj| jj¡ dS )áE  
        FileObject version attributes/methods
        without versions_basedir

        # is_version
        # original
        # original_filename
        # versions_basedir
        # versions
        # admin_versions
        # version_name(suffix)
        # version_path(suffix)
        # version_generate(suffix)
        c                 S   ó   g | ]}d   |¡‘qS ©z'_test/_versions/folder/testimage_{}.jpg©rP   ©Ú.0Únamer   r   r   Ú
<listcomp>Ü   ó    zFFileObjectAttributeTests.test_version_attributes_1.<locals>.<listcomp>ú*_test/_versions/folder/testimage_large.jpgFú_test/_versions/r1   útestimage_large.jpgr   r   Tr@   N©Úsortedr   Úkeysr   rC   Ú
is_versionÚoriginalr3   Úversions_basedirÚversionsÚadmin_versionsÚversion_nameÚversion_pathr   r2   r4   r   rZ   rO   r5   Úoriginal_filename©r   Úversion_listÚadmin_version_listÚ	f_versionr   r   r   Útest_version_attributes_1Ë   s"   z2FileObjectAttributeTests.test_version_attributes_1c                 C   óB  t dd„ t ¡ D ƒƒ}dg}|  | jjd¡ |  | jjj| jj¡ |  | jjd¡ |  | j 	¡ |¡ |  | j 
¡ |¡ |  | j d¡d¡ |  | j d¡d¡ ttj tjdd¡td	}|  |jd¡ | j d¡}|  |jd¡ |  |jd
¡ |  |jd
¡ |  |jd¡ |  |jj| jj¡ |  | 	¡ g ¡ |  | 
¡ g ¡ dS )a#  
        FileObject version attributes/methods
        with versions_basedir

        # is_version
        # original
        # original_filename
        # versions_basedir
        # versions
        # admin_versions
        # version_name(suffix)
        # version_generate(suffix)
        c                 S   rl   rm   rn   ro   r   r   r   rr     rs   zFFileObjectAttributeTests.test_version_attributes_2.<locals>.<listcomp>rt   Fru   r1   rv   r   r   Tr@   Nrw   r‚   r   r   r   Útest_version_attributes_2ó   s&   z2FileObjectAttributeTests.test_version_attributes_2c                 C   r‡   )a/  
        FileObject version attributes/methods
        with alternative versions_basedir

        # is_version
        # original
        # original_filename
        # versions_basedir
        # versions
        # admin_versions
        # version_name(suffix)
        # version_generate(suffix)
        c                 S   rl   rm   rn   ro   r   r   r   rr   ,  rs   zFFileObjectAttributeTests.test_version_attributes_3.<locals>.<listcomp>rt   Fru   r1   rv   r   r   Tr@   Nrw   r‚   r   r   r   Útest_version_attributes_3  s&   z2FileObjectAttributeTests.test_version_attributes_3c                 C   s¼   t tj tjdd¡td}|  |jd¡ | j 	d¡}| j 	d¡}|  |jd¡ |  |jd¡ |  |jd¡ |  |jd	¡ | j 
¡  |  tj |j¡d¡ | j ¡  |  tj |j¡d¡ d
S )zw
        FileObject delete methods

        # delete
        # delete_versions
        # delete_admin_versions
        r   rv   r   Fr1   Úadmin_thumbnailTrt   z4_test/_versions/folder/testimage_admin_thumbnail.jpgN)r   r2   r3   r4   r   rZ   r   rO   rC   r5   Údelete_admin_versionsrX   Údelete_versions)r   r…   Úf_version_thumbr   r   r   Útest_deleteD  s   


z$FileObjectAttributeTests.test_delete)r'   r(   r)   r   rI   rR   r]   rf   ri   r   r†   rˆ   r‰   rŽ   r,   r   r   r   r   r;   Q   s    


'

'
(r;   c                       s@   e Zd ZdZ‡ fdd„Zdd„ Zdd„ Zdd	„ Zd
d„ Z‡  Z	S )ÚFileListingTestsz˜
    /_test/uploads/testimage.jpg
    /_test/uploads/folder/
    /_test/uploads/folder/subfolder/
    /_test/uploads/folder/subfolder/testimage.jpg
    c                    s^   t t| ƒ ¡  t| jddd| _ttj | jddd¡ƒ| _	t
 | j| j¡ t
 | j| j¡ d S )NÚdateÚdesc)Ú
sorting_byÚsorting_orderr   Ú	subfolderr@   )r   r   r   r   Ú	DIRECTORYÚF_LISTING_FOLDERr2   r3   r4   ÚF_LISTING_IMAGEr   r   r   ÚSUBFOLDER_PATHÚDIRECTORY_PATHr   r   r   r   r   i  s
   zFileListingTests.setUpc                 C   sD   |   | jjd¡ |   | jjd¡ |   | jjd¡ |   | jjd¡ dS )z€
        FileListing init attributes

        # path
        # filter_func
        # sorting_by
        # sorting_order
        z_test/uploads/Nr   r‘   )r   r–   r3   Úfilter_funcr’   r“   r   r   r   r   rI   r  s   
z%FileListingTests.test_init_attributesc                 C   óœ   |   | j ¡ g ¡ |   t| j ¡ ƒddg¡ |   tdd„ | j ¡ D ƒƒddg¡ |   tdd„ | j ¡ D ƒƒddg¡ |   | j ¡ d¡ |   | j ¡ d¡ d	S )
ú¹
        FileObject listing

        # listing
        # files_listing_total
        # files_listing_filtered
        # results_listing_total
        # results_listing_filtered
        r   r@   c                 s   ó    | ]}|j V  qd S r   ©r3   ©rp   r"   r   r   r   Ú	<genexpr>Ž  ó   € z0FileListingTests.test_listing.<locals>.<genexpr>ú_test/uploads/testimage.jpgr?   c                 s   r   r   rž   rŸ   r   r   r   r      r¡   é   N©	r   r—   ÚlistingÚlistr–   Úfiles_listing_totalÚfiles_listing_filteredÚresults_listing_totalÚresults_listing_filteredr   r   r   r   Útest_listing  ó   $$zFileListingTests.test_listingc                 C   r›   )
rœ   r   r@   c                 s   r   r   rž   rŸ   r   r   r   r       r¡   z9FileListingTests.test_listing_filtered.<locals>.<genexpr>r¢   r?   c                 s   r   r   rž   rŸ   r   r   r   r    ¡  r¡   r£   Nr¤   r   r   r   r   Útest_listing_filtered“  r¬   z&FileListingTests.test_listing_filteredc                 C   sœ   |   | j ¡ g ¡ |   t| j ¡ ƒg d¢¡ |   tdd„ | j ¡ D ƒƒg d¢¡ |   tdd„ | j ¡ D ƒƒg d¢¡ |   | j ¡ d¡ |   | j ¡ d¡ dS )z§
        FileObject walk

        # walk
        # files_walk_total
        # files_walk_filtered
        # results_walk_total
        # results_walk_filtered
        )zfolder/subfolder/testimage.jpgrV   r   r@   c                 s   r   r   rž   rŸ   r   r   r   r    ²  r¡   z-FileListingTests.test_walk.<locals>.<genexpr>)r¢   r?   rU   z,_test/uploads/folder/subfolder/testimage.jpgc                 s   r   r   rž   rŸ   r   r   r   r    ³  r¡   é   N)	r   r—   Úwalkr¦   r–   Úfiles_walk_totalÚfiles_walk_filteredÚresults_walk_totalÚresults_walk_filteredr   r   r   r   Ú	test_walk¥  r¬   zFileListingTests.test_walk)
r'   r(   r)   Ú__doc__r   rI   r«   r­   r´   r,   r   r   r   r   r   a  s    	r   c                       s„   e Zd Zdddddœdddddœdd	dddœd
œZdgZ‡ fdd„Zeddƒdd„ ƒZeddƒedeƒedeƒdd„ ƒƒƒZ‡  Z	S )ÚFileObjecNamerTestszThumbnail (1 col)é<   Úcrop)Úverbose_namerb   rc   ÚoptszSmall (2 col)éŒ   rT   zLarge (8 col)i¨  )Ú	thumbnailÚsmallr1   r1   c                    r
   r   )r   r¶   r   r   r   r   r   r   r   r   r   r   Á  r   zFileObjecNamerTests.setUpr/   r0   c                 C   r<   r=   rB   r   r   r   r   rI   Å  s   z(FileObjecNamerTests.test_init_attributeszfilebrowser.base.VERSIONSrj   c                 C   s  t g d¢ƒ}dg}|  | jjd¡ |  | jjj| jj¡ |  | jjd¡ |  | j ¡ |¡ |  | j ¡ |¡ |  | j 	d¡d¡ |  | j 
d¡d¡ ttj tjdd¡td}|  |jd¡ | j d¡}|  |jd¡ |  |jd	¡ |  |jd	¡ |  |jd
¡ |  |jj| jj¡ dS )rk   )ú1_test/_versions/folder/testimage_large--680x0.jpgz1_test/_versions/folder/testimage_small--140x0.jpgz@_test/_versions/folder/testimage_thumbnail--60x60--opts-crop.jpgr¾   Fru   r1   ztestimage_large--680x0.jpgr   r   Tr@   N)rx   r   rC   rz   r{   r3   r|   r}   r~   r   r€   r   r2   r4   r   rZ   rO   r5   r   r‚   r   r   r   Ú*test_version_attributes_with_options_namerÚ  s"   z>FileObjecNamerTests.test_version_attributes_with_options_namer)
r'   r(   r)   ÚPATCH_VERSIONSÚPATCH_ADMIN_VERSIONSr   r   rI   r¿   r,   r   r   r   r   r¶   ¸  s    ý
r¶   )r*   r2   r+   r   Úfilebrowser.baser   r   Úfilebrowser.settingsr   Úfilebrowser.sitesr   Úmockr   Útestsr   ÚTestCaser	   r-   r;   r   r¶   r   r   r   r   Ú<module>   s    &  W