o znh+@sddlZddlZddlmZddlmZddlmZddlmZddl m Z ddl m Z dd l m Z d d lmZd d lm Z d d lmZd dlmZGdddeZGdddeZGdddeZGdddeZGdddeeZGdddeeejZGdddeZdS)N) assertions)config)schema)drop_all_tables) BasicEntity)ComparableEntity)adict)event)util)declarative_base)DeclarativeMetac@s:eZdZdZdZdZdZdZd ddZddZ ddZ dS) TestBaseNcCs|sJ|dSNr)selfvalmsgrrF/usr/local/lib/python3.10/dist-packages/sqlalchemy/testing/fixtures.pyassert_/szTestBase.assert_cCt|dr |dSdS)NsetUp)hasattrrrrrrsetup3  zTestBase.setupcCr)NtearDown)rrrrrrteardown7rzTestBase.teardownr) __name__ __module__ __qualname__ __whitelist__ __requires____unsupported_on__ __only_on__ __skip_if__rrrrrrrrs  rc@seZdZdZdZdZdZdZdZdZ dZ dZ dZ e ddZe ddZe dd Ze d d Zd d ZddZddZddZddZe ddZe ddZe ddZe ddZe ddZe d d!Ze d"d#Zd$d%Zd&d'Ze d(d)Z dS)* TablesTestonceeachNcCs|||dSr) _init_class_setup_once_tables_setup_once_insertsclsrrr setup_classUs zTablesTest.setup_classcCsZ|jdkr|jdkr d|_|jdvsJt|_t|_||_t |_ |j|j _dS)Nr)r()r)N) run_define_tablesrun_create_tables run_insertsr othertables setup_bindbindsaMetaDatametadatar-rrrr*]s    zTablesTest._init_classcC"|jdkr||dSdSNr(r2_load_fixtures insert_datar-rrrr,ks  zTablesTest._setup_once_insertscCsF|jdkr!||j|jdkr|j|j|j|jjdSdSr;r0 define_tablesr9r1 create_allr6r4updater-rrrr+qs   zTablesTest._setup_once_tablescCsb|jdkr!||j|jdkr|j|j|j|jjdS|jdkr/|j|jdSdSNr)r?rrrr_setup_each_tablesys    zTablesTest._setup_each_tablescCr:rCr<rrrr_setup_each_insertss  zTablesTest._setup_each_insertsc Cs|jdkr|j|jdkrt|j|j|jn |jdkr(t|j|j|jdkr||jdkr~|j;}t |jj D]+}z | | Wq>t jjyi}ztjd||ftjdWYd}~q>d}~wwWddS1suwYdSdSdS)Nr)zError emptying table %s: %r)file)r0r4clearr1rr9r6 run_deletesconnectreversed sorted_tablesexecutedeleter7exc DBAPIErrorr print_sysstderr)rconntableexrrr_teardown_each_tabless,       "z TablesTest._teardown_each_tablescC||dSr)rDrErrrrrs zTablesTest.setupcC |dSr)rVrrrrrs zTablesTest.teardowncCsJ|jr t|j|j|jdkr||jd|j_|jdur#d|_dSdSr;)r1rr9r6run_dispose_bind dispose_bindrun_setup_bindr-rrr_teardown_once_metadata_binds    z'TablesTest._teardown_once_metadata_bindcCrXr)r\r-rrrteardown_classs zTablesTest.teardown_classcCstjSr)rdbr-rrrr5zTablesTest.setup_bindcCs0t|dr |dSt|dr|dSdS)Ndisposeclose)rr`ra)r.r6rrrrZs    zTablesTest.dispose_bindcCdSrr)r.r9rrrr@zTablesTest.define_tablescCsiSrrr-rrrfixturesrczTablesTest.fixturescCrbrrr-rrrr>rczTablesTest.insert_datacCs||j||dSr)assert_sql_countr6)rcountfnrrr sql_count_zTablesTest.sql_count_cCs||j||dSr) assert_sqlr6)r callable_ statementsrrrsql_eq_rizTablesTest.sql_eq_csii}|D]$\}t|dkrq ttjr!|j|d<|dd|<q |jjD]vr;q4|j  fdd|Dq4dS)z4Insert rows as represented by the fixtures() method.r rrNcsg|] }tt|qSr)dictzip).0 column_valuesheadersrTrr sz-TablesTest._load_fixtures..) rditemslen isinstancer string_typesr4r9rKr6rLinsert)r.rowsdatarrrrr=s$       zTablesTest._load_fixtures)!rr r!r[r0r1r2rHrYr6r9r4r3 classmethodr/r*r,r+rDrErVrrr\r]r5rZr@rdr>rhrmr=rrrrr'<sT            r'cs2eZdZejddZddZfddZZS) RemovesEventscCstSr)setrrrr _event_fnsr_zRemovesEvents._event_fnscKs,|j|||ftj|||fi|dSr)raddr listen)rtargetnamergkwrrr event_listenszRemovesEvents.event_listencs:|jD]}tj|qtt|}t|dr|dSdS)Nr)rr removesuperr}rr)rkeysuper_ __class__rrrs     zRemovesEvents.teardown) rr r!r memoized_propertyrrr __classcell__rrrrr}s  r}c@seZdZeddZdS)_ORMTestcCstjjtjdSr)r7ormsessionclose_all_sessions clear_mappersr-rrrr]s z_ORMTest.teardown_classN)rr r!r|r]rrrrrsrc@ eZdZdS)ORMTestNrr r!rrrrrrc@seZdZdZdZdZeddZeddZdd Z d d Z ed d Z eddZ eddZ ddZddZeddZddZddZeddZeddZdS) MappedTestr(r)NcCs>||jdur t|_||||dSr)r*classesr r+_setup_once_classes_setup_once_mappersr,r-rrrr/ s  zMappedTest.setup_classcCrWr)_teardown_once_classr\r-rrrr]s zMappedTest.teardown_classcCs$||||dSr)rD_setup_each_classes_setup_each_mappersrErrrrrs zMappedTest.setupcCs(tjj|||dSr)r7rrr_teardown_each_mappers_teardown_each_classesrVrrrrr$s  zMappedTest.teardowncCs|jtdSr)rrGrr]r-rrrr*s  zMappedTest._teardown_once_classcC|jdkr ||jdSdSr;run_setup_classes_with_register_classes setup_classesr-rrrr/ zMappedTest._setup_once_classescCrr;run_setup_mappersr setup_mappersr-rrrr4rzMappedTest._setup_once_mapperscCrrCrrrrrr9 zMappedTest._setup_each_mapperscCrrCrrrrrr=rzMappedTest._setup_each_classescsl|jGfdddt}Gdddt|t}Gdddt|}Gdddt|}||_||_|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. ceZdZfddZdS)z6MappedTest._with_register_classes..FindFixturec||<t||||dSr)type__init__r. classnamebasesdict_ cls_registryrrrKz?MappedTest._with_register_classes..FindFixture.__init__Nrr r!rrrrr FindFixtureJrc@r)z0MappedTest._with_register_classes.._BaseNrrrrr_BaseOrrc@r)z0MappedTest._with_register_classes..BasicNrrrrrBasicRrrc@r)z5MappedTest._with_register_classes..ComparableNrrrrr ComparableUrrN) rrr with_metaclassobjectrrrr)r.rgrrrrrrrrAs z!MappedTest._with_register_classescCs|jdkr tjdSdSr;)rr7rrrrrrr\s z!MappedTest._teardown_each_mapperscCs|jdkr |jdSdSr;)rrrGrrrrrcs z!MappedTest._teardown_each_classescCrbrrr-rrrrgrczMappedTest.setup_classescCrbrrr-rrrrkrczMappedTest.setup_mappers)rr r!rrrr|r/r]rrrrrrrrrrrrrrrrrs4       rcs4eZdZdZdZeddZefddZZS)DeclarativeMappedTestr(cCrbrrr-rrrr+trcz(DeclarativeMappedTest._setup_once_tablescsx|jGfdddt}Gdddt}t|j||d}||_tt|||jj r8|j r:|j t j dSdSdS)Ncr)zLDeclarativeMappedTest._with_register_classes..FindFixtureDeclarativecrr)rrrrrrr}rzUDeclarativeMappedTest._with_register_classes..FindFixtureDeclarative.__init__NrrrrrFindFixtureDeclarative|rrc@seZdZejZdS)zFDeclarativeMappedTest._with_register_classes..DeclarativeBasicN)rr r!rTable __table_cls__rrrrDeclarativeBasics r)r9 metaclassr.)rrrr r9rrrrr4r1rArr^)r.rgrr _DeclBaserrrrxsz,DeclarativeMappedTest._with_register_classes) rr r!rrr|r+rrrrrrrps r)rQ sqlalchemyr7rrrenginesrentitiesrrr r r ext.declarativer rrrr'r}rrAssertsExecutionResultsrrrrrrs*            -l