U a@sddlmZddlmZddlmZddlmZddlmZddlmZddlm Z dd lm Z dd lm Z Gd d d ej Z d S))fixtures)eq_)Column)Table) ForeignKey)Integer)select)String)testingc@seZdZdZdZdZdZeddZeddZ dd Z d d Z d d Z e jje jjddZe jje jjddZe jjddZdS)CTETestT)ZctesZeachc Cs\td|tdtddtdtdtdtdtd |tdtddtdtdtdtdS) N some_tableidT)Z primary_keydata2 parent_idz some_table.idsome_other_table)rrrr r)clsmetadatarbC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-nyjtotrf\sqlalchemy\testing\suite\test_cte.py define_tabless     zCTETest.define_tablesc CsJ||jjdddddddddddddd ddd d ddgdS) Nd1)rrrrd2rd3d4d5)executetablesr insert)r connectionrrr insert_data%s      zCTETest.insert_datacCsf|jj}t||jjdddgd}|t|jj|jjddg}t | dgdS)Nrrrsome_cterr) r!r r wherecrin_cter rfetchall)selfr#r r*resultrrr#test_select_nonrecursive_round_trip2sz+CTETest.test_select_nonrecursive_round_tripcCs|jj}t||jjdddgjddd}|d}|}| t||jj |jj k}| t|jj|jjdk |jj}t|dd d d d d gdS) Nrrrr%T) recursiveZc1r&)r)r)r!r r r'r(rr)r*aliasZ union_allrrr order_bydescrr+)r,r#r r*Z cte_aliasZst1r-rrr test_select_recursive_round_trip?s0    z(CTETest.test_select_recursive_round_tripcCs|jj}|jj}t||jjdddgd}| | dddgt|t | t| |jjdd d gdS) Nrrrr%rrr)rrr)rrr)rrr)r!r rr r'r(rr)r*r r" from_selectrr1rr+r,r#r rr*rrr"test_insert_from_select_round_tripYs(z*CTETest.test_insert_from_select_round_tripcCs|jj}|jj}||dddgt|t||jj dddg d}|| j dd |jj |jj kt|t||jjd d d d dgdS)Nrrrrrrr%r)rrrN)rrr)rrr)rrrrrr)r!r rr r"r4r r'r(rr)r*updatevaluesrr1rr+r5rrrtest_update_from_round_tripns@z#CTETest.test_update_from_round_tripcCs|jj}|jj}||dddgt|t||jj dddg d}|| |jj |jj kt |t||jjdd gdS Nrrrrrrr%r7r8)r!r rr r"r4r r'r(rr)r*deleterr1rr+r5rrrtest_delete_from_round_trips2z#CTETest.test_delete_from_round_tripc Cs|jj}|jj}||dddgt|t||jj dddg d}|| |jj t|jj |jj |jj kkt|t||jj dd gdSr<)r!r rr r"r4r r'r(rr)r*r=rZscalar_subqueryrr1r+r5rrr"test_delete_scalar_subq_round_trips: z*CTETest.test_delete_scalar_subq_round_tripN)__name__ __module__ __qualname__Z __backend__ __requires__Z run_insertsZ run_deletes classmethodrr$r.r3r6r requiresZctes_with_update_deleteZ update_fromr;Z delete_fromr>r?rrrrr s&    ! r N)rZ assertionsrZschemarrrrr r r Z TablesTestr rrrrs