B 4]>*@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) TestBaseNcCsdS)Nr)selfvalmsgrrN/opt/alt/python37/lib64/python3.7/site-packages/sqlalchemy/testing/fixtures.pyassert_/szTestBase.assert_cCst|dr|dS)NsetUp)hasattrr)rrrrsetup3s zTestBase.setupcCst|dr|dS)NtearDown)rr)rrrrteardown7s zTestBase.teardown)N) __name__ __module__ __qualname__Z __whitelist__Z __requires__Z__unsupported_on__Z __only_on__Z __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|||dS)N) _init_class_setup_once_tables_setup_once_inserts)clsrrr setup_classUszTablesTest.setup_classcCsL|jdkr|jdkrd|_t|_t|_||_t|_ |j|j _dS)Nr r) run_define_tablesrun_create_tablesr othertables setup_bindbindsaZMetaDatametadata)r$rrrr!]s    zTablesTest._init_classcCs|jdkr||dS)Nr) run_inserts_load_fixtures insert_data)r$rrrr#ks zTablesTest._setup_once_insertscCsB|jdkr>||j|jdkr.|j|j|j|jjdS)Nr)r& define_tablesr-r' create_allr+r)update)r$rrrr"qs    zTablesTest._setup_once_tablescCs|jdkrl|j|jdkr,t|j|j|j||j|jdkrZ|j|j|j |jjn&|jdkrt|j|j|j|jdS)Nr ) r&r)clearr'rr-r+r1r2r3)rrrr_setup_each_tablesys       zTablesTest._setup_each_tablescCs|jdkr||dS)Nr )r.r/r0)rrrr_setup_each_insertss zTablesTest._setup_each_insertsc Cs|jdkr|jdkr|jn}xft|jjD]V}y||Wq.t j j k r}zt j d||ftjdWdd}~XYq.Xq.WWdQRXdS)Nr zError emptying table %s: %r)file)r& run_deletesr+Zconnectreversedr- sorted_tablesexecutedeleter,excZ DBAPIErrorr print_sysstderr)rZconntableZexrrr_teardown_each_tabless  z TablesTest._teardown_each_tablescCs||dS)N)r5r6)rrrrrszTablesTest.setupcCs |dS)N)rB)rrrrrszTablesTest.teardowncCsF|jrt|j|j|jdkr*||jd|j_|jdk rBd|_dS)Nr)r'rr-r+run_dispose_bind dispose_bindrun_setup_bind)r$rrr_teardown_once_metadata_binds   z'TablesTest._teardown_once_metadata_bindcCs |dS)N)rF)r$rrrteardown_classszTablesTest.teardown_classcCstjS)N)rdb)r$rrrr*szTablesTest.setup_bindcCs*t|dr|nt|dr&|dS)Ndisposeclose)rrIrJ)r$r+rrrrDs   zTablesTest.dispose_bindcCsdS)Nr)r$r-rrrr1szTablesTest.define_tablescCsiS)Nr)r$rrrfixturesszTablesTest.fixturescCsdS)Nr)r$rrrr0szTablesTest.insert_datacCs||j||dS)N)Zassert_sql_countr+)rcountfnrrr sql_count_szTablesTest.sql_count_cCs||j||dS)N)Z assert_sqlr+)rZ callable_Z statementsrrrsql_eq_szTablesTest.sql_eq_csii}xX|D]H\}t|dkr.qttjrD|j|d<|dd|<qWx@|jjD]4kr|qn|j  fdd|DqnWdS)z4Insert rows as represented by the fixtures() method.r rrNcsg|]}tt|qSr)dictzip).0Z column_values)headersrArr sz-TablesTest._load_fixtures..) rKitemslen isinstancer Z string_typesr)r-r:r+r;insert)r$Zrowsdatar)rSrArr/s      zTablesTest._load_fixtures)!rrrrEr&r'r.r8rCr+r-r)r( classmethodr%r!r#r"r5r6rBrrrFrGr*rDr1rKr0rNrOr/rrrrr<s:           rcs2eZdZejddZddZfddZZS) RemovesEventscCstS)N)set)rrrr _event_fnsszRemovesEvents._event_fnscKs(|j|||ftj|||f|dS)N)r]addr Zlisten)rtargetnamerMkwrrr event_listenszRemovesEvents.event_listencs:x|jD]}tj|qWtt|}t|dr6|dS)Nr)r]r removesuperr[rr)rkeyZsuper_) __class__rrrs    zRemovesEvents.teardown) rrrr Zmemoized_propertyr]rbr __classcell__rr)rfrr[sr[c@seZdZeddZdS)_ORMTestcCstjjtjdS)N)r,ormsessionclose_all_sessions clear_mappers)r$rrrrGs z_ORMTest.teardown_classN)rrrrZrGrrrrrhsrhc@s eZdZdS)ORMTestN)rrrrrrrrmsrmc@seZdZdZdZdZeddZeddZdd Z d d Z ed d Z eddZ eddZ ddZddZeddZddZddZeddZeddZdS) MappedTestrr NcCs>||jdkrt|_||||dS)N)r!classesr r"_setup_once_classes_setup_once_mappersr#)r$rrrr% s zMappedTest.setup_classcCs||dS)N)_teardown_once_classrF)r$rrrrGszMappedTest.teardown_classcCs$||||dS)N)r5_setup_each_classes_setup_each_mappersr6)rrrrrszMappedTest.setupcCs(tjj|||dS)N)r,rirjrk_teardown_each_mappers_teardown_each_classesrB)rrrrr!s zMappedTest.teardowncCs|jtdS)N)ror4rhrG)r$rrrrr's zMappedTest._teardown_once_classcCs|jdkr||jdS)Nr)run_setup_classes_with_register_classes setup_classes)r$rrrrp,s zMappedTest._setup_once_classescCs|jdkr||jdS)Nr)run_setup_mappersrx setup_mappers)r$rrrrq1s zMappedTest._setup_once_mapperscCs|jdkr||jdS)Nr )rzrxr{)rrrrrt6s zMappedTest._setup_each_mapperscCs|jdkr||jdS)Nr )rwrxry)rrrrrs:s zMappedTest._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. cseZdZfddZdS)z6MappedTest._with_register_classes..FindFixturecs||<t||||S)N)type__init__)r$ classnamebasesdict_) cls_registryrrr}Hsz?MappedTest._with_register_classes..FindFixture.__init__N)rrrr}r)rrr FindFixtureGsrc@s eZdZdS)z0MappedTest._with_register_classes.._BaseN)rrrrrrr_BaseLsrc@s eZdZdS)z0MappedTest._with_register_classes..BasicN)rrrrrrrBasicOsrc@s eZdZdS)z5MappedTest._with_register_classes..ComparableN)rrrrrrr ComparableRsrN) ror|r Zwith_metaclassobjectrrrr)r$rMrrrrr)rrrx>sz!MappedTest._with_register_classescCs|jdkrtjdS)Nr)rzr,rirl)rrrrruYs z!MappedTest._teardown_each_mapperscCs|jdkr|jdS)Nr)rwror4)rrrrrv`s z!MappedTest._teardown_each_classescCsdS)Nr)r$rrrrydszMappedTest.setup_classescCsdS)Nr)r$rrrr{hszMappedTest.setup_mappers)rrrrwrzrorZr%rGrrrrrprqrtrsrxrurvryr{rrrrrns"      rnc@s,eZdZdZdZeddZeddZdS)DeclarativeMappedTestrcCsdS)Nr)r$rrrr"qsz(DeclarativeMappedTest._setup_once_tablescsf|jGfdddt}Gdddt}t|j||d}||_||jjrb|jrb|jt j dS)NcseZdZfddZdS)zLDeclarativeMappedTest._with_register_classes..FindFixtureDeclarativecs||<t||||S)N)rr})r$r~rr)rrrr}zszUDeclarativeMappedTest._with_register_classes..FindFixtureDeclarative.__init__N)rrrr}r)rrrFindFixtureDeclarativeysrc@seZdZejZdS)zFDeclarativeMappedTest._with_register_classes..DeclarativeBasicN)rrrrZTableZ __table_cls__rrrrDeclarativeBasic~sr)r- metaclassr$) rorrr r-rr)r'r2rrH)r$rMrrZ _DeclBaser)rrrxusz,DeclarativeMappedTest._with_register_classesN)rrrrwrzrZr"rxrrrrrms r)r?Z sqlalchemyr,rrrZenginesrZentitiesrrr r r Zext.declarativer rrrrr[rhrmZAssertsExecutionResultsrnrrrrrs(            *l