o
    ÌÉh¼  ã                   @   s`   d dl mZ d dlmZmZ d dlmZ eG dd„ deƒƒZG dd„ deƒZ	G dd	„ d	eƒZ
d
S )é    )ÚFile)ÚFileSystemStorageÚStorage)Údeconstructiblec                   @   sn   e Zd Zdd„ Zdd„ Zd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 )ÚDummyExternalStoragec                 O   s   t |i |¤Ž| _d S ©N)r   Úwrapped)ÚselfÚargsÚkwargs© r   úc/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/test/dummy_external_storage.pyÚ__init__   s   zDummyExternalStorage.__init__c                 C   s   t dƒ‚)Nz,This backend doesn't support absolute paths.)ÚNotImplementedError©r	   Únamer   r   r   Úpath   s   zDummyExternalStorage.pathÚrbc                 C   s   t t| j |¡|ƒƒS r   )ÚDummyExternalStorageFileÚopenr   r   )r	   r   Úmoder   r   r   Ú_open   s   zDummyExternalStorage._openc                 C   s*   |  ¡ }|dkrtd| ƒ‚| j ||¡S )Nr   z4Content file pointer should be at 0 - got %d instead)ÚtellÚ
ValueErrorr   Ú_save)r	   r   ÚcontentÚfile_posr   r   r   r      s   ÿzDummyExternalStorage._savec                 C   s   | j  |¡ d S r   )r   Údeleter   r   r   r   r   (   s   zDummyExternalStorage.deletec                 C   ó   | j  |¡S r   )r   Úexistsr   r   r   r   r   +   ó   zDummyExternalStorage.existsc                 C   r   r   )r   Úlistdir)r	   r   r   r   r   r!   .   r    zDummyExternalStorage.listdirc                 C   r   r   )r   Úsizer   r   r   r   r"   1   r    zDummyExternalStorage.sizec                 C   r   r   )r   Úurlr   r   r   r   r#   4   r    zDummyExternalStorage.urlc                 C   r   r   )r   Úaccessed_timer   r   r   r   r$   7   r    z"DummyExternalStorage.accessed_timec                 C   r   r   )r   Úcreated_timer   r   r   r   r%   :   r    z!DummyExternalStorage.created_timec                 C   r   r   )r   Úmodified_timer   r   r   r   r&   =   r    z"DummyExternalStorage.modified_timeN)r   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r!   r"   r#   r$   r%   r&   r   r   r   r   r      s    

r   c                   @   s   e Zd ZdS )ÚDummyExternalStorageErrorN)r'   r(   r)   r   r   r   r   r*   A   s    r*   c                       s&   e Zd Zddd„Z‡ fdd„Z‡  ZS )r   Nc                 C   s   | j s
|  d¡ d S tdƒ‚)Nr   zThe file cannot be reopened.)ÚclosedÚseekr   )r	   r   r   r   r   r   F   s   zDummyExternalStorageFile.openc              
      s0   zt ƒ jW S  ty } ztt|ƒƒ‚d }~ww r   )Úsuperr"   Ú	Exceptionr*   Ústr)r	   Úe©Ú	__class__r   r   r"   U   s   
€ÿzDummyExternalStorageFile.sizer   )r'   r(   r)   r   r"   Ú__classcell__r   r   r1   r   r   E   s    
r   N)Údjango.core.filesr   Údjango.core.files.storager   r   Údjango.utils.deconstructr   r   r.   r*   r   r   r   r   r   Ú<module>   s   	1