Ë
    T]jâ+  ã                   ó  — d dl mZ d dlmZ d dlmZmZ d dlm	Z	m
Z
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j&                  «      Z G d
„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zy)é    )Ústorage)Ú	FileField)Ú	post_saveÚpre_save)ÚfilesÚsignal_handlersÚsignalsr   )Úaliases)Úsettings)ÚmodelsÚutilsc                   ó,   ‡ — e Zd ZdZˆ fd„Zˆ fd„Zˆ xZS )ÚBaseTestFc                 ó  •— t         ‰| �  «        ddiddiddidœddiddd	œd
œddd	œddd	œdœdddiidœt        _        t        j
                  | _        i t        _        t	        j                  «        | j                  r�t        j                  «       | _        | j                  | j                  d«       t        j                  j                  j!                  d«      }| j                  |_        | j                  |_        y y )NÚsize©éô  r   ©é,  r   ©éd   r   ©ÚlargeÚmediumÚsmall©éÈ   r   ©iX  éP   T©r   Úcrop)r   Úbanner©r   r   ©é   r%   )Úavatarr   Úsidebar)é–   éú   )Ú úeasy_thumbnails_tests.Profileú$easy_thumbnails_tests.Profile.avatarÚ	other_appúavatars/test.jpgr&   )ÚsuperÚsetUpr   ÚTHUMBNAIL_ALIASESr
   Ú_aliasesÚ_BaseTest__aliasesÚpopulate_from_settingsÚcreate_filer   ÚTemporaryStorager   Úcreate_imager   ÚProfileÚ_metaÚ	get_fieldÚthumbnail_storage)ÚselfÚfieldÚ	__class__s     €úY/var/www/zogu/zoguvenv/lib/python3.12/site-packages/easy_thumbnails/tests/test_aliases.pyr0   zBaseTest.setUp   sû   ø€ Ü‰‰Œð ! *Ð-Ø! :Ð.Ø  *Ð-ñð ! *Ð-Ø#,°dÑ;ñ.ð
 $,°TÑ:Ø"*°DÑ9ñ5ð
 ˜F JÐ/ðñ&
ŒÔ"ô$ !×)Ñ)ˆŒØŒÔÜ×&Ñ&Ô(à×ÒÜ ×1Ñ1Ó3ˆDŒLà×Ñ˜dŸl™lÐ,>Ô?ä—N‘N×(Ñ(×2Ñ2°8Ó<ˆEØ ŸL™LˆEŒMØ&*§l¡lˆEÕ#ð ó    c                 ó˜   •— | j                   t        _        | j                  r| j                  j                  «        t        ‰| �  «        y ©N)r3   r
   r2   r5   r   Údelete_temporary_storager/   ÚtearDown©r<   r>   s    €r?   rD   zBaseTest.tearDown/   s3   ø€ ØŸ>™>ŒÔØ×ÒØ�L‰L×1Ñ1Ô3Ü‰ÑÕr@   )Ú__name__Ú
__module__Ú__qualname__r5   r0   rD   Ú__classcell__©r>   s   @r?   r   r      s   ø„ Ø€Kô3÷Bð r@   r   c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	Ú	AliasTestc                 ó0  — | j                  t        j                  d«      d «       | j                  t        j                  d«      ddi«       | j                  t        j                  d«      d «       | j                  t        j                  d«      d «       y )NÚinvalidr   r   r   r&   r"   ©ÚassertEqualr
   Úget©r<   s    r?   Útest_globalzAliasTest.test_global8   sk   € Ø×ÑœŸ™ YÓ/°Ô6Ø×ÑœŸ™ WÓ-°¸
Ð/CÔDØ×ÑœŸ™ XÓ.°Ô5Ø×ÑœŸ™ XÓ.°Õ5r@   c                 ó¬   — | j                  t        j                  dd¬«      dddœ«       | j                  t        j                  dd¬«      dddœ«       y )	Nr&   r,   ©Útargetr#   Tr    r   r$   rO   rR   s    r?   Útest_targetzAliasTest.test_target>   sV   € Ø×ÑÜ�K‰KØÐ!GôIà tÑ,ô	.ð 	×ÑÜ�K‰KØÐ FôHà tÑ,õ	.r@   c                 óú   — | j                  t        j                  dd¬«      dddœ«       | j                  t        j                  dd¬«      dddœ«       | j                  t        j                  dd¬«      d «       y )	Nr"   r,   rU   r   Tr    r+   Úeasy_thumbnails_testsrO   rR   s    r?   Útest_partial_targetzAliasTest.test_partial_targetH   st   € Ø×ÑÜ�K‰KØÐ!GôIà¨Ñ-ô	/ð 	×ÑÜ�K‰K˜Ð)HÔIØ¨Ñ-ô	/ð 	×ÑÜ�K‰K˜Ð)@ÔAÀ4õ	Ir@   c                 óö   — | j                  t        j                  dd¬«      ddi«       | j                  t        j                  dd¬«      ddi«       | j                  t        j                  d	d¬«      d «       y )
Nr   z(easy_thumbnails_tests.Profile.not_avatarrU   r   r   r   r,   r   rN   rO   rR   s    r?   Útest_target_fallbackzAliasTest.test_target_fallbackS   s|   € à×ÑÜ�K‰KØÐ JôLà�ZÐ ô	"ð
 	×ÑÜ�K‰KØÐ!GôIà�ZÐ ô	"ð
 	×ÑÜ�K‰KØÐ"HôJàõ	r@   c           
      ó”  — | j                  t        j                  «       ddiddiddidœ«       | j                  t        j                  d«      ddiddiddidœ«       | j                  t        j                  d«      dd	d
œddiddiddidœ«       | j                  t        j                  d«      dd	d
œdd	d
œddiddid	ddœdœ«       y )Nr   r   r   r   r   Úunknown_appr+   r   Tr    r   )r"   r   r   r   r,   r#   r$   ©r!   r   )r&   r"   r   r   r   ©rP   r
   ÚallrR   s    r?   Útest_allzAliasTest.test_alld   sû   € Ø×ÑÜ�K‰K‹Mà  *Ð-Ø! :Ð.Ø  *Ð-ñô	ð 	×ÑÜ�K‰K˜Ó&à  *Ð-Ø! :Ð.Ø  *Ð-ñô	ð 	×ÑÜ�K‰KÐ7Ó8à#,°dÑ;Ø  *Ð-Ø! :Ð.Ø  *Ð-ñ	ô	ð 	×ÑÜ�K‰KÐ>Ó?à#+°TÑ:Ø#,°dÑ;Ø  *Ð-Ø! :Ð.Ø"&°Ñ9ñõ	r@   c           	      óÐ   — | j                  t        j                  dd¬«      dddœddid	œ«       | j                  t        j                  d
d¬«      dddœdddœddidddœdœ«       y )Nr+   F)Úinclude_globalr   Tr    r   r   )r"   r   r,   r#   r$   r_   )r&   r"   r   r   r`   rR   s    r?   Útest_all_no_globalzAliasTest.test_all_no_globalˆ   s‚   € à×ÑÜ�K‰KØ/ÀôGð (1¸$Ñ?Ø$ jÐ1ñô	ð 	×ÑÜ�K‰KØ6ÀuôNð (0¸Ñ>Ø'0¸$Ñ?Ø$ jÐ1Ø&*°HÑ=ñ	õ	r@   c                 ó.  — t         j                  j                  j                  d¬«       t         j                  j                  j	                  d«      j                  «       }| j                  t        j                  d|j                  ¬«      dddœ«       y )	Nr.   ©r&   r&   r   rU   r$   Tr    )
r   r8   ÚobjectsÚcreateÚonlyÚfirstrP   r
   rQ   r&   )r<   Úinstances     r?   Útest_deferredzAliasTest.test_deferredœ   si   € Ü�‰×Ñ×%Ñ%Ð-?Ð%Ô@Ü—>‘>×)Ñ)×.Ñ.¨xÓ8×>Ñ>Ó@ˆØ×ÑÜ�K‰K˜¨¯©Ô8Ø tÑ,õ	.r@   N)
rF   rG   rH   rS   rW   rZ   r\   rb   re   rm   © r@   r?   rL   rL   6   s'   „ ò6ò.ò	Iòò""òHó(.r@   rL   c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚAliasThumbnailerTestTc                 óÀ   — t        j                  | j                  d«      }| j                  |_        |d   }| j	                  |j
                  |j                  fd«       y )Nr.   r   )r   éK   )r   Úget_thumbnailerr   r;   rP   ÚwidthÚheight)r<   ÚthumbnailerÚthumbs      r?   Útest_thumbnailerz%AliasThumbnailerTest.test_thumbnailer§   sL   € Ü×+Ñ+¨D¯L©LÐ:LÓMˆØ(,¯©ˆÔ%Ø˜GÑ$ˆØ×Ñ˜%Ÿ+™+ u§|¡|Ð4°iÕ@r@   c                 óÈ   — t        j                  d¬«      }t        j                  |j                  «      }|d   }| j                  |j                  |j                  fd«       y )Nr.   rg   r   r$   )r   r8   r   rs   r&   rP   rt   ru   )r<   Úprofilerv   rw   s       r?   Útest_thumbnailer_fieldfilez/AliasThumbnailerTest.test_thumbnailer_fieldfile­   sL   € Ü—.‘.Ð(:Ô;ˆÜ×+Ñ+¨G¯N©NÓ;ˆØ˜GÑ$ˆØ×Ñ˜%Ÿ+™+ u§|¡|Ð4°hÕ?r@   N)rF   rG   rH   r5   rx   r{   rn   r@   r?   rp   rp   ¤   s   „ Ø€KòAó@r@   rp   c                   ó8   ‡ — e Zd ZdZd„ Zˆ fd„Zˆ fd„Zd„ Zˆ xZS )ÚGenerationBaseTc                 ó   — t        d«      S )Nz$Subclasses should return the handler)ÚNotImplementedErrorrR   s    r?   Úget_signal_handlerz!GenerationBase.get_signal_handler·   s   € Ü"Ð#IÓJÐJr@   c                 óÔ  •— t         ‰| �  «        t        j                  j	                  | j                  «       t        j                  ¬«       t        j                  | _
        | j                  j                  t        _	        t        j                  j                  | _        | j                  t        j                  _        t        j"                  | _        | j                  t        _        y ©N)Úsender)r/   r0   r	   Ú
saved_fileÚconnectr€   r   r8   r   Ú
MEDIA_ROOTÚ_MEDIA_ROOTr   Útemporary_locationÚdjango_storageÚdefault_storageÚ_wrappedÚ_old_default_storageÚthumbnail_default_storageÚ_old_thumbnail_default_storagerE   s    €r?   r0   zGenerationBase.setUpº   s™   ø€ Ü‰‰ŒÜ×Ñ×"Ñ"Ø×#Ñ#Ó%¬f¯n©nð 	#ô 	>ô $×.Ñ.ˆÔØ"Ÿl™l×=Ñ=ŒÔä$2×$BÑ$B×$KÑ$KˆÔ!Ø26·,±,Œ×&Ñ&Ô/Ü.5×.OÑ.OˆÔ+Ø,0¯L©LŒÕ)r@   c                 ó.  •— | j                   t        _        | j                  t        j
                  _        | j                  t        _	        t        j                  j                  | j                  «       t        j                  ¬«       t         ‰| �E  «        y r‚   )rŽ   r   r�   rŒ   r‰   rŠ   r‹   r‡   r   r†   r	   r„   Ú
disconnectr€   r   r8   r/   rD   rE   s    €r?   rD   zGenerationBase.tearDownÇ   si   ø€ à,0×,OÑ,OŒÔ)Ø26×2KÑ2KŒ×&Ñ&Ô/Ø"×.Ñ.ŒÔÜ×Ñ×%Ñ%Ø×#Ñ#Ó%¬f¯n©nð 	&ô 	>ä‰ÑÕr@   c                 ó@  — |j                   }t        j                  ||¬«       |j                  j                  D ].  }t        |t        «      sŒdt        ||j                  «      _	        Œ0 t        j                  ||¬«       | j                  j                  d«      d   S )N©rƒ   rl   TÚavatarsé   )r>   r   Úsendr9   ÚfieldsÚ
isinstancer   ÚgetattrÚnameÚ
_committedr   r   Úlistdir)r<   rl   Úclsr=   s       r?   Ú	fake_savezGenerationBase.fake_saveÐ   s}   € Ø× Ñ ˆÜ�‰˜S¨8Õ4Ø—Y‘Y×%Ñ%ò 	@ˆEÜ˜%¤Õ+Ø;?”˜ %§*¡*Ó-Õ8ð	@ô 	�‰˜c¨HÕ5Ø�|‰|×#Ñ# IÓ.¨qÑ1Ð1r@   )	rF   rG   rH   r5   r€   r0   rD   r�   rI   rJ   s   @r?   r}   r}   ´   s   ø„ Ø€KòKô9ôö2r@   r}   c                   ó:   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚGenerationTestzA
    Test the ``generate_aliases`` signal handler behaviour.
    c                 ó"   — t         j                  S rB   )r   Úgenerate_aliasesrR   s    r?   r€   z!GenerationTest.get_signal_handlerß   s   € Ü×/Ñ/Ð/r@   c                 óˆ   — t        j                  d¬«      }| j                  |«      }| j                  t	        |«      d«       y)zU
        Thumbnails are not generated if there isn't anything to generate...
        Nrg   r”   ©r   r8   r�   rP   Úlen©r<   rz   r   s      r?   Ú
test_emptyzGenerationTest.test_emptyâ   s4   € ô —.‘.¨Ô-ˆØ—‘˜wÓ'ˆØ×Ñœ˜U› QÕ'r@   c                 óˆ   — t        j                  d¬«      }| j                  |«      }| j                  t	        |«      d«       y©zJ
        Thumbnails are only generated when the file is modified.
        r.   rg   r”   Nr£   r¥   s      r?   Útest_no_changezGenerationTest.test_no_changeê   ó5   € ô —.‘.Ð(:Ô;ˆØ—‘˜wÓ'ˆØ×Ñœ˜U› QÕ'r@   c                 óª   — t        j                  d¬«      }d|j                  _        | j	                  |«      }| j                  t        |«      d«       y)zl
        When a file is modified, thumbnails are built for all matching
        non-global aliases.
        r.   rg   Fé   N©r   r8   r&   rš   r�   rP   r¤   r¥   s      r?   Útest_changedzGenerationTest.test_changedò   óA   € ô
 —.‘.Ð(:Ô;ˆØ$)ˆ�‰Ô!Ø—‘˜wÓ'ˆà×Ñœ˜U› QÕ'r@   c                 óÀ   — t        j                  d¬«      }|j                  j                  d¬«       | j	                  |«      }| j                  t        |«      d«       y )Nr.   rg   F)Úsaver   )r   r8   r&   Údeleter�   rP   r¤   r¥   s      r?   Útest_deletedzGenerationTest.test_deletedý   sH   € Ü—.‘.Ð(:Ô;ˆØ�‰×Ñ 5ÐÔ)Ø—‘˜wÓ'ˆØ×Ñœ˜U› QÕ'r@   c                 ó2  — t        j                  d¬«      }|j                  }d|_        t	        j
                  ||¬«       d|_        t        j
                  ||¬«       | j                  j                  d«      d   }| j                  t        |«      d«       y)	zS
        A ClearablFileInput will set field value to False before pre_save
        r.   rg   Fr’   r*   r“   r”   N)r   r8   r>   r&   r   r•   r   r   r›   rP   r¤   )r<   rz   rœ   r   s       r?   Útest_clearablezGenerationTest.test_clearable  sy   € ô —.‘.Ð(:Ô;ˆØ×ÑˆàˆŒÜ�‰˜S¨7Õ3ð ˆŒÜ�‰˜c¨GÕ4ð —‘×$Ñ$ YÓ/°Ñ2ˆØ×Ñœ˜U› QÕ'r@   c                 ó*  — t        j                  d¬«      }| j                  j                  | j	                  | j                  d«      «      5 }||_        | j                  |«      }| j                  t        |«      d«       d d d «       y # 1 sw Y   y xY w)Nr.   rg   zavatars/second.jpgé   )	r   r8   r   Úopenr7   Úlogor�   rP   r¤   )r<   rz   r¹   Ú
list_filess       r?   Útest_standard_filefieldz&GenerationTest.test_standard_filefield  sz   € Ü—.‘.Ð(:Ô;ˆð �\‰\×Ñ˜t×0Ñ0°·±Ð?SÓTÓUð 	1ÐY]ØˆGŒLØŸ™¨Ó0ˆJð ×ÑœS ›_¨aÔ0÷	1÷ 	1ñ 	1ús   Á4B	Â	BN)rF   rG   rH   Ú__doc__r€   r¦   r©   r®   r³   rµ   r»   rn   r@   r?   rŸ   rŸ   Ú   s*   „ ñò0ò(ò(ò	(ò(ò(ó$	1r@   rŸ   c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚGlobalGenerationTestzH
    Test the ``generate_aliases_global`` signal handler behaviour.
    c                 ó"   — t         j                  S rB   )r   Úgenerate_aliases_globalrR   s    r?   r€   z'GlobalGenerationTest.get_signal_handler&  s   € Ü×6Ñ6Ð6r@   c                 óˆ   — t        j                  d¬«      }| j                  |«      }| j                  t	        |«      d«       yr¨   r£   r¥   s      r?   r©   z#GlobalGenerationTest.test_no_change)  rª   r@   c                 óª   — t        j                  d¬«      }d|j                  _        | j	                  |«      }| j                  t        |«      d«       y)zr
        When a file is modified, thumbnails are built for all matching and
        project-wide aliases.
        r.   rg   Fé   Nr­   r¥   s      r?   r®   z!GlobalGenerationTest.test_changed1  r¯   r@   N)rF   rG   rH   r¼   r€   r©   r®   rn   r@   r?   r¾   r¾   !  s   „ ñò7ò(ó	(r@   r¾   N)Údjango.core.filesr   r‰   Údjango.db.modelsr   Údjango.db.models.signalsr   r   Úeasy_thumbnailsr   r   r	   Úeasy_thumbnails.aliasr
   Úeasy_thumbnails.confr   Úeasy_thumbnails.testsr   r   r   rL   rp   r}   rŸ   r¾   rn   r@   r?   ú<module>rË      ss   ðÝ 7Ý &ß 8ç DÓ DÝ )Ý )ß /ô(ˆu�~‰~ô (ôVk.�ô k.ô\@˜8ô @ô #2�Xô #2ôLD1�^ô D1ôN(˜>õ (r@   