Ë
    T]jÁ  ã                   óz   — d dl Z d dlZd dlmZ 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mZ  G d„ d	e«      Zy)
é    N)ÚVERSION)ÚContentFile)ÚutilsÚmodels)ÚBaseTest)ÚNoSourceGenerator)ÚInvalidImageFormatErrorÚEasyThumbnailsErrorc                   ój   ‡ — e Zd Zˆ fd„Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zˆ xZS )ÚThumbnailerFieldTestc                 ó0  •— t         ‰| �  «        t        j                  «       | _        | j                  | j                  d«       dD ]M  }t        j                  j                  j                  |«      }| j                  |_        | j                  |_
        ŒO y )Núavatars/avatar.jpg)ÚavatarÚpicture)ÚsuperÚsetUpr   ÚTemporaryStorageÚstorageÚcreate_imager   Ú	TestModelÚ_metaÚ	get_fieldÚthumbnail_storage)ÚselfÚnameÚfieldÚ	__class__s      €úX/var/www/zogu/zoguvenv/lib/python3.12/site-packages/easy_thumbnails/tests/test_fields.pyr   zThumbnailerFieldTest.setUp   ss   ø€ Ü‰‰ŒÜ×-Ñ-Ó/ˆŒà×Ñ˜$Ÿ,™,Ð(<Ô=à)ò 	3ˆDÜ×$Ñ$×*Ñ*×4Ñ4°TÓ:ˆEØ ŸL™LˆEŒMØ&*§l¡lˆEÕ#ñ	3ó    c                 óV   •— | j                   j                  «        t        ‰| �  «        y )N)r   Údelete_temporary_storager   ÚtearDown)r   r   s    €r   r"   zThumbnailerFieldTest.tearDown   s   ø€ Ø�‰×-Ñ-Ô/Ü‰ÑÕr   c                 óº   — t        j                  d¬«      }|j                  j                  ddi«      }| j	                  |j
                  |j                  fd«       y )Nr   ©r   Úsize©é,  r'   )r'   éá   )r   r   r   Úgenerate_thumbnailÚassertEqualÚwidthÚheight)r   ÚinstanceÚthumbs      r   Útest_generate_thumbnailz,ThumbnailerFieldTest.test_generate_thumbnail   sI   € Ü×#Ñ#Ð+?Ô@ˆØ—‘×2Ñ2°F¸JÐ3GÓHˆØ×Ñ˜%Ÿ+™+ u§|¡|Ð4°jÕAr   c                 ó¶   ‡— t        d«      }| j                  j                  d|«       t        j                  d¬«      Šˆfd„}| j                  t        |«       y )Nú)Lorem ipsum dolor sit amet. Not an image.úavatars/invalid.jpgr$   c                  ó>   •— ‰ j                   j                  ddi«      S )Nr%   r&   )r   r)   ©r-   s   €r   ú<lambda>zHThumbnailerFieldTest.test_generate_thumbnail_bad_image.<locals>.<lambda>'   s   ø€ ˜8Ÿ?™?×=Ñ=Ø�ZÐ ó"€ r   )r   r   Úsaver   r   ÚassertRaisesr   ©r   Ú	text_fileÚgenerater-   s      @r   Ú!test_generate_thumbnail_bad_imagez6ThumbnailerFieldTest.test_generate_thumbnail_bad_image#   sL   ø€ ÜÐ KÓLˆ	Ø�‰×ÑÐ/°Ô;Ü×#Ñ#Ð+@ÔAˆó"ˆà×ÑÔ+¨XÕ6r   c                 ó¶   ‡— t        d«      }| j                  j                  d|«       t        j                  d¬«      Šˆfd„}| j                  t        |«       y )Nr1   r2   r$   c                  ó"   •— ‰ j                   d   S )NÚsmallr$   r4   s   €r   r5   zNThumbnailerFieldTest.test_generate_thumbnail_alias_bad_image.<locals>.<lambda>/   s   ø€ ˜8Ÿ?™?¨7Ñ3€ r   )r   r   r6   r   r   r7   r	   r8   s      @r   Ú'test_generate_thumbnail_alias_bad_imagez<ThumbnailerFieldTest.test_generate_thumbnail_alias_bad_image+   sJ   ø€ ÜÐ KÓLˆ	Ø�‰×ÑÐ/°Ô;Ü×#Ñ#Ð+@ÔAˆÛ3ˆØ×ÑÔ1°8Õ<r   c                 óŠ   — t        j                  d¬«      }| j                  t        |j                  j
                  ddi«       y )Nr   r$   r%   )r   r   )r   r   r7   r
   r   r)   ©r   r-   s     r   Ú&test_generate_thumbnail_alias_0x0_sizez;ThumbnailerFieldTest.test_generate_thumbnail_alias_0x0_size2   s9   € Ü×#Ñ#Ð+?Ô@ˆØ×ÑÜØ�O‰O×.Ñ.°¸Ð0@õ	Br   c                 ó  — t        j                  d¬«      }|j                  j                  }|j                  j	                  ddi«      j                  |j                  j	                  ddi«      j                  |j                  j	                  ddi«      j                  f}| j                  t        j                  j                  |«      «       |D ]0  }| j                  t        j                  j                  |«      «       Œ2 |j                  j                  d¬«       | j                  t        j                  j                  |«      «       |D ]0  }| j                  t        j                  j                  |«      «       Œ2 y )	Nr   r$   r%   r&   ©éÈ   rE   ©éd   rG   F©r6   )
r   r   r   ÚpathÚget_thumbnailÚ
assertTrueÚosÚexistsÚdeleteÚassertFalse©r   r-   Úsource_pathÚthumb_pathsrI   s        r   Útest_deletez ThumbnailerFieldTest.test_delete8   s  € Ü×#Ñ#Ð+?Ô@ˆØ—o‘o×*Ñ*ˆà�O‰O×)Ñ)¨6°:Ð*>Ó?×DÑDØ�O‰O×)Ñ)¨6°:Ð*>Ó?×DÑDØ�O‰O×)Ñ)¨6°:Ð*>Ó?×DÑDð
ˆð
 	�‰œŸ™Ÿ™ {Ó3Ô4Øò 	2ˆDØ�O‰OœBŸG™GŸN™N¨4Ó0Õ1ð	2à�‰×Ñ EÐÔ*Ø×ÑœŸ™Ÿ™¨Ó4Ô5Øò 	3ˆDØ×ÑœRŸW™WŸ^™^¨DÓ1Õ2ñ	3r   c                 ó  — t        j                  d¬«      }|j                  j                  }|j                  j	                  ddi«      j                  |j                  j	                  ddi«      j                  |j                  j	                  ddi«      j                  f}| j                  t        j                  j                  |«      «       |D ]0  }| j                  t        j                  j                  |«      «       Œ2 |j                  j                  «        | j                  t        j                  j                  |«      «       |D ]0  }| j                  t        j                  j                  |«      «       Œ2 y )Nr   r$   r%   r&   rD   rF   )
r   r   r   rI   rJ   rK   rL   rM   Údelete_thumbnailsrO   rP   s        r   Útest_delete_thumbnailsz+ThumbnailerFieldTest.test_delete_thumbnailsH   s  € Ü×#Ñ#Ð+?Ô@ˆØ—o‘o×*Ñ*ˆà�O‰O×)Ñ)¨6°:Ð*>Ó?×DÑDØ�O‰O×)Ñ)¨6°:Ð*>Ó?×DÑDØ�O‰O×)Ñ)¨6°:Ð*>Ó?×DÑDð
ˆð
 	�‰œŸ™Ÿ™ {Ó3Ô4Øò 	2ˆDØ�O‰OœBŸG™GŸN™N¨4Ó0Õ1ð	2à�‰×)Ñ)Ô+Ø�‰œŸ™Ÿ™ {Ó3Ô4Øò 	3ˆDØ×ÑœRŸW™WŸ^™^¨DÓ1Õ2ñ	3r   c                 ó  — t        j                  d¬«      }|j                  j                  ddi«       |j                  j                  ddi«       | j	                  t        t        |j                  j                  «       «      «      d«       y )Nr   r$   r%   r&   rD   é   )r   r   r   rJ   r*   ÚlenÚlistÚget_thumbnailsrA   s     r   Útest_get_thumbnailsz(ThumbnailerFieldTest.test_get_thumbnailsX   sh   € Ü×#Ñ#Ð+?Ô@ˆØ�‰×%Ñ% v¨zÐ&:Ô;Ø�‰×%Ñ% v¨zÐ&:Ô;Ø×ÑœœT (§/¡/×"@Ñ"@Ó"BÓCÓDÀaÕHr   c                 ó$  — t        j                  d¬«      }| j                  d|j                  d   j                  «       t        j                  t        j                  |«      «      }| j                  d|j                  d   j                  «       y )Nr   r$   z)/media/avatars/avatar.jpg.100x100_q85.jpgr>   )r   r   r*   r   ÚurlÚpickleÚloadsÚdumps)r   r-   Únew_instances      r   Útest_serializationz'ThumbnailerFieldTest.test_serialization^   sn   € Ü×#Ñ#Ð+?Ô@ˆØ×ÑÐDÀhÇoÁoÐV]ÑF^×FbÑFbÔcÜ—|‘|¤F§L¡L°Ó$:Ó;ˆØ×ÑÐDÀl×FYÑFYÐZaÑFb×FfÑFfÕgr   c                 ó*  — t         dk  r5	 |j                  j                  «       |j                  j                  «        S |j	                  d«      5 }|j                  «       cd d d «       S # |j                  j                  «        w xY w# 1 sw Y   y xY w)N)rX   r   Úrb)ÚDJANGO_VERSIONÚfileÚreadÚcloseÚopen)r   r   Úfds      r   Ú_read_filefieldz$ThumbnailerFieldTest._read_filefieldd   sr   € Ü˜FÒ"ð#Ø—z‘z—‘Ó(à—
‘
× Ñ Õ"à�Z‰Z˜Óð 	 Ø—7‘7“9÷	ñ 	øð —
‘
× Ñ Õ"ú÷	ð 	ús   ‹A* ÁB	Á*BÂ	Bc                 óü   — t        j                  d¬«      }|j                  j                  dt	        | j                  |j                  «      «      d¬«       | j                  |j                  j                  d«       y )Nr   r$   zfile.jpgFrH   é
   )	r   r   r   r6   r   rl   r   r*   r+   rA   s     r   Ú*test_saving_image_field_with_resize_sourcez?ThumbnailerFieldTest.test_saving_image_field_with_resize_sourcen   si   € ô ×#Ñ#Ð+?Ô@ˆØ×Ñ×ÑØœ D×$8Ñ$8¸¿¹Ó$IÓJÐQVð 	ô 	Xð 	×Ñ˜×)Ñ)×/Ñ/°Õ4r   c                 óü   — t        j                  d¬«      }|j                  j                  dt	        | j                  |j                  «      «      d¬«       | j                  |j                  j                  d«       y )Nr   r$   zfile.gifFrH   zpictures/file.jpg)	r   r   r   r6   r   rl   r   r*   r   rA   s     r   Ú8test_saving_image_field_with_resize_source_different_extzMThumbnailerFieldTest.test_saving_image_field_with_resize_source_different_extw   sh   € Ü×#Ñ#Ð+?Ô@ˆØ×Ñ×ÑØœ D×$8Ñ$8¸¿¹Ó$IÓJÐQVð 	ô 	Xð 	×Ñ˜×)Ñ)×.Ñ.Ð0CÕDr   )Ú__name__Ú
__module__Ú__qualname__r   r"   r/   r;   r?   rB   rS   rV   r\   rc   rl   ro   rq   Ú__classcell__)r   s   @r   r   r      sI   ø„ ô	3ôòBò
7ò=òBò3ò 3ò Iòhòò5öEr   r   )rL   r_   Údjangor   rf   Údjango.core.files.baser   Úeasy_thumbnails.testsr   r   Ú"easy_thumbnails.tests.test_aliasesr   ÚAliasBaseTestÚeasy_thumbnails.enginer   Úeasy_thumbnails.exceptionsr	   r
   r   © r   r   ú<module>r~      s/   ðÛ 	Û å ,Ý .ç /Ý HÝ 4÷2ônE˜=õ nEr   