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) TestBaseNcCs|s t|dS)N)AssertionError)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_classcCsZ|jdkr(|jdkrd|_|jdks(tt|_t|_||_t |_ |j|j _dS)Nr!r )r!N) run_define_tablesrun_create_tables run_insertsrr othertables setup_bindbindsaZMetaDatametadata)r%rrrr"]s    zTablesTest._init_classcCs|jdkr||dS)Nr )r)_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-r2r3r4)rrrr_setup_each_tablesys       zTablesTest._setup_each_tablescCs|jdkr||dS)Nr!)r)r0r1)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)r6r7)rrrrrszTablesTest.setupcCs |dS)N)rC)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)rG)r%rrrteardown_classszTablesTest.teardown_classcCstjS)N)rdb)r%rrrr,szTablesTest.setup_bindcCs*t|dr|nt|dr&|dS)Ndisposeclose)rrJrK)r%r-rrrrEs   zTablesTest.dispose_bindcCsdS)Nr)r%r/rrrr2szTablesTest.define_tablescCsiS)Nr)r%rrrfixturesszTablesTest.fixturescCsdS)Nr)r%rrrr1szTablesTest.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)headersrBrr sz-TablesTest._load_fixtures..) rLitemslen isinstancer Z string_typesr+r/r;r-r<insert)r%Zrowsdatar)rTrBrr0s      zTablesTest._load_fixtures)!rrrrFr'r(r)r9rDr-r/r+r* classmethodr&r"r$r#r6r7rCrrrGrHr,rEr2rLr1rOrPr0rrrrr<s:           rcs2eZdZejddZddZfddZZS) RemovesEventscCstS)N)set)rrrr _event_fnsszRemovesEvents._event_fnscKs(|j|||ftj|||f|dS)N)r^addr Zlisten)rtargetnamerNkwrrr event_listenszRemovesEvents.event_listencs:x|jD]}tj|qWtt|}t|dr6|dS)Nr)r^r removesuperr\rr)rkeyZsuper_) __class__rrrs    zRemovesEvents.teardown) rrrr Zmemoized_propertyr^rcr __classcell__rr)rgrr\sr\c@seZdZeddZdS)_ORMTestcCstjjtjdS)N)r.ormsessionclose_all_sessions clear_mappers)r%rrrrHs z_ORMTest.teardown_classN)rrrr[rHrrrrrisric@s eZdZdS)ORMTestN)rrrrrrrrnsrnc@seZdZdZdZdZeddZeddZdd Z d d Z ed d Z eddZ eddZ ddZddZeddZddZddZeddZeddZdS) MappedTestr r!NcCs>||jdkrt|_||||dS)N)r"classesr r#_setup_once_classes_setup_once_mappersr$)r%rrrr& s zMappedTest.setup_classcCs||dS)N)_teardown_once_classrG)r%rrrrHszMappedTest.teardown_classcCs$||||dS)N)r6_setup_each_classes_setup_each_mappersr7)rrrrrszMappedTest.setupcCs(tjj|||dS)N)r.rjrkrl_teardown_each_mappers_teardown_each_classesrC)rrrrr!s zMappedTest.teardowncCs|jtdS)N)rpr5rirH)r%rrrrs's zMappedTest._teardown_once_classcCs|jdkr||jdS)Nr )run_setup_classes_with_register_classes setup_classes)r%rrrrq,s zMappedTest._setup_once_classescCs|jdkr||jdS)Nr )run_setup_mappersry setup_mappers)r%rrrrr1s zMappedTest._setup_once_mapperscCs|jdkr||jdS)Nr!)r{ryr|)rrrrru6s zMappedTest._setup_each_mapperscCs|jdkr||jdS)Nr!)rxryrz)rrrrrt: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) rpr}r Zwith_metaclassobjectrrrr)r%rNrrrrr)rrry>sz!MappedTest._with_register_classescCs|jdkrtjdS)Nr )r{r.rjrm)rrrrrvYs z!MappedTest._teardown_each_mapperscCs|jdkr|jdS)Nr )rxrpr5)rrrrrw`s z!MappedTest._teardown_each_classescCsdS)Nr)r%rrrrzdszMappedTest.setup_classescCsdS)Nr)r%rrrr|hszMappedTest.setup_mappers)rrrrxr{rpr[r&rHrrrsrqrrrurtryrvrwrzr|rrrrros"      roc@s,eZdZdZdZeddZeddZdS)DeclarativeMappedTestr cCsdS)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%rrr)rrrr~zszUDeclarativeMappedTest._with_register_classes..FindFixtureDeclarative.__init__N)rrrr~r)rrrFindFixtureDeclarativeysrc@seZdZejZdS)zFDeclarativeMappedTest._with_register_classes..DeclarativeBasicN)rrrrZTableZ __table_cls__rrrrDeclarativeBasic~sr)r/ metaclassr%) rprrr r/rr+r(r3rrI)r%rNrrZ _DeclBaser)rrryusz,DeclarativeMappedTest._with_register_classesN)rrrrxr{r[r#ryrrrrrms r)r@Z sqlalchemyr.rrrZenginesrZentitiesrrr r r Zext.declarativer rrrrr\rirnZAssertsExecutionResultsrorrrrrs(            *l