
    ,h                    H   S SK Jr  S SKJ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\\	\R2                  5      r " S S\5      r " S S5      r\" 5       rS rS r S r!S r"g)    )annotations)AnyN   )TestBase)
TablesTest   )
assertions)config)schema)BasicEntity)ComparableEntity)adict   )orm)DeclarativeBase)events)registryc                  8    \ rS rSr\R
                  S 5       rSrg)ORMTest   c                    [        5       $ N)fixture_sessionselfs    W/var/www/auris/envauris/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/orm.pyr   ORMTest.fixture_session   s           N)__name__
__module____qualname____firstlineno__r
   fixturer   __static_attributes__r   r   r   r   r      s    ^^! !r   r   c                     \ rS rSr% SrSrSrS\S'   \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 rS r\S 5       r\S 5       rS rS r\S 5       r\S 5       rSrg)
MappedTest!   onceeachNr   classesTclass)autousescopec              #  D  #    U R                   nUR                  5         UR                  c  [        5       Ul        UR	                  5         UR                  5         UR                  5         UR                  5         S v   UR                  5         UR                  5         g 7fr   )
	__class___init_classr+   r   _setup_once_tables_setup_once_classes_setup_once_mappers_setup_once_inserts_teardown_once_class_teardown_once_metadata_bind)r   clss     r   _setup_tables_test_class#MappedTest._setup_tables_test_class*   sv     nn;;'CK !!!  "((*s   BB functionc              #  0  #    U R                  5         U R                  5         U R                  5         U R                  5         S v   [        R
                  R                  5         U R                  5         U R                  5         U R                  5         g 7fr   )
_setup_each_tables_setup_each_classes_setup_each_mappers_setup_each_insertsr   sessionclose_all_sessions_teardown_each_mappers_teardown_each_classes_teardown_each_tablesr   s    r   _setup_tables_test_instance&MappedTest._setup_tables_test_instance<   sl     !  "  "  "&&(##%##%""$s   BBc                8    U R                   R                  5         g r   )r+   clearr8   s    r   r6   MappedTest._teardown_once_classJ   s    r   c                \    U R                   S:X  a  U R                  U R                  5        g g Nr)   run_setup_classes_with_register_classessetup_classesrJ   s    r   r3   MappedTest._setup_once_classesN   s)      F*&&s'8'89 +r   c                    U R                   S:X  a9  U R                  5       u  U l        U l        U R	                  U R
                  5        g g rM   )run_setup_mappers_generate_registrymapper_registrymapperrP   setup_mappersrJ   s    r   r4   MappedTest._setup_once_mappersS   sA      F*.1.D.D.F+C&&s'8'89 +r   c                    U R                   S:w  a1  U R                  5       u  U R                  l        U R                  l        U R                   S:X  a  U R                  U R                  5        g g )Nr)   r*   )rT   rU   r0   rV   rW   rP   rX   r   s    r   r?   MappedTest._setup_each_mappersY   s`    !!V+ '').% !!V+''(:(:; ,r   c                \    U R                   S:X  a  U R                  U R                  5        g g )Nr*   rN   r   s    r   r>   MappedTest._setup_each_classesc   s)    !!V+''(:(:; ,r   c                B    [        U R                  S9nXR                  4$ )N)metadata)r   _tables_metadatamap_imperatively)r8   decls     r   rU   MappedTest._generate_registryg   s!    !5!56****r   c                   ^ U R                   m " U4S jS5      n " S S[        U5      n " S S[        U5      nX0l        X@l        U" 5         g)zRun a setup method, framing the operation with a Base class
that will catch new subclasses to be established within
the "classes" registry.

c                  0   >^  \ rS rSrSU U4S jjrSrU =r$ )0MappedTest._with_register_classes.<locals>._Baseu   c                J   > Tc   eU TU R                   '   [        TU ]	  5         g r   r    super__init_subclass__)r8   r0   cls_registrys    r   rk   BMappedTest._with_register_classes.<locals>._Base.__init_subclass__v   s(    #///-0S\\*)+r   r   returnNone)r    r!   r"   r#   rk   r%   __classcell__)r0   rl   s   @r   _Baserf   u   s    , ,r   rr   c                      \ rS rSrSrg)0MappedTest._with_register_classes.<locals>.Basic{   r   Nr    r!   r"   r#   r%   r   r   r   Basicrt   {       r   rw   c                      \ rS rSrSrg)5MappedTest._with_register_classes.<locals>.Comparable~   r   Nrv   r   r   r   
Comparablerz   ~   rx   r   r|   N)r+   r   r   rw   r|   )r8   fnrr   rw   r|   rl   s        @r   rP   !MappedTest._with_register_classesl   sF     {{	, 	,	K 		)5 	 	#
r   c                P    U R                   S:w  a  [        R                  " 5         g g rM   )rT   r   clear_mappersr   s    r   rC   !MappedTest._teardown_each_mappers   s#     !!V+ ,r   c                Z    U R                   S:w  a  U R                  R                  5         g g rM   )rO   r+   rI   r   s    r   rD   !MappedTest._teardown_each_classes   s%    !!V+LL  ,r   c                    g r   r   rJ   s    r   rQ   MappedTest.setup_classes       r   c                    g r   r   rJ   s    r   rX   MappedTest.setup_mappers   r   r   r   )r    r!   r"   r#   rO   rT   r+   __annotations__r
   r$   r9   rF   classmethodr6   r3   r4   r?   r>   rU   rP   rC   rD   rQ   rX   r%   r   r   r   r'   r'   !   s     GS^^D0+ 1+" ^^D
3% 4%   : : : :
<< + +  0 !    r   r'   c                  J   ^  \ rS rSrSrSr\S 5       r\U 4S j5       rSr	U =r
$ )DeclarativeMappedTest   r)   c                    g r   r   rJ   s    r   r2   (DeclarativeMappedTest._setup_once_tables   r   r   c                "  >^ ^ T R                   m " U U4S jS[        5      nUT l        [        TT ]  U5        T R
                  R                  (       a<  T R                  (       a*  T R
                  R                  [        R                  5        g g g )Nc                     >^  \ rS rSr\R
                  r YR                  r\	\
R                  " 5       R                  \
R                  " S5      SSS5      0rSU U4S jjrSrU =r$ )	?DeclarativeMappedTest._with_register_classes.<locals>._DeclBase   2   mysqlmariadboraclec                N   > Tc   eU TU R                   '   [        TU ]  " S0 UD6  g )Nr   ri   )r8   kwr0   rl   s     r   rk   QDeclarativeMappedTest._with_register_classes.<locals>._DeclBase.__init_subclass__   s-    #///-0S\\*)/B/r   r   rn   )r    r!   r"   r#   r   Table__table_cls__r`   r_   strsaStringwith_varianttype_annotation_maprk   r%   rq   )r0   r8   rl   s   @r   	_DeclBaser      sP    "LLM++HRYY[--IIbM7Ix#0 0r   r   )r+   r   DeclarativeBasicrj   rP   r`   tablesrun_create_tables
create_allr
   db)r8   r}   r   rl   r0   s   `  @r   rP   ,DeclarativeMappedTest._with_register_classes   sn    {{	0 	0 	0  ) 	&r*&&3+@+@  ++FII6 ,A&r   r   )r    r!   r"   r#   rO   rT   r   r2   rP   r%   rq   )r0   s   @r   r   r      s5      7 7r   r   c                  @    \ rS rSr\R
                  " SS9S 5       rSrg)RemoveORMEventsGlobally   T)r-   c              #  @  #    S v   [         R                  R                  5         [         R                  R                  5         [         R                  R                  5         [         R
                  R                  5         [         R                  R                  5         g 7fr   )
orm_eventsMapperEvents_clearInstanceEventsSessionEventsInstrumentationEventsQueryEventsr   s    r   _remove_listeners)RemoveORMEventsGlobally._remove_listeners   sb     &&(!!((*  '')((//1%%'s   BBr   N)r    r!   r"   r#   r
   r$   r   r%   r   r   r   r   r      s    ^^D!( "(r   r   c                     U R                  SS5        U R                  SS5        U R                  S[        R                  5      n[        R
                  " U40 U D6n[        R                  U5        U$ )N	autoflushTexpire_on_commitbind)
setdefaultpopr
   r   r   Session_fixture_sessionsadd)r   r   sesss      r   r   r      sY    MM+t$MM$d+66&&))$D;;t"r"D$Kr   c                 V    [         R                  " 5         [        R                  5         g r   )r   rB   r   rI   r   r   r   rB   rB      s    r   c                B    [        5         [        R                  " 5         g r   )rB   r   r   rJ   s    r   stop_test_class_inside_fixturesr      s    r   c                 0    [         (       a  [        5         g g r   )r   rB   r   r   r   
after_testr      s     r   )#
__future__r   typingr   
sqlalchemyr   baser   sqlr    r	   r
   r   entitiesr   r   utilr   r   r   r   r   r   r   AssertsExecutionResultsr'   r   r   setr   r   rB   r   r   r   r   r   <module>r      s    #        " '   " ' !h !u*j&H&H up!7J !7H( ( E 
r   