
    h                         d dl Z d dlmZ d dlm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  ee j&                  j)                  ej*                  d
             G d dej,                               Zy)    N)	timedelta)override_settings)call_command)now)Source	Thumbnail)get_thumbnailer)utils)settings
test_media)
MEDIA_ROOTc                   <     e Zd Z fdZd Zd Zd Zd Zd Z xZ	S )ThumbnailCleanupTestc                 6   t         |           t        j                         | _        | j                  | j                  d      }| j                  j                  |      j                  | _        t        | j                  |      | _
        | j                  j                  ddi       | j                  j                  ddi      | _        | j                  j                  ddi      j                  | _        t"        j$                  j'                  |      | _        y )Nztest.jpgsize)d   r   )name)supersetUptestTemporaryStoragestoragecreate_imageopenr   source_image_pathr	   thumbnailergenerate_thumbnailget_thumbnail_namethumbnail_nameget_thumbnailpaththumbnail_pathr   objectsgetsource)selffilename	__class__s     \/home/dcms/DCMS/lib/python3.12/site-packages/easy_thumbnails/tests/test_thumbnail_cleanup.pyr   zThumbnailCleanupTest.setUp   s    ,,. $$T\\:>!%!2!28!<!A!A +4<<B++VZ,@A"..AA6:BVW"..<<fj=QRWWnn((h(7    c                    t         j                  j                  | j                        rt        j                  | j                         t         j                  j                  | j
                        rt        j                  | j
                         t        j                  j                         j                          t        j                  j                         j                          t         j                  j                  t        j                        rHt        j                  t        j                        s$t        j                  t        j                         y y y )N)osr!   existsr   remover"   r   r#   alldeleter   r   r   listdirrmdirr&   s    r)   tearDownzThumbnailCleanupTest.tearDown    s    77>>$001IId,,-77>>$--.IId))* 	##%&&( 77>>(--.rzz(BUBU7VHHX(() 8W.r*   c                    t        | j                         | j                  t        j                  j                  | j                               | j                  t        j                  j                  | j                               t        j                  | j                         | j                  t        j                  j                  | j                               t        dd       | j                  t        j                  j                  | j                               | j                  t        j                        5  t        j                  j                  | j                  j                          d d d        y # 1 sw Y   y xY w)Nthumbnail_cleanup   	verbosityid)printr   
assertTruer,   r!   r-   r"   r.   assertFalser   assertRaisesr   DoesNotExistr#   r$   r%   r;   r3   s    r)   test_cleanup_commandz)ThumbnailCleanupTest.test_cleanup_command/   s    d$$%t'='=>?t':':;< 			$(()(>(>?@ 	(A6 	(;(;<= v223 	2NN$++..1	2 	2 	2s   5E??Fc                    | j                  t        j                  j                  | j                               | j                  t        j                  j                  | j
                               t        j                  | j                         | j                  t        j                  j                  | j                               t        ddd       | j                  t        j                  j                  | j
                               | j                  t        j                  j                  | j                  j                               y )Nr6   Tr7   )dry_runr9   r:   )r=   r,   r!   r-   r   r"   r.   r>   r   assertIsNotNoner   r#   r$   r%   r;   r3   s    r)   test_cleanup_dry_runz)ThumbnailCleanupTest.test_cleanup_dry_runB   s    t'='=>?t':':;< 			$(()(>(>?@ 	($!D 	t':':;< 	V^^//4;;>>/BCr*   c                    t               t        d      z
  }|| j                  _        | j                  j	                          | j                  t        j                  j                  | j                               | j                  t        j                  j                  | j                               t        j                  | j                         | j                  t        j                  j                  | j                               t        ddd       | j                  t        j                  j                  | j                               | j                  t        j                   j#                  | j                  j$                               t        ddd       | j                  t        j                  j                  | j                               | j'                  t        j(                        5  t        j                   j#                  | j                  j$                         d d d        y # 1 sw Y   y xY w)	N
   )daysr6      r7   )last_n_daysr9   r:      )r   r   r%   modifiedsaver=   r,   r!   r-   r   r"   r.   r>   r   rD   r   r#   r$   r;   r?   r@   )r&   old_times     r)   test_cleanup_last_n_daysz-ThumbnailCleanupTest.test_cleanup_last_n_daysS   sv   59"--'t'='=>?t':':;< 			$(()(>(>?@ 	(a1E 	t':':;< 	V^^//4;;>>/BC 	(bAF 	(;(;<= v223 	2NN$++..1	2 	2 	2s   85H66H?c                 J   | j                  t        j                  j                  | j                               | j                  t        j                  j                  | j
                               d| j                  _        | j                  j                          t        dd       | j                  t        j                  j                  | j
                               | j                  t        j                  j                  | j                  j                               y )Nunknown_storage_hashr6   r7   r8   r:   )r=   r,   r!   r-   r   r"   r%   storage_hashrM   r   rD   r   r#   r$   r;   r3   s    r)   "test_source_storage_hash_not_foundz7ThumbnailCleanupTest.test_source_storage_hash_not_foundr   s    t'='=>?t':':;< $:  	(A6 	t':':;<V^^//4;;>>/BCr*   )
__name__
__module____qualname__r   r4   rA   rE   rO   rS   __classcell__)r(   s   @r)   r   r      s#    8"*2&D"2>Dr*   r   )r,   datetimer   django.testr   django.core.managementr   django.utils.timezoner   easy_thumbnails.modelsr   r   easy_thumbnails.filesr	   easy_thumbnails.testsr
   r   django.confr   r!   joinr   BaseTestr    r*   r)   <module>rc      s`    	  ) / % 4 1 /   bggll8+>+>MNrD4== rD OrDr*   