
    4hhl	                         S SK r S SKrS SKrS SKrS SKrS SKrS SKrS r\ R                  \R                  S4S j5       rS
S jr\ R                  S 5       r " S S5      rS	 rg)    Nc                  b    [         R                  " S/U Q70 UD6n[        R                  " U5      $ Nz:memory:)sqlite3connect
contextlibclosing)argskwargscxs      ?/opt/python-3.13.8/usr/lib/python3.13/test/test_sqlite3/util.pymemory_databaser      s+    		5d	5f	5Bb!!       c              #      #     U R                  X5      nUv   U R                  X5        g ! U R                  UW5        f = f7fN)setlimit)r   categorylimit_prevs       r   cx_limitr      s7     %H,
H$He$s   A+ A?Ac                    ^ ^^ U UU4S jnU$ )z6Convenience decorator for testing callback tracebacks.c                    >^ ^ T(       a  [         R                  " T5      OS m[        R                  " T 5      UUU U4S j5       nU$ )Nc                    > [         R                  R                  5        n[        XTTT5         T" U /UQ70 UD6  S S S 5        S S S 5        T" U /UQ70 UD6  g ! , (       d  f       N#= f! , (       d  f       N,= fr   )testsupportcatch_unraisable_exceptioncheck_tracebacks)selfr	   r
   cm_regexexcfuncnames       r   wrapper3with_tracebacks.<locals>.decorator.<locals>.wrapper   sg    88:b%dVTB/// C ; '''	 CB ;:s!   A*AA*
A'	#A**
A8)recompile	functoolswraps)r"   r$   r    r!   r#   regexs   ` @r   	decorator"with_tracebacks.<locals>.decorator   s7    &+E"			( 
	( r    )r!   r*   r#   r+   s   ``` r   with_tracebacksr.      s     r   c              #   t  #    [         R                  " S5         [        R                  " 5       n[        R
                  " U5         Sv   SSS5        U R                  UR                  R                  U5        U(       a?  [        UR                  R                  5      nU R                  UR                  U5      5        U(       a0  U R                  UR                  R                  R                  U5        [         R                  " S5        g! , (       d  f       N= f! [         R                  " S5        f = f7f)z<Convenience context manager for testing callback tracebacks.TNF)r   enable_callback_tracebacksioStringIOr   redirect_stderrassertEqual
unraisableexc_typestr	exc_valueassertIsNotNonesearchobject__name__)r   r   r!   r*   obj_namebufmsgs          r   r   r   +   s      &&t,2kkm'', - 	//5bmm--.C  c!23R]]11::HE**51 -, 	**51s5   D8+D D
B+D 5D8
DD D55D8c                   @    \ rS rSrS rS r\S 5       r\S 5       rSr	g)MemoryDatabaseMixin>   c                 x    [         R                  " S5      U l        U R                  R                  5       U l        g r   )r   r   concursorcurr   s    r   setUpMemoryDatabaseMixin.setUp@   s$    ??:.88??$r   c                 l    U R                   R                  5         U R                  R                  5         g r   )rF   closerD   rG   s    r   tearDownMemoryDatabaseMixin.tearDownD   s    r   c                     U R                   $ r   )rD   rG   s    r   r   MemoryDatabaseMixin.cxH       xxr   c                     U R                   $ r   )rF   rG   s    r   cuMemoryDatabaseMixin.cuL   rP   r   )rD   rF   N)
r<   
__module____qualname____firstlineno__rH   rL   propertyr   rR   __static_attributes__r-   r   r   rA   rA   >   s4    %    r   rA   c                     [        5        nU 4[        UR                  S5      5      ;   nSU < S3n[        R                  " X#5      sS S S 5        $ ! , (       d  f       g = f)NzPRAGMA module_listz	Requires z virtual table support)r   listexecuteunittest
skipUnless)moduler   	supportedreasons       r   requires_virtual_tablera   Q   sN    		bIbjj1E&F!GG	VJ&<=""95 
		s   ;A
A) rb   )r   r(   r1   r&   r   test.supportr   r\   r   contextmanagerSQLITE_LIMIT_SQL_LENGTHr   r.   r   rA   ra   r-   r   r   <module>rf      sr      	 	   " !99 % %" 2 2$ &6r   