
    ,h>                    <   S SK Jr  S SK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\	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)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     W/var/www/auris/envauris/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MetaDatar1   r$   s    r%   r   TablesTest._init_classQ   so      F*$$.(.%??n444G	W
>>#!{{}r4   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   r8   _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 rC   
r6   define_tablesr1   r7   
create_allr=   r:   updater;   
_sequencesr@   s    r%   r    TablesTest._setup_once_tablesf   s      F*c223$$.$$//9JJc2299:MM  !5!5!@!@A +r4   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   rL   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 .r4   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rS   rD   )r#   rH   s     r%   r+   TablesTest._setup_each_insertsy   sN    v%!"d  & #" &""rJ   c           	        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        [        [        R                  SS5      nU(       a  UR                  nU R                   S:w  a  U R                  S:w  a  U R                  S:X  a  U R                  R                  5        n[        [        U R
                  R                  R                  5       5       VVs/ s H  u  p4Uc  M
  UPM     snn5       Hd  n U(       a:  UR!                  5          UR#                  UR%                  5       5        S S S 5        ME  UR#                  UR%                  5       5        Mf     S S S 5        g g g g s  snnf ! , (       d  f       M  = f! [&        R(                  R*                   a+  n[-        SU< SU< 3[.        R0                  S9   S nAM  S nAff = f! , (       d  f       g = f)Nr   
savepointsFzError emptying table z: )file)r6   r:   clearr7   r   r1   r=   getattrr   requirementsenabledrun_deletesrF   reversedr   valuesbegin_nestedexecutedeleter>   exc
DBAPIErrorprintsysstderr)r#   rX   rH   tfkstableexs          r%   r,    TablesTest._teardown_each_tables   s   !!V+KK%%/-d.C.CTYYO!!'')##v-)$*?*?KV00,F
#++J ""f,&&&0  F*"d% )D 1188??A))HQ 	 )E
%!%!2!2!4 $U\\^ < "5!4 !LL8 #" + 1 - "5!4 66,, >CRH!$ ! #"s~   6I	G#!G#'I3G;
 G)*G;2I4G;I#I)
G83G;6I8G;;I H?9I?II
I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 rC   )r7   r   r1   r=   run_dispose_binddispose_bindrun_setup_bindr@   s    r%   r"   'TablesTest._teardown_once_metadata_bind   se      )#*>*>I6)SXX&$(!)CH *r4   c                "    [         R                  $ r   )r   dbr@   s    r%   r<   TablesTest.setup_bind   s    yyr4   c                    [        US5      (       a  UR                  5         g [        US5      (       a  UR                  5         g g )Ndisposeclose)hasattrrw   rx   )r$   r=   s     r%   rp   TablesTest.dispose_bind   s3    4##LLNT7##JJL $r4   c                    g r    )r$   metadatas     r%   rM   TablesTest.define_tables       r4   c                    0 $ r   r|   r@   s    r%   fixturesTablesTest.fixtures   s    	r4   c                    g r   r|   )r$   
connections     r%   rG   TablesTest.insert_data   r   r4   c                <    U R                  U R                  X!5        g r   )assert_sql_countr=   )r#   countfns      r%   
sql_count_TablesTest.sql_count_   s    dii3r4   c                <    U R                  U R                  X5        g r   )
assert_sqlr=   )r#   	callable_
statementss      r%   sql_eq_TablesTest.sql_eq_   s    		99r4   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)r   itemslen
isinstancestrr:   r   r1   r`   r=   rF   rb   insertdictzip)r$   headersrowsrk   datarj   rH   column_valuess           r%   rE   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	r|   )&__name__
__module____qualname____firstlineno__rq   r6   r7   r8   r^   ro   r=   r1   r:   r9   r;   r   fixturer&   r.   propertyr2   classmethodr   r!   r    r*   r+   r,   r"   r<   rp   rM   r   rG   r   r   rE   __static_attributes__r|   r4   r%   r   r      s{   N   K K DFEI^^D0
+ 1
+ ^^D
3% 4% % % - - & & B B8''R 
 
          4:  r4   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   rt   _compiled_cache)r#   _caches     r%   _disable_cacheNoCache._disable_cache   s/     **$(		!$*		!s   A
Ar|   N)r   r   r   r   r   r   r   r   r|   r4   r%   r   r      s    ^^D
3+ 4+r4   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r4   c                n    U R                   R                  XU45        [        R                  " XU40 UD6  g r   )r   addr   listen)r#   targetnamer   kws        r%   event_listenRemovesEvents.event_listen   s,    V2./V2,,r4   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   ,.r|   N)r   r   r   r   r   memoized_propertyr   r   r   r   r   r   r|   r4   r%   r   r      s>    	 - ^^D
3 4r4   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)	ComputedReflectionFixtureTesti  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0r4   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schemasr]   r   test_schemacomputed_columns_virtualappend_columncomputed_columns_stored)	r$   r}   r   r   r   r   r   ri   t2s	            r%   rM   +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 <r4   r|   )r   r   r   r   r8   r^   __backend____requires__recompiler   r   r   rM   r   r|   r4   r%   r   r     s@     $$K+K;LZZ,-F1 A Ar4   r   c                  &    \ rS rSrS rS rS rSrg)CacheKeyFixtureiW  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_equalX  s    %%'%%'=>>%%i0000= = | 		599%UYYeii1$'(8(8%:J:J$K wNNNN %L|r4   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>      155r4   r  c                    U R                   $ r   r  r  s    r%   r	  r
        r4   c                    U R                   $ r   r  r  s    r%   r	  r
    r  r4   c                    U R                   $ r   r  r  s    r%   r	  r
    r  r4   )	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_fixtureh  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
r4   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
r4   r|   N)r   r   r   r   r  r  r   r   r|   r4   r%   r   r   W  s     IVFr4   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     Kr4   c                .    U R                   R                  $ r   )r&  descriptionr-   s    r%   r+  :insertmanyvalues_fixture.<locals>.RandomCursor.description  s    ;;***r4   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 Kr4   N)
r   r   r   r   	__slots__r(  r   r+  r.  r   r|   r4   r%   RandomCursorr$    s%    		! 
	+ 
	+	r4   r4  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)r   r&  	statement
parametersgeneric_setinputsizescontextbatchr4  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)Nr@  )new)r   patchobject)dialectr;  r@  	orig_conns     r%   _exec_insertmany_context:insertmanyvalues_fixture.<locals>._exec_insertmany_context  s=    ZZ/1  

 W.
 
 
s	   3
A)rF  r@  rH  )	r   r>  r?  rF  rH  r4  r@  rG  r=  s	    ``  @@@@r%   insertmanyvalues_fixturerJ    sH       G<<L33I ( ./ +C'r4   )FF) 
__future__r   r  r0  r   rg   
sqlalchemyr>   baser   r   r   r   
assertionsr	   r
   r   r   r   r   r   r   sqlr   sql.elementsr   r   r   r   r   r   rJ  r|   r4   r%   <module>rQ     s    #   	 
        0   1  )M M`+ +  MJ M`cF cFN :?:Cr4   