
    ؄_                         d dl mZ d dl mZ d dlmZ d dlmZ d dlmZ ddl mZ ddl m	Z	 dd	l m
Z
 dd
l mZ ddl mZ  G d dej                  ZdS )   )config)fixtures)eq_)Column)Table   )
ForeignKey)Integer)select)String)testingc                   "   e Zd ZdZdZdZdZed             Zed             Z	d Z
d Zd Zej        j        ej        j        d	                         Zej        j        ej        j        d
                         Zej        j        d             ZdS )CTETestT)cteseachc                 n   t          d|t          dt          d          t          dt          d                    t          dt	          d                               t          d	|t          dt          d          t          dt          d                    t          dt                               d S )
N
some_tableidT)primary_keydata2   	parent_idzsome_table.idsome_other_table)r   r   r
   r   r	   )clsmetadatas     f/var/www/book.euthymeo.com/html/venv/lib/python3.11/site-packages/sqlalchemy/testing/suite/test_cte.pydefine_tableszCTETest.define_tables   s    4d33366"::&&;
? ; ;<<	
 	
 	
 	4d33366"::&&;((	
 	
 	
 	
 	
    c                     |                     | j        j                                        ddd ddddddddddd	ddd
dddg           d S )N   d1r   r   r   r   d2r   d3   d4   d5)executetablesr   insert)r   
connections     r   insert_datazCTETest.insert_data&   s~    J!((**$T::$Q77$Q77$Q77$Q77		
 		
 		
 		
 		
r   c           	      :   | j         j        }t          j                                        5 }t          |g                              |j        j        	                    g d                    
                    d          }|                    t          |j        j        g                              |j        j        	                    ddg                              }t          |                                dg           d d d            d S # 1 swxY w Y   d S )Nr#   r$   r&   some_cter&   r(   r&   )r*   r   r   dbconnectr   wherecr   in_cter)   r   fetchall)selfr   connr7   results        r   #test_select_nonrecursive_round_tripz+CTETest.test_select_nonrecursive_round_trip3   s+   [+
Y   		.D
|$$z|(,,-?-?-?@@AAZ 
 \\
|$$**35:>>4,+G+GHH F !!G9---		. 		. 		. 		. 		. 		. 		. 		. 		. 		. 		. 		. 		. 		. 		. 		. 		. 		.s   CDDDc                 j   | j         j        }t          j                                        5 }t          |g                              |j        j        	                    g d                    
                    dd          }|                    d          }|                                }|                    t          |g                              |j        j        |j        j        k                        }|                    t          |j        j        g                              |j        j        dk                                  |j        j                                                            }t%          |                                g d           d d d            d S # 1 swxY w Y   d S )Nr/   r0   T)	recursivec1r#   )r1   r$   r@   r!   rA   rA   )r*   r   r   r2   r3   r   r4   r5   r   r6   r7   alias	union_allr   r   r)   order_bydescr   r8   )r9   r   r:   r7   	cte_aliasst1r;   s          r    test_select_recursive_round_tripz(CTETest.test_select_recursive_round_tripA   s   [+
Y   	D
|$$z|(,,-?-?-?@@AAZ400  		$I""$$C --u##CEH	0E$EFF C \\
|$$suzT)**#%*//++,, F
 !!FFF  '	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   E0F((F,/F,c           	         | j         j        }| j         j        }t          j                                        5 }t          |g                              |j        j	        
                    g d                                        d          }|                    |                                                    g dt          |g                               t          |                    t          |g                              |j        j                                                            g d           d d d            d S # 1 swxY w Y   d S )Nr/   r0   r"   ))r   r#   r    )r   r$   r    )r%   r&   r   )r*   r   r   r   r2   r3   r   r4   r5   r   r6   r7   r)   r+   from_selectr   rD   r   r8   r9   r   r   r:   r7   s        r   "test_insert_from_select_round_tripz*CTETest.test_insert_from_select_round_trip\   su   [+
;7Y   	D
|$$z|(,,-?-?-?@@AAZ 
 LL ''))55///   
 ,-..778H8J8MNN (**:::	  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   DEEEc           	      t   | j         j        }| j         j        }t          j                                        5 }|                    |                                                    g dt          |g                               t          |g          
                    |j        j                            g d                                        d          }|                    |                                                    d          
                    |j        j        |j        j        k                         t#          |                    t          |g                              |j        j                                                            g d           d d d            d S # 1 swxY w Y   d S )Nr"   r/   r0   r'   )r   )r    r!   N)r   r#   r'   )r   r$   r'   )r%   r&   r'   r'   r(   r   )r*   r   r   r   r2   r3   r)   r+   rJ   r   r4   r5   r   r6   r7   updatevaluesr   rD   r   r8   rK   s        r   test_update_from_round_tripz#CTETest.test_update_from_round_tripr   s    [+
;7Y   	DLL ''))55///1E1E    
|$$z|(,,-?-?-?@@AAZ 
 LL ''))!$$').#%*<==  
 ,-..778H8J8MNN (**  	  #	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   E)F--F14F1c           	      L   | j         j        }| j         j        }t          j                                        5 }|                    |                                                    g dt          |g                               t          |g          
                    |j        j                            g d                                        d          }|                    |                                
                    |j        j        |j        j        k                         t!          |                    t          |g                              |j        j                                                            ddg           d d d            d S # 1 swxY w Y   d S Nr"   r/   r0   rN   rO   )r*   r   r   r   r2   r3   r)   r+   rJ   r   r4   r5   r   r6   r7   deleter   rD   r   r8   rK   s        r   test_delete_from_round_tripz#CTETest.test_delete_from_round_trip   s    [+
;7Y   	DLL ''))55///1E1E    
|$$z|(,,-?-?-?@@AAZ 
 LL ''))//$&+suz9   
 ,-..778H8J8MNN (** ,/	  #	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   EFF Fc           
         | j         j        }| j         j        }t          j                                        5 }|                    |                                                    g dt          |g                               t          |g          
                    |j        j                            g d                                        d          }|                    |                                
                    |j        j        t          |j        j        g          
                    |j        j        |j        j        k              k                         t#          |                    t          |g                              |j        j                                                            ddg           d d d            d S # 1 swxY w Y   d S rT   )r*   r   r   r   r2   r3   r)   r+   rJ   r   r4   r5   r   r6   r7   rU   r   r   rD   r8   rK   s        r   "test_delete_scalar_subq_round_tripz*CTETest.test_delete_scalar_subq_round_trip   s    [+
;7Y   	DLL ''))55///1E1E    
|$$z|(,,-?-?-?@@AAZ 
 LL ''))//$&+suzl++11$4$6$99     ,-..778H8J8MNN (** ,/	  )	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   FGGGN)__name__
__module____qualname____backend____requires__run_insertsrun_deletesclassmethodr   r-   r<   rH   rL   r   requiresctes_with_update_deleteupdate_fromrR   delete_fromrV   rX    r   r   r   r      s       KLKK
 
 [
" 

 

 [

. . .  6  , -!    "! .- D -!  "! .-8 -  .-  r   r   N) r   r   
assertionsr   schemar   r   r	   r
   r   r   r   
TablesTestr   re   r   r   <module>rj      s                                                               F F F F Fh! F F F F Fr   