o
    h                     @   sJ   d Z ddlmZ ddlZddlZddgZG dd dZG dd deZdS )z(Provide base classes for the test system    )TestCaseNTestBaseFileCreatorc                   @   sN   e Zd ZdZdZdddZdd Zdd	 Zd
d Ze	dd Z
e	dd ZdS )r   zA instance which creates a temporary file with a prefix and a given size
    and provides this info to the user.
    Once it gets deleted, it will remove the temporary file as well.)_size_path c                 C   s|   |sJ d|| _ tjd|dd}|j| _||d  |d W d    n1 s,w   Y  tj	| j|ks<J d S )NzRequire size to be larger 0wbF)prefixdelete      1)
r   tempfileNamedTemporaryFilenamer   seekwriteospathgetsize)selfsizer	   file r   B/var/www/vscode/kcb/lib/python3.10/site-packages/smmap/test/lib.py__init__   s   zFileCreator.__init__c                 C   s(   z	t | j W d S  ty   Y d S w N)r   remover   OSErrorr   r   r   r   __del__   s
   zFileCreator.__del__c                 C   s   | S r   r   r   r   r   r   	__enter__%   s   zFileCreator.__enter__c                 C   s   |    d S r   )r   )r   exc_type	exc_value	tracebackr   r   r   __exit__(   s   zFileCreator.__exit__c                 C      | j S r   )r   r   r   r   r   r   +      zFileCreator.pathc                 C   r%   r   )r   r   r   r   r   r   /   r&   zFileCreator.sizeN)r   )__name__
__module____qualname____doc__	__slots__r   r   r    r$   propertyr   r   r   r   r   r   r      s    

c                   @   s    e Zd ZdZdZedd ZdS )r   zFoundation used by all testsiK&z c                 C   s   d S r   r   )clsr   r   r   setUpAll?   s   zTestBase.setUpAllN)r'   r(   r)   r*   k_window_test_sizeclassmethodr.   r   r   r   r   r   6   s
    )r*   unittestr   r   r   __all__r   r   r   r   r   r   <module>   s    +