o
    ^"<f6                     @   s
  d dl mZ d dlZd dlZd dlZd dlmZ zd dlmZ W n
   d dl	mZ Y d dl
mZ d dlmZ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G dd deZG dd deZdS )    )with_statementN)reverse)	urlencode)patch)VERSIONSDEFAULT_PERMISSIONS)
FileObjectsite)FilebrowserTestCasec                       s4   e Zd Z fddZdd Zdd Zdd Z  ZS )	BrowseViewTestsc                    0   t t|   td| _| jj| jjdd d S )Nzfilebrowser:fb_browsepasswordusernamer   )	superr   setUpr   urlclientloginuserr   self	__class__ G/var/www/html/kck/venv/lib/python3.10/site-packages/tests/test_sites.pyr         
zBrowseViewTests.setUpc                 C   sT   | j | j}| |jdk | ddd |jD v  | tj|jd jk d S )N   zfilebrowser/index.htmlc                 S      g | ]}|j qS r   name.0tr   r   r   
<listcomp>       z,BrowseViewTests.test_get.<locals>.<listcomp>filebrowser_site)	r   getr   
assertTruestatus_code	templatesr
   	directorycontextr   responser   r   r   test_get   s   zBrowseViewTests.test_getc                 C   s   t | j| j | tj| jj	dgdgf | j
| jd }| t|jd jd | j
| jd }| t|jd jd d S )N	subfoldertestimage.jpgz?dir=folderpage   z?dir=folder&type=document   )shutilcopySTATIC_IMG_PATHFOLDER_PATHassertEqualr
   storagelistdirF_FOLDERpathr   r(   r   lenr-   object_listr.   r   r   r   test_filter#   s    zBrowseViewTests.test_filterc                 C   s^   | j | jddddd}| |jdk | |d | |d | |d	 | |d
 dS )z
        The CKEditor GET params must be included in the search form as hidden
        inputs so they persist after searching.
        3imageid_body1)poptypeCKEditorCKEditorFuncNumr   z,<input type="hidden" name="pop" value="3" />z1<input type="hidden" name="type" value="image" />z7<input type="hidden" name="CKEditor" value="id_body" />z8<input type="hidden" name="CKEditorFuncNum" value="1" />N)r   r(   r   r)   r*   assertContainsr.   r   r   r   #test_ckeditor_params_in_search_form,   s   
z3BrowseViewTests.test_ckeditor_params_in_search_form)__name__
__module____qualname__r   r0   rA   rK   __classcell__r   r   r   r   r      s
    		r   c                       $   e Zd Z fddZdd Z  ZS )CreateDirViewTestsc                    r   )Nzfilebrowser:fb_createdirr   r   )	r   rQ   r   r   r   r   r   r   r   r   r   r   r   r   @   r   zCreateDirViewTests.setUpc                 C   sT   |  tj| j | j| jd| jj	i}| 
|jdk | 
tj| j d S )Nr!   .  )assertFalser
   r;   existsCREATEFOLDER_PATHr   postr   F_CREATEFOLDERpath_relative_directoryr)   r*   r.   r   r   r   	test_postE   s   zCreateDirViewTests.test_post)rL   rM   rN   r   rY   rO   r   r   r   r   rQ   ?       rQ   c                       rP   )UploadViewTestsc                    r   )Nzfilebrowser:fb_uploadr   r   )	r   r[   r   r   r   r   r   r   r   r   r   r   r   r   M   r   zUploadViewTests.setUpc                 C   sF   | j | jd| jji}| |jdk | ddd |jD v  d S )Nr!   r   zfilebrowser/upload.htmlc                 S   r   r   r    r"   r   r   r   r%   U   r&   z,UploadViewTests.test_get.<locals>.<listcomp>)r   r(   r   rW   rX   r)   r*   r+   r.   r   r   r   r0   R   s   zUploadViewTests.test_getrL   rM   rN   r   r0   rO   r   r   r   r   r[   L   rZ   r[   c                       s   e Zd Z fddZdd Zedddd Zed	d
dd Zed	ddd Zeddedddd Z	edd
edddd Z
eddedd
dd Zedd
edd
dd Z  ZS )UploadFileViewTestsc                    sP   t t|   td| _d| jt| jjddg| _	| j
j| jjdd d S )Nfilebrowser:fb_do_upload?TEST_IMAGE_000.jpg)folderqqfiler   r   )r   r]   r   r   r   joinr   F_SUBFOLDERrX   url_bad_namer   r   r   r   r   r   r   r   r   Y   s   
 zUploadFileViewTests.setUpc           	      C   sH  t j| jjd}| tj| d| jt	d| jj
ig}t| jd}t j|j}| jj|d|ddd}W d    n1 sDw   Y  | |jdk t|jd	}| |d
 d | |d d  t|td| _| tj| | |tj|k td urtt}tt | jjjd@ }| ||k d S d S )Nr2   r_   ra   rbrb   fileXMLHttpRequestdataHTTP_X_REQUESTED_WITHr   utf-8filenametemp_filenamer	     ) osr>   rc   rd   rS   r
   r;   rT   r   r   rX   openr8   getsizer!   r   rV   r)   r*   jsonloadscontentdecoder:   r   testfilesizer   octstat	path_fullst_mode	r   uploaded_pathr   f	file_sizer/   rk   permissions_defaultpermissions_filer   r   r   rY   `   s&   zUploadFileViewTests.test_postz filebrowser.sites.UPLOAD_TEMPDIRz_test/tempfolderc           	      C   s`  t j| jjd}| tj| td}d|t	| jj
dddg}t| jd}t j|j}| jj|d|ddd	}W d
   n1 sIw   Y  | |jdk t|jd}| |d d | |d t j| jj
d t|td| _| tj| | |tj|k td
urtt}tt | jjjd@ }| ||k d
S d
S )zv
        Test the temporary upload (used with the FileBrowseUploadField)

        TODO: This is undocumented.
        r2   r^   r_   true)ra   rb   	temporaryrf   rg   ri   rj   Nr   rm   rn   ro   r	   rp   ) rq   r>   rc   F_TEMPFOLDERrS   r
   r;   rT   r   r   rX   rr   r8   rs   r!   r   rV   r)   r*   rt   ru   rv   rw   r:   r   rx   ry   r   rz   r{   r|   r}   r~   r   r   r   test_do_temp_upload   s(   z'UploadFileViewTests.test_do_temp_uploadz$filebrowser.sites.OVERWRITE_EXISTINGTc                 C   s   t | j| j | tj| jj	g dgf d
| jtd| jjig}t| jd}| jj|d|ddd W d    n1 sBw   Y  | tj| jj	g dgf d S )Nr2   r_   ra   rf   rg   ri   rj   )r6   r7   r8   SUBFOLDER_PATHr:   r
   r;   r<   rd   r>   rc   r   r   rX   rr   r   rV   r   r   r   r   r   r   test_overwrite_existing_true   s   "z0UploadFileViewTests.test_overwrite_existing_trueFc                 C   s   t | j| j | tj| jj	g dgf d
| jtd| jjig}t| jd}| jj|d|ddd W d    n1 sBw   Y  | ttj| jj	d d	 d S )
Nr2   r_   ra   rf   rg   ri   rj   r5   r4   )r6   r7   r8   r   r:   r
   r;   r<   rd   r>   rc   r   r   rX   rr   r   rV   r?   r   r   r   r   test_overwrite_existing_false   s   $z1UploadFileViewTests.test_overwrite_existing_falsez"filebrowser.utils.CONVERT_FILENAMEz$filebrowser.utils.NORMALIZE_FILENAMEc                 C   j   t | jd%}| jj| jd|ddd | tj| j	j
g dgf W d    d S 1 s.w   Y  d S Nrf   r`   rg   ri   rj   rr   STATIC_IMG_BAD_NAME_PATHr   rV   re   r:   r
   r;   r<   rd   r>   r   r   r   r   r   "test_convert_false_normalize_false       "z6UploadFileViewTests.test_convert_false_normalize_falsec                 C   j   t | jd%}| jj| jd|ddd | tj| j	j
g dgf W d    d S 1 s.w   Y  d S Nrf   r`   rg   ri   rj   ztest_image_000.jpgr   r   r   r   r   !test_convert_true_normalize_false   r   z5UploadFileViewTests.test_convert_true_normalize_falsec                 C   r   r   r   r   r   r   r   !test_convert_false_normalize_true   r   z5UploadFileViewTests.test_convert_false_normalize_truec                 C   r   r   r   r   r   r   r    test_convert_true_normalize_true   r   z4UploadFileViewTests.test_convert_true_normalize_true)rL   rM   rN   r   rY   r   r   r   r   r   r   r   r   rO   r   r   r   r   r]   X   s*    
&

r]   c                       rP   )DetailViewTestsc                    @   t t|   td| _| jj| jjdd t	
| j| j d S )Nzfilebrowser:fb_detailr   r   )r   r   r   r   r   r   r   r   r   r6   r7   r8   r9   r   r   r   r   r         
zDetailViewTests.setUpc                 C   s,  | j | j| jj| jjd}| |jdk g }tD ]}| j	|}|
| | tj| qd| jt| jj| jjdg}| j |ddi}| |jdk | tjtj| jjd ttj| jjdtd| _|D ]}| tj| qttD ]}| j	|}| tj| qdS )	zM Check the detail view and version generation. Check also renaming of files. dirrn   r   r_   r!   ztestpic.jpgrR   r	   N)r   r(   r   F_IMAGEdirnamern   r)   r*   r   version_pathappendr
   r;   rT   rc   r   rV   rq   r>   headr   rS   )r   r/   pre_rename_versionsversion_suffixr>   r   r   r   r   r0      s$   
" zDetailViewTests.test_getr\   r   r   r   r   r          r   c                       rP   )DeleteConfirmViewTestsc                    r   )Nzfilebrowser:fb_delete_confirmr   r   )r   r   r   r   r   r   r   r   r   r6   r7   r8   r9   r   r   r   r   r     r   zDeleteConfirmViewTests.setUpc                 C   sL   | j | j| jj| jjd}| |jdk | ddd |jD v  dS )zv Check that the delete view functions as expected. Does not check the deletion itself, that happens in test_delete(). r   r   zfilebrowser/delete_confirm.htmlc                 S   r   r   r    r"   r   r   r   r%     r&   z3DeleteConfirmViewTests.test_get.<locals>.<listcomp>N)	r   r(   r   r   r   rn   r)   r*   r+   r.   r   r   r   r0     s   zDeleteConfirmViewTests.test_getr\   r   r   r   r   r     r   r   c                       rP   )DeleteViewTestsc                    r   )Nzfilebrowser:fb_deleter   r   )r   r   r   r   r   r   r   r   r   r6   r7   r8   r9   r   r   r   r   r     r   zDeleteViewTests.setUpc                 C   s   g }t D ]}|| j| q| j| j| jj| jjd}| 	|j
dk | tj| jj |D ]}| tj|j q4dS )z
        Generate all versions for the uploaded file and attempt a deletion of that file.
        Finally, attempt a deletion of the tmp dir.
        r   rR   N)r   r   r   version_generater   r(   r   r   rn   r)   r*   rS   r
   r;   rT   r>   )r   versionsr   r/   versionr   r   r   r0     s   zDeleteViewTests.test_getr\   r   r   r   r   r     r   r   )
__future__r   rq   rt   r6   django.urlsr   #django.utils.six.moves.urllib.parser   django.utils.httpmockr   filebrowser.settingsr   r   filebrowser.baser   filebrowser.sitesr
   testsr   TestCaser   rQ   r[   r]   r   r   r   r   r   r   r   <module>   s,   + +