o
    h                     @   sL   d Z ddlZddlZddlmZ ddlmZmZmZm	Z	 G dd deZ
dS )zTest for object db    N)TestBase)
to_hex_sha
to_bin_shaNULL_HEX_SHALockedFDc                   @   s$   e Zd Zdd Zdd Zdd ZdS )	TestUtilsc                 C   sB   t ttksJ tttdksJ t tttdksJ d S )N   ascii)r   r   lenr   encode)self r   H/var/www/vscode/kcb/lib/python3.10/site-packages/gitdb/test/test_util.pytest_basics   s   zTestUtils.test_basicsc                 C   sF   t |d}| |dksJ W d    d S 1 sw   Y  d S )Nrbr	   )openreadr   )r   	file_pathdatafpr   r   r   _cmp_contents   s   "zTestUtils._cmp_contentsc              	   C   sL  t  }d}d}t|d}||d W d    n1 s w   Y  zt|}| }| t|j	 | t|j
 tj|rDJ |jdd}|j|u sQJ tj|sYJ t||d |	  |jd u smJ | || tj|r{J |
  |	  t|}|jdd}t|t||dksJ tj|sJ ~tj|rJ t|}t|}	tj|rJ |jddd}
tj|sJ | t|	j |
|d |
  tj|rJ | || W t| nt| w tt  }z|jdd W n ty   tj| rJ Y d S w | d	 d S )
Nhelloworldwbr	   T)writeF)r   streamzexpected OSError)tempfilemktempr   r   r   r   _lockfilepathassertRaisesAssertionErrorrollbackcommitospathisfile_fdr   r   r
   IOErrorremoveOSErrorexistsfail)r   my_file	orig_datanew_data
my_file_fplfdlockfilepathwfdrfdolfd	wfdstreamr   r   r   test_lockedfd   s\   zTestUtils.test_lockedfdN)__name__
__module____qualname__r   r   r6   r   r   r   r   r      s    r   )__doc__r   r#   gitdb.test.libr   
gitdb.utilr   r   r   r   r   r   r   r   r   <module>   s   