
    Ki:                    @   S SK Jr  S SKrS SKrS SKrS SKrSSKJr  SSK	J
r
  SSK	Jr  SSK	Jr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSK	Jr  SSK	Jr  SSKJr  SSKJr  SSKJr   " S S\5      r " S S5      r " S S5      r " S S\5      r " S S5      r SS jrg)    )annotationsN   )TestBase   )config)mock)	provision)eq_)ne_)adict)drop_all_tables_from_metadata   )event)util)sort_tables_and_constraints)visitors)ClauseElementc                  j   \ rS rSrSrSrSrSrSrSr	Sr
SrSrSrSr\R                   " SSS9S 5       r\R                   " SS	S9S
 5       r\S 5       r\S 5       r\S 5       r\S 5       rS rS rS r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r \S 5       r!S r"S r#\S 5       r$Sr%g)
TablesTest   onceeachNTclassautousescopec              #     #    U R                   nUR                  5         UR                  5         UR                  5         S v   UR	                  5         g 7fN)	__class___init_class_setup_once_tables_setup_once_inserts_teardown_once_metadata_bind)selfclss     a/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/sql.py_setup_tables_test_class#TablesTest._setup_tables_test_class7   s?     nn !((*s   AAfunctionc              #  t   #    U R                  5         U R                  5         S v   U R                  5         g 7fr   )_setup_each_tables_setup_each_inserts_teardown_each_tablesr$   s    r&   _setup_tables_test_instance&TablesTest._setup_tables_test_instanceD   s,     !  """$s   68c                    U R                   $ r   )_tables_metadatar.   s    r&   tables_test_metadataTablesTest.tables_test_metadataM   s    $$$    c                .   U R                   S:X  a)  U R                  S:X  a  SU l        U R                  S;   d   e[        5       U l        [        5       U l        [        5       U l        U R                  5       U l        [        R                  " 5       U l        g )Nr   r   )r   N)run_define_tablesrun_create_tablesrun_insertsr   othertables	sequences
setup_bindbindsaMetaDatar2   r%   s    r&   r    TablesTest._init_classQ   so      F*$$.(.%??n444G	W
>>#!{{}r5   c                    U R                   S:X  aE  U R                  5         U R                  R                  5        nU R	                  U5        S S S 5        g g ! , (       d  f       g = fNr   r9   _load_fixturesr>   begininsert_data)r%   conns     r&   r"   TablesTest._setup_once_inserts_   sJ    ??f$ !T% "! %!!   A
A%c                   U R                   S:X  a  U R                  U R                  5        U R                  S:X  a%  U R                  R	                  U R
                  5        U R                  R                  U R                  R                  5        U R                  R                  U R                  R                  5        g g rD   
r7   define_tablesr2   r8   
create_allr>   r;   updater<   
_sequencesrA   s    r&   r!   TablesTest._setup_once_tablesf   s      F*c223$$.$$//9JJc2299:MM  !5!5!@!@A +r5   c                   U R                   S:X  a  U R                  U R                  5        U R                  S:X  a%  U R                  R	                  U R
                  5        U R                  R                  U R                  R                  5        U R                  R                  U R                  R                  5        g U R                  S:X  a&  U R                  R	                  U R
                  5        g g Nr   rM   r.   s    r&   r+   TablesTest._setup_each_tableso   s    !!V+t445%%/%%00;KKt44;;<NN!!$"7"7"B"BC##v-!!,,TYY7 .r5   c                    U R                   S:X  aE  U R                  5         U R                  R                  5        nU R	                  U5        S S S 5        g g ! , (       d  f       g = frT   rE   r$   rI   s     r&   r,   TablesTest._setup_each_insertsy   sN    v%!"d  & #" &""rK   c                h   U R                   S:X  ae  U R                  R                  5         U R                  S:X  a   [	        U R
                  U R                  5        U R
                  R                  5         O0U R                  S:X  a   [	        U R
                  U R                  5        U R                   S:w  al  U R                  S:X  a[  U R                  S:X  aJ  U R                  R                  5        n[        R                  " U[        U R
                  5        S S S 5        g g g g ! , (       d  f       g = f)Nr   r   )r7   r;   clearr8   r   r2   r>   run_deletesrG   r	   delete_from_all_tablesr   rW   s     r&   r-    TablesTest._teardown_each_tables   s    !!V+KK%%/-d.C.CTYYO!!'')##v-)$*?*?K ""f,&&&0  F*"d00&$"7"7 #" + 1 - #"s   0'D##
D1c                   U R                   (       a   [        U R                  U R                  5        U R                  S:X  a  U R                  U R                  5        S U R                  l        U R                  b  S U l        g g rD   )r8   r   r2   r>   run_dispose_binddispose_bindrun_setup_bindrA   s    r&   r#   'TablesTest._teardown_once_metadata_bind   se      )#*>*>I6)SXX&$(!)CH *r5   c                "    [         R                  $ r   )r   dbrA   s    r&   r=   TablesTest.setup_bind   s    yyr5   c                    [        US5      (       a  UR                  5         g [        US5      (       a  UR                  5         g g )Ndisposeclose)hasattrrg   rh   )r%   r>   s     r&   r`   TablesTest.dispose_bind   s3    4##LLNT7##JJL $r5   c                    g r    )r%   metadatas     r&   rN   TablesTest.define_tables       r5   c                    0 $ r   rl   rA   s    r&   fixturesTablesTest.fixtures   s    	r5   c                    g r   rl   )r%   
connections     r&   rH   TablesTest.insert_data   ro   r5   c                <    U R                  U R                  X!5        g r   )assert_sql_countr>   )r$   countfns      r&   
sql_count_TablesTest.sql_count_   s    dii3r5   c                <    U R                  U R                  X5        g r   )
assert_sqlr>   )r$   	callable_
statementss      r&   sql_eq_TablesTest.sql_eq_   s    		99r5   c                f   0 0 p!U R                  5       R                  5        HH  u  p4[        U5      S:  a  M  [        U[        5      (       a  U R
                  U   nUS   X'   USS X#'   MJ     [        U R                  R
                  R                  5       5       H|  u  p5Uc  M
  X1;  a  M  U R                  R                  5        nUR                  UR                  5       X#    Vs/ s H  n[        [        X   U5      5      PM     sn5        SSS5        M~     gs  snf ! , (       d  f       M  = f)z4Insert rows as represented by the fixtures() method.r   r   r   N)rq   itemslen
isinstancestrr;   r   r2   valuesr>   rG   executeinsertdictzip)r%   headersrowstabledatafksrI   column_valuess           r&   rF   TablesTest._load_fixtures   s    B<<>//1KE4y1}%%%

5)!!WGNqr(DK 2 6  ''..0
JE }#!TLLN .2[-8M S?@-8 "!
 "!s   !D!'!DD!D!!
D0	rl   )&__name__
__module____qualname____firstlineno__ra   r7   r8   r9   r[   r_   r>   r2   r;   r:   r<   r   fixturer'   r/   propertyr3   classmethodr    r"   r!   r+   r,   r-   r#   r=   r`   rN   rq   rH   rz   r   rF   __static_attributes__rl   r5   r&   r   r      sz   N   K K DFEI^^D0
+ 1
+ ^^D
3% 4% % % - - & & B B8'( 
 
          4:  r5   r   c                  B    \ rS rSr\R
                  " SSS9S 5       rSrg)NoCache   Tr)   r   c              #     #    [         R                  R                  nS [         R                  l        S v   U[         R                  l        g 7fr   )r   rd   _compiled_cache)r$   _caches     r&   _disable_cacheNoCache._disable_cache   s/     **$(		!$*		!s   A
Arl   N)r   r   r   r   r   r   r   r   rl   r5   r&   r   r      s    ^^D
3+ 4+r5   r   c                  l    \ rS rSr\R
                  S 5       rS r\R                  " SSS9S 5       r
Srg	)
RemovesEvents   c                    [        5       $ r   )setr.   s    r&   
_event_fnsRemovesEvents._event_fns   s	    ur5   c                n    U R                   R                  XU45        [        R                  " XU40 UD6  g r   )r   addr   listen)r$   targetnamery   kws        r&   event_listenRemovesEvents.event_listen   s,    V2./V2,,r5   Tr)   r   c              #  `   #    S v   U R                    H  n[        R                  " U6   M     g 7fr   )r   r   remove)r$   keys     r&   _remove_eventsRemovesEvents._remove_events   s"     ??CLL# #s   ,.rl   N)r   r   r   r   r   memoized_propertyr   r   r   r   r   r   rl   r5   r&   r   r      s>    	 - ^^D
3 4r5   r   c                  ^    \ rS rSrS=rrSrSr\R                  " S5      r
S r\S 5       rSrg)	ComputedReflectionFixtureTest   NT)computed_columnstable_reflectionz[\[\]\(\)\s`'\"]*c                V    U R                   R                  SU5      R                  5       $ )N )regexpsublower)r$   texts     r&   	normalize'ComputedReflectionFixtureTest.normalize   s     {{r4(..00r5   c                   SSK Jn  SSK Jn  SSKJn  SSKJn  SSKJn  U" SUU" SUS	S
9U" SU5      U" SX%" S5      5      U" SUSS95        U" SUU" SUS	S
9U" SU5      U" SX%" S5      5      5      nUR                  R                  R                  (       a3  U" SUU" SUS	S
9U" SU5      U" SX%" S5      5      [        R                  S9nUR                  R                  R                  (       aa  UR                  U" SUU" SSS95      5        UR                  R                  R                  (       a  WR                  U" SUU" SSS95      5        UR                  R                  R                  (       ac  UR                  U" SUU" SS	S95      5        UR                  R                  R                  (       a  WR                  U" SUU" SS	S95      5        g g g )Nr   )Integer)testing)Column)Computed)Tablecomputed_default_tableidT)primary_keynormalcomputed_colznormal + 42with_default42)server_defaultcomputed_column_tablecomputed_no_flagznormal / 42)schemacomputed_virtualz
normal + 2F)	persistedz
normal / 2computed_storedznormal - 42znormal * 42)r   r   r   r   r   r   r   requiresschemasenabledr   test_schemacomputed_columns_virtualappend_columncomputed_columns_stored)	r%   rm   r   r   r   r   r   tt2s	            r&   rN   +ComputedReflectionFixtureTest.define_tables   s   $&#$4d38W%>7H],CD>74@	
 #4d38W%%w0GH
 ##++'tW$7x))7H]4KL))B 44<<OO&\U; ''//  * ? 33;;OO%]d; ''//  ) $? 0 <r5   rl   )r   r   r   r   r9   r[   __backend____requires__recompiler   r   r   rN   r   rl   r5   r&   r   r      s@     $$K+K;LZZ,-F1 A Ar5   r   c                  &    \ rS rSrS rS rS rSrg)CacheKeyFixtureiB  c                   UR                  5       nUR                  5       nUc+  UR                  R                  S5      (       d   eUb   e XE4$ [        UR                  UR                  5        [        [        UR                  5      [        UR                  5      5        [        UR                  UR                  5       H  u  pgUR                  XsS9(       a  M   e   XE4$ )Nnocachecompare_values)	_generate_cache_key_annotationsgetr
   r   hashr   
bindparamscompare)r$   abr   a_keyb_keya_paramb_params           r&   _compare_equalCacheKeyFixture._compare_equalC  s    %%'%%'=>>%%i0000= = | 		599%UYYeii1$'(8(8%:J:J$K wNNNN %L|r5   c           	     b   U" 5       nU" 5       n[         R                  " [        [        U5      5      S5       GHs  u  pVXV:X  a   U R	                  X5   XF   U5      u  pxUc  M)  GOX5   R                  5       nXF   R                  5       nUb  UcP  Uc$  X5   R                  R                  S5      (       d   eUc$  XF   R                  R                  S5      (       d   eM  UR                  UR                  :X  a`  [        UR                  UR                  5       H  u  pU	R                  XS9(       a  M    OC   [        UR                  UR                  5        O [        UR                  UR                  5        [        X5   [        5      (       d  GMY  [        XF   [        5      (       d  GMs  / n/ n[        R                   " X5   5       H&  nUR"                  S:X  d  M  UR%                  U5        M(     [        R                   " XF   5       H&  nUR"                  S:X  d  M  UR%                  U5        M(     ['        [)        UR                  S S9[)        [*        R,                  " U5      S S95        ['        [)        UR                  S S9[)        [*        R,                  " U5      S	 S95        GMv     g )
Nr   r   r   	bindparamc                    U R                   $ r   r   r   s    r&   <lambda>8CacheKeyFixture._run_cache_key_fixture.<locals>.<lambda>      155r5   r   c                    U R                   $ r   r   r   s    r&   r   r        r5   c                    U R                   $ r   r   r   s    r&   r   r    r  r5   c                    U R                   $ r   r   r   s    r&   r   r    r  r5   )	itertoolscombinations_with_replacementranger   r   r   r   r   r   r   r   r   r   r   r   r   iterate__visit_name__appendr
   sortedr   unique_list)r$   r   r   case_acase_br   r   r   r   r   r   assert_a_paramsassert_b_paramselems                 r&   _run_cache_key_fixture&CacheKeyFixture._run_cache_key_fixtureS  sT   ;;#f+
DA v#22Ivy.  = ! 	557	557=EM}%y5599)DDDD}%y5599)DDDD99		),/((%*:*:-(  '#  /     "- EIIuyy1		599-
 &)]33
	=9 9 #%"$$,,VY7D**k9'..t4 8 %,,VY7D**k9'..t4 8 5++A((9 5++A((9A
r5   c                    U" 5       nU" 5       n[         R                  " [        [        U5      5      S5       H  u  pVU R	                  X5   XF   U5        M     g )Nr   )r  r  r	  r   r   )r$   r   r   r  r  r   r   s          r&   _run_cache_key_equal_fixture,CacheKeyFixture._run_cache_key_equal_fixture  sM    ;;#f+
DA 	69nE
r5   rl   N)r   r   r   r   r   r  r  r   rl   r5   r&   r   r   B  s     IVFr5   r   c                   ^^^^^^ U R                   nUR                  mU R                  m " S S5      mUUUU4S jmUU4S jnX@l        g )Nc                  4    \ rS rSrSrS r\S 5       rS rSr	g).insertmanyvalues_fixture.<locals>.RandomCursori  cursorc                    Xl         g r   r  )r$   r  s     r&   __init__7insertmanyvalues_fixture.<locals>.RandomCursor.__init__  s     Kr5   c                .    U R                   R                  $ r   )r  descriptionr.   s    r&   r"  :insertmanyvalues_fixture.<locals>.RandomCursor.description  s    ;;***r5   c                |    U R                   R                  5       n[        U5      n[        R                  " U5        U$ r   )r  fetchalllistrandomshuffle)r$   r   s     r&   r%  7insertmanyvalues_fixture.<locals>.RandomCursor.fetchall  s.    ;;'')D:DNN4 Kr5   N)
r   r   r   r   	__slots__r  r   r"  r%  r   rl   r5   r&   RandomCursorr    s%    		! 
	+ 
	+	r5   r+  c              3     >#    T	(       a  T" U5      nT" U UUUUU5       H5  nT
(       a'  UR                   (       a  [        R                  " S5        Uv   M7     g 7f)Nz)Batches were downgraded for sorted INSERT)is_downgradedr   warn)rt   r  	statement
parametersgeneric_setinputsizescontextbatchr+  orig_dialectrandomize_rowswarn_on_downgradeds          r&   !_deliver_insertmanyvalues_batchesCinsertmanyvalues_fixture.<locals>._deliver_insertmanyvalues_batches  sU      !&)F!!
E "e&9&9		EFK
s   AAc                   > [         R                  R                  U STS9   T" X5      sS S S 5        $ ! , (       d  f       g = f)Nr7  )new)r   patchobject)dialectr2  r7  	orig_conns     r&   _exec_insertmany_context:insertmanyvalues_fixture.<locals>._exec_insertmany_context  s=    ZZ/1  

 W.
 
 
s	   3
A)r=  r7  r?  )	rt   r5  r6  r=  r?  r+  r7  r>  r4  s	    ``  @@@@r&   insertmanyvalues_fixturerA    sH       G<<L33I ( ./ +C'r5   )FF) 
__future__r   r  r'  r   
sqlalchemyr?   baser   r   r   r   r	   
assertionsr
   r   r   r   r   r   r   r   sqlr   sql.elementsr   r   r   r   r   r   rA  rl   r5   r&   <module>rH     s    #   	         0   1  )x xv+ +  MJ M`cF cFN :?:Cr5   