
    g                     R    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e      Z
y)zTest for object db    N)TestBase)
to_hex_sha
to_bin_shaNULL_HEX_SHALockedFDc                       e Zd Zd Zd Zd Zy)	TestUtilsc                     t        t              t        k(  sJ t        t        t                    dk(  sJ t        t        t                    t        j                  d      k(  sJ y )N   ascii)r   r   lenr   encode)selfs    I/var/www/openai/venv/lib/python3.12/site-packages/gitdb/test/test_util.pytest_basicszTestUtils.test_basics   sP    ,'<777:l+,222*\23|7J7J77SSSS    c                     t        |d      5 }|j                         |j                  d      k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nrbr   )openreadr   )r   	file_pathdatafps       r   _cmp_contentszTestUtils._cmp_contents   s9     )T"b779G 4444 #""s	   %<Ac                    t        j                         }d}d}t        |d      5 }|j                  |j	                  d             d d d        	 t        |      }|j                         }| j                  t        |j                         | j                  t        |j                         t        j                  j                  |      rJ |j                  d      }|j                  |u sJ t        j                  j                  |      sJ t        j                  ||j	                  d             |j                          |j                  J | j                  ||       t        j                  j                  |      rJ |j                          |j                          t        |      }|j                  d      }t        j                   |t#        |            |j	                  d      k(  sJ t        j                  j                  |      sJ ~t        j                  j                  |      rJ t        |      }t        |      }	t        j                  j                  |      rJ |j                  dd      }
t        j                  j                  |      sJ | j                  t$        |	j                         |
j                  |j	                  d             |j                          t        j                  j                  |      rJ | j                  ||       t        j&                  |       t        t        j                               }	 |j                  d       | j)                  d	       y # 1 sw Y   8xY w# t        j&                  |       w xY w# t*        $ r2 t        j                  j-                  |j                               rJ Y y w xY w)
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failOSErrorexists)r   my_file	orig_datanew_data
my_file_fplfdlockfilepathwfdrfdolfd	wfdstreams              r   test_lockedfdzTestUtils.test_lockedfd   s   //#	'4 JY--g67 !3	7#C,,.L ncll;ncjj9 ww~~l333(((&C77c>!>77>>,/// HHS(//'23LLN77?"?w	2ww~~l333 JJLLLN 7#C((('C773I/93C3CG3LLLL77>>,///ww~~l333 7#CG$Dww~~l333tD9I77>>,///gtyy1OOHOOG45JJLww~~l333w1 IIg x()	*HH5H! II()A ! l IIg  	;ww~~c&7&7&9::::	;s*   !M<KN	 N# <N	N #8OON)__name__
__module____qualname__r   r   r;    r   r   r	   r	      s    T
5D*r   r	   )__doc__r!   r(   gitdb.test.libr   
gitdb.utilr   r   r   r   r	   r?   r   r   <module>rC      s+   
   	 # Q* Q*r   