
    [h                    ^   d dl mZ d dlmZ d dl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 ddlmZ ddlmZ ddlmZ  G d de          Z G d dee	ej                  Z G d de          Z G d d          Z e            Zd Zd Z d Z!d Z"dS )    )annotations)AnyN   )TestBase)
TablesTest   )
assertions)config)schema)BasicEntity)ComparableEntity)adict   )orm)DeclarativeBase)events)registryc                  .    e Zd Zej        d             ZdS )ORMTestc                    t                      S N)fixture_sessionselfs    n/var/www/api.easyaligner.net/htdocs/venv_linux/lib/python3.11/site-packages/sqlalchemy/testing/fixtures/orm.pyr   zORMTest.fixture_session   s           N)__name__
__module____qualname__r
   fixturer    r   r   r   r      s/        ^! ! ^! ! !r   r   c                  D   e Zd ZU dZdZdZded<    ej        dd          d	             Z	 ej        dd
          d             Z
ed             Zed             Zed             Zd Zd Zed             Zed             Zd Zd Zed             Zed             ZdS )
MappedTestonceeachNr   classesTclass)autousescopec              #  l  K   | j         }|                                 |j        t                      |_        |                                 |                                 |                                 |                                 d V  |                                 |	                                 d S 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_classz#MappedTest._setup_tables_test_class*   s      n;''CK   !!!!!!!!!  """((*****r   functionc              #  f  K   |                                   |                                  |                                  |                                  d V  t          j                                         |                                  |                                  | 	                                 d S 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_instancez&MappedTest._setup_tables_test_instance<   s      !!!  """  """  """&&(((##%%%##%%%""$$$$$r   c                8    | j                                          d S r   )r&   clearr3   s    r   r1   zMappedTest._teardown_once_classJ   s    r   c                T    | j         dk    r|                     | j                   d S d S Nr$   run_setup_classes_with_register_classessetup_classesrC   s    r   r.   zMappedTest._setup_once_classesN   s5     F**&&s'899999 +*r   c                    | j         dk    r=|                                 \  | _        | _        |                     | j                   d S d S rE   )run_setup_mappers_generate_registrymapper_registrymapperrH   setup_mappersrC   s    r   r/   zMappedTest._setup_once_mappersS   sP     F**.1.D.D.F.F+C&&s'899999 +*r   c                    | j         dk    r+|                                 \  | j        _        | j        _        | j         dk    r|                     | j                   d S d S )Nr$   r%   )rK   rL   r+   rM   rN   rH   rO   r   s    r   r9   zMappedTest._setup_each_mappersY   sk    !V++ '')).% !V++''(:;;;;; ,+r   c                T    | j         dk    r|                     | j                   d S d S )Nr%   rF   r   s    r   r8   zMappedTest._setup_each_classesc   s5    !V++''(:;;;;; ,+r   c                >    t          | j                  }||j        fS )N)metadata)r   _tables_metadatamap_imperatively)r3   decls     r   rL   zMappedTest._generate_registryg   s#    !5666T***r   c                    | j          G fdd          } G d dt          |          } G d dt          |          }|| _        || _         |             dS )zRun a setup method, framing the operation with a Base class
        that will catch new subclasses to be established within
        the "classes" registry.

        c                  $     e Zd Zd fdZ xZS )0MappedTest._with_register_classes.<locals>._BasereturnNonec                d    J | | j         <   t                                                       d S r   r   super__init_subclass__)r3   r+   cls_registrys    r   r_   zBMappedTest._with_register_classes.<locals>._Base.__init_subclass__v   s7    #///-0S\*))+++++r   rZ   r[   )r   r   r   r_   __classcell__)r+   r`   s   @r   _BaserY   u   sC        , , , , , , , , , , ,r   rc   c                      e Zd ZdS )0MappedTest._with_register_classes.<locals>.BasicNr   r   r   r!   r   r   Basicre   {           Dr   rg   c                      e Zd ZdS )5MappedTest._with_register_classes.<locals>.ComparableNrf   r!   r   r   
Comparablerj   ~   rh   r   rk   N)r&   r   r   rg   rk   )r3   fnrc   rg   rk   r`   s        @r   rH   z!MappedTest._with_register_classesl   s     {	, 	, 	, 	, 	, 	, 	, 	, 	, 	,	 	 	 	 	K 	 	 		 	 	 	 	)5 	 	 	 	#
r   c                F    | j         dk    rt          j                     d S d S rE   )rK   r   clear_mappersr   s    r   r=   z!MappedTest._teardown_each_mappers   s/     !V++ ,+r   c                R    | j         dk    r| j                                         d S d S rE   )rG   r&   rB   r   s    r   r>   z!MappedTest._teardown_each_classes   s2    !V++L      ,+r   c                    d S r   r!   rC   s    r   rI   zMappedTest.setup_classes       r   c                    d S r   r!   rC   s    r   rO   zMappedTest.setup_mappers   rq   r   )r   r   r   rG   rK   r&   __annotations__r
   r    r4   r@   classmethodr1   r.   r/   r9   r8   rL   rH   r=   r>   rI   rO   r!   r   r   r#   r#   !   s         GV^D000+ + 10+" V^D
333% % 43%   [ : : [: : : [:
< < << < < + + [+   [0     ! ! !   [   [  r   r#   c                  L     e Zd ZdZdZed             Ze fd            Z xZS )DeclarativeMappedTestr$   c                    d S r   r!   rC   s    r   r-   z(DeclarativeMappedTest._setup_once_tables   rq   r   c                     j          G  fddt                    }| _        t                                          |            j        j        r- j        r( j                            t          j
                   d S d S d S )Nc                       e Zd Zej        Zj        Ze e	j
                                         e	j
        d          ddd          iZd fdZ xZS )	?DeclarativeMappedTest._with_register_classes.<locals>._DeclBase2   mysqlmariadboraclerZ   r[   c                V    J | | j         <    t                      j        di | d S )Nr!   r]   )r3   kwr+   r`   s     r   r_   zQDeclarativeMappedTest._with_register_classes.<locals>._DeclBase.__init_subclass__   s>    #///-0S\*))//B/////r   ra   )r   r   r   r   Table__table_cls__rT   rS   strsaStringwith_varianttype_annotation_mapr_   rb   )r+   r3   r`   s   @r   	_DeclBaserz      s        "LM+HYRY[[--BIbMM7Ix #0 0 0 0 0 0 0 0 0 0 0r   r   )r&   r   DeclarativeBasicr^   rH   rT   tablesrun_create_tables
create_allr
   db)r3   rl   r   r`   r+   s   `  @r   rH   z,DeclarativeMappedTest._with_register_classes   s    {	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0  ) 	&&r***& 	73+@ 	7 ++FI66666	7 	7 	7 	7r   )	r   r   r   rG   rK   rt   r-   rH   rb   )r+   s   @r   rv   rv      si          [ 7 7 7 7 [7 7 7 7 7r   rv   c                  B    e Zd Z ej        d          d             ZdS )RemoveORMEventsGloballyT)r(   c              #  >  K   d V  t           j                                         t           j                                         t           j                                         t           j                                         t           j                                         d S r   )
orm_eventsMapperEvents_clearInstanceEventsSessionEventsInstrumentationEventsQueryEventsr   s    r   _remove_listenersz)RemoveORMEventsGlobally._remove_listeners   s~      &&(((!((*** '')))(//111%%'''''r   N)r   r   r   r
   r    r   r!   r   r   r   r      s=        V^D!!!( ( "!( ( (r   r   c                     |                      dd           |                      dd           |                     dt          j                  }t	          j        |fi | }t                              |           |S )N	autoflushTexpire_on_commitbind)
setdefaultpopr
   r   r   Session_fixture_sessionsadd)r   r   sesss      r   r   r      sp    MM+t$$$MM$d+++66&&)$$D;t""r""D$Kr   c                 ^    t          j                     t                                           d S r   )r   r<   r   rB   r!   r   r   r<   r<      s)    r   c                H    t                       t          j                     d S r   )r<   r   rn   rC   s    r   stop_test_class_inside_fixturesr      s#    r   c                 4    t           rt                       d S d S r   )r   r<   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#   rv   r   setr   r   r<   r   r   r!   r   r   <module>r      s   # " " " " "                                         " " " " " " ' ' ' ' ' '             " " " " " " ' ' ' ' ' '      ! ! ! ! !h ! ! !u u u u u*j&H u u up!7 !7 !7 !7 !7J !7 !7 !7H( ( ( ( ( ( ( ( CEE       
    r   