U
    |®Þ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 ||Ž| _d S ©N)r   Úwrapped)ÚselfÚargsÚkwargs© r   úk/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/test/dummy_external_storage.pyÚ__init__   s    zDummyExternalStorage.__init__c                 C   s   t dƒ‚d S )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   ÚcontentZ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   s   | j  |¡S r   )r   Úexistsr   r   r   r   r   +   s    zDummyExternalStorage.existsc                 C   s   | j  |¡S r   )r   Úlistdir)r	   r   r   r   r   r   .   s    zDummyExternalStorage.listdirc                 C   s   | j  |¡S r   )r   Úsizer   r   r   r   r   1   s    zDummyExternalStorage.sizec                 C   s   | j  |¡S r   )r   Úurlr   r   r   r   r    4   s    zDummyExternalStorage.urlc                 C   s   | j  |¡S r   )r   Úaccessed_timer   r   r   r   r!   7   s    z"DummyExternalStorage.accessed_timec                 C   s   | j  |¡S r   )r   Úcreated_timer   r   r   r   r"   :   s    z!DummyExternalStorage.created_timec                 C   s   | j  |¡S r   )r   Úmodified_timer   r   r   r   r#   =   s    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¡ ntdƒ‚d S )Nr   zThe file cannot be reopened.)ÚclosedÚseekr   )r	   r   r   r   r   r   F   s    zDummyExternalStorageFile.openc              
      s>   z
t ƒ jW S  tk
r8 } ztt|ƒƒ‚W 5 d }~X Y nX d S r   )Úsuperr   Ú	Exceptionr'   Ústr)r	   Úe©Ú	__class__r   r   r   U   s    
zDummyExternalStorageFile.size)N)r$   r%   r&   r   r   Ú__classcell__r   r   r.   r   r   E   s   
r   N)Zdjango.core.filesr   Zdjango.core.files.storager   r   Zdjango.utils.deconstructr   r   r+   r'   r   r   r   r   r   Ú<module>
   s   1