U
    {®ÞhX$  ã                   @   sŽ   d dl Z d dlmZ d dlmZmZmZ d dlmZ d dl	m
Z
 ddlmZ G dd	„ d	eeƒZG d
d„ deeƒZG dd„ deeƒZdZdZdS )é    N)Úreverse)ÚTestImageDetailÚTestImageListingÚTestImageListingSearch)Úget_image_model)Úget_test_image_fileé   )ÚAdminAPITestCasec                   @   sr   e Zd Zdg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d„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestAdminImageListingúdemosite.jsonc                 K   s   | j  tdƒ|¡S ©Nzwagtailadmin_api:images:listing©ÚclientÚgetr   ©ÚselfÚparams© r   úk/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/admin/tests/api/test_images.pyÚget_response   s    z"TestAdminImageListing.get_responsec                 C   s   dd„ |d D ƒS )Nc                 S   s   g | ]}|d  ‘qS ©Úidr   ©Ú.0Úimager   r   r   Ú
<listcomp>   s     z;TestAdminImageListing.get_image_id_list.<locals>.<listcomp>Úitemsr   ©r   Úcontentr   r   r   Úget_image_id_list   s    z'TestAdminImageListing.get_image_id_listc                 C   s.  |   ¡ }|  |jd¡ |  |d d¡ t |j d¡¡}|  d|¡ |  |d t	¡ |  d|d ¡ |  |d d t
¡ |  |d d tƒ j ¡ ¡ |  d|¡ |  |d t¡ |d D ]p}|  d|¡ |  |d t	¡ |  t|d  ¡ ƒdd	d
dh¡ |  |d d d¡ |  |d d	 d|d  ¡ q¸d S )NéÈ   úContent-typeúapplication/jsonúUTF-8ÚmetaZtotal_countr   ÚtypeÚ
detail_urlÚtagsÚdownload_urlúwagtailimages.Imagez*http://localhost/admin/api/main/images/%d/r   )r   ÚassertEqualÚstatus_codeÚjsonÚloadsr   ÚdecodeÚassertInÚassertIsInstanceÚdictÚintr   ÚobjectsÚcountÚlistÚsetÚkeys©r   Úresponser   r   r   r   r   Ú
test_basic   s4    
 
ÿ
þ

þz TestAdminImageListing.test_basicc              
   C   sl   |   ¡ }t |j d¡¡}|d D ]D}|  t| ¡ ƒddddddh¡ |  t|d  ¡ ƒd	d
ddh¡ q"d S )Nr#   r   r   r$   ÚtitleÚwidthÚheightÚ	thumbnailr%   r&   r(   r'   ©r   r,   r-   r   r.   r*   r6   r7   r8   r   r   r   Útest_fields_defaultG   s    
þ
þz)TestAdminImageListing.test_fields_defaultc              
   C   sp   | j dd}t |j d¡¡}|d D ]D}|  t| ¡ ƒddddd	d
h¡ |  t|d  ¡ ƒddddh¡ q&d S )Nzwidth,height©Úfieldsr#   r   r   r$   r;   r<   r=   r>   r%   r&   r(   r'   r?   r8   r   r   r   Útest_fieldsU   s    
þ
þz!TestAdminImageListing.test_fieldsc              	   C   sN   | j dd}t |j d¡¡}|d D ]"}|  t| ¡ ƒddddd	h¡ q&d S )
Nz-titlerA   r#   r   r   r$   r<   r=   r>   r?   r8   r   r   r   Útest_remove_fieldsc   s    
 ÿz(TestAdminImageListing.test_remove_fieldsc              
   C   sn   | j dd}t |j d¡¡}|d D ]B}|  t| ¡ ƒddddd	d
h¡ |  t|d  ¡ ƒdddh¡ q&d S )Nz-tagsrA   r#   r   r   r$   r;   r<   r=   r>   r%   r&   r(   r?   r8   r   r   r   Útest_remove_meta_fieldsl   s    
þ ÿz-TestAdminImageListing.test_remove_meta_fieldsc              
   C   sP   | j dd}t |j d¡¡}|d D ]$}|  t| ¡ ƒddddd	d
h¡ q&d S )Nz-type,-detail_url,-tagsrA   r#   r   r   r;   r<   r=   r>   r$   r?   r8   r   r   r   Útest_remove_all_meta_fieldsy   s    
þz1TestAdminImageListing.test_remove_all_meta_fieldsc              	   C   sN   | j dd}t |j d¡¡}|d D ]"}|  t| ¡ ƒddddd	h¡ q&d S )
Nz-idrA   r#   r   r$   r;   r<   r=   r>   r?   r8   r   r   r   Útest_remove_id_fieldƒ   s    
 ÿz*TestAdminImageListing.test_remove_id_fieldc              
   C   sp   | j dd}t |j d¡¡}|d D ]D}|  t| ¡ ƒddddd	d
h¡ |  t|d  ¡ ƒddddh¡ q&d S )NÚ*rA   r#   r   r   r$   r;   r<   r=   r>   r%   r&   r'   r(   r?   r8   r   r   r   Útest_all_fieldsŒ   s    
þ
þz%TestAdminImageListing.test_all_fieldsc              	   C   sl   | j dd}t |j d¡¡}|d D ]@}|  t| ¡ ƒddddd	h¡ |  t|d  ¡ ƒd
ddh¡ q&d S )Nz*,-title,-tagsrA   r#   r   r   r$   r<   r=   r>   r%   r&   r(   r?   r8   r   r   r   Ú%test_all_fields_then_remove_somethingš   s    
 ÿ ÿz;TestAdminImageListing.test_all_fields_then_remove_somethingc              
   C   s„   | j dd}t |j d¡¡}|d D ]X}|  t| ¡ ƒddddd	d
h¡ |  t|d  ¡ ƒddddh¡ |  |d d t	¡ q&d S )Nr'   rA   r#   r   r   r$   r;   r<   r=   r>   r%   r&   r(   )
r   r,   r-   r   r.   r*   r6   r7   r0   r5   r8   r   r   r   Útest_fields_tags¦   s    
þ
þz&TestAdminImageListing.test_fields_tagsN)Ú__name__Ú
__module__Ú__qualname__Úfixturesr   r   r:   r@   rC   rD   rE   rF   rG   rI   rJ   rK   r   r   r   r   r
      s   ,	
	r
   c                   @   s"   e Zd ZdgZdd„ Zdd„ ZdS )ÚTestAdminImageListingSearchr   c                 K   s   | j  tdƒ|¡S r   r   r   r   r   r   r   ¹   s    z(TestAdminImageListingSearch.get_responsec                 C   s   dd„ |d D ƒS )Nc                 S   s   g | ]}|d  ‘qS r   r   r   r   r   r   r   ½   s     zATestAdminImageListingSearch.get_image_id_list.<locals>.<listcomp>r   r   r   r   r   r   r   ¼   s    z-TestAdminImageListingSearch.get_image_id_listN)rL   rM   rN   rO   r   r   r   r   r   r   rP   ¶   s   rP   c                   @   s*   e Zd ZdgZdd„ Zdd„ Zdd„ ZdS )	ÚTestAdminImageDetailr   c                 K   s   | j  td|fd|¡S )Nzwagtailadmin_api:images:detail)Úargsr   )r   Zimage_idr   r   r   r   r   Ã   s     ÿz!TestAdminImageDetail.get_responsec                 C   sV  |   d¡}|  |jd¡ |  |d d¡ t |j d¡¡}|  d|¡ |  |d d¡ |  d|¡ |  |d t	¡ |  d|d ¡ |  |d d d	¡ |  d
|d ¡ |  |d d
 d¡ |  d|¡ |  |d ddi¡ |  d|¡ |  |d d¡ |  d|¡ |  d|¡ |  |d d¡ |  |d d¡ |  d|d ¡ |  |d d g ¡ d S )Né   r    r!   r"   r#   r   r$   r%   r)   r&   z)http://localhost/admin/api/main/images/5/r>   ÚerrorZSourceImageIOErrorr;   zJames Joycer<   r=   iô  iˆ  r'   )
r   r*   r+   r,   r-   r   r.   r/   r0   r1   )r   r9   r   r   r   r   r:   È   s2    

 ÿzTestAdminImageDetail.test_basicc                 C   s’   t ƒ jjdtƒ d}|  |j¡}t |j 	d¡¡}|  
d|¡ |  |d d d¡ |  |d d d¡ |  |d d	  d
¡¡ |  d|d ¡ d S )Nz
Test image)r;   Úfiler#   r>   r<   é¥   r=   é{   Úurlz/media/images/testZsource_image_errorr$   )r   r3   Úcreater   r   r   r,   r-   r   r.   r/   r*   Z
assertTrueÚ
startswithZassertNotIn)r   r   r9   r   r   r   r   Útest_thumbnailø   s    þz#TestAdminImageDetail.test_thumbnailN)rL   rM   rN   rO   r   r:   r[   r   r   r   r   rQ   À   s   0rQ   )r,   Zdjango.urlsr   Z wagtail.api.v2.tests.test_imagesr   r   r   Zwagtail.imagesr   Zwagtail.images.tests.utilsr   Úutilsr	   r
   rP   rQ   r   r   r   r   Ú<module>   s    '
L