JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr g#$UddlmZddlZddlmZddlZddlZddlmZddlm Z ddl m Z ddl m Z ddl m Z dd l mZdd l mZdd l mZdd l mZdd l mZddlmZddlmZddlmZddlmZddlmZddlmZddlZddlm Z ddl!m"Z"ddl#m$Z$ddl%m&Z&ddl'm(Z(ddl)m*Z*ejVZ,e,j[dgGddeZGdd eeZd!e_.d*d"Z/iZ0d#e1d$<ed%Z2ed&Z3 d+d'Z4Gd(d)Z5y),) annotationsN)contextmanager)Any)Dict)Columncreate_mock_engine)inspect)MetaData)String)Table)testing)text)config)mock)eq_)FutureEngineMixin) TablesTest)TestBase) _get_dialect)EnvironmentContext)MigrationContext) Operations) sqla_compat)sqla_2ztest.cfgceZdZeZej dZej dZej dZ ej dZ y)rc#tK|jd5t|dddy#1swYyxYww)NT)_per_migration)begin_transactionr)selfmigration_contexts G/opt/hc_python/lib/python3.12/site-packages/alembic/testing/fixtures.py ops_contextzTestBase.ops_context)s/  0 0 0 E./ /F E Es8, 858cDtj|tdS)NT)transaction_per_migrationoptsr configuredictr" connections r$r#zTestBase.migration_context.s)) TDA  cFtj|tddS)NT)r'as_sqlr(r*r-s r$as_sql_migration_contextz!TestBase.as_sql_migration_context4s!)) TDN  r/c#zKtjj5}|dddy#1swYyxYwwN)rdbconnect)r"conns r$r.zTestBase.connection:s( YY   DJ! s;/ ;8;N) __name__ __module__ __qualname__ris_sqlalchemy_futurerfixturer%r#r2r.r/r$rr&sk!W__00 __   __   __r/rc eZdZy)rN)r8r9r:r=r/r$rr@sr/rTc6gfd}t||fS)Ncnjt|jjyN)dialect)appendstrcompilerB)sql multiparamsparamsbufengines r$dumpzcapture_db..dumpJs# 3s{{6>>{:;.configure^$ RS C  r/r+) popioBytesIOStringIOrVrr+rpatchobject)r[rIr+rZs` @r$capture_context_bufferrcTsv vvj% jjlkkmIIx#>?  ' 'D!   -{I F  G F FsB B)B B)B&"B)c+Kddlm}ddlm}t j |}|j }|j|dfd}jd|itjfd}tjjtd |5dddy#1swYyxYww) Nr)_sqlite_file_dbr)eventbefore_cursor_executec.j|dzy)N )write)r7cursor statement parameterscontext executemanyrIs r$bcez*capture_engine_context_buffer..bceqs )d"#r/r.c8|jdi|i|SrTrUrWs r$r+z0capture_engine_context_buffer..configurexr\r/r+)envre sqlalchemyrfr^r`r6 listens_forrVrr+rrarb) r[rerfengr7rpr+rIrZs ` @@r$capture_engine_context_bufferrvfs$ ++-C  C ;;=D t45$6$II|T"#  ' 'D!   -{I F  G F FsB B?%B3* B?3B<8B?cj i}|rt||d<Gfdd}| G fddt}r|d<|r||d<t| || _d _s fd }t j | } n |d <d} | | |} t| tj_ | S) N)naming_conventiontarget_metadatac$eZdZdZfdZdZy)op_fixture..buffer_cg|_yr4linesr"s r$__init__z$op_fixture..buffer_.__init__s DJr/c|j}tjdd|}r.tjdd|}tjdd|}|jj |y)N[\n\t]z z\;\n*$)stripresubr~rC)r"msgr1s r$rjz!op_fixture..buffer_.writes[))+C&&B,CffWb#.ffYC0 JJ  c "r/cyr4r=rs r$flushz!op_fixture..buffer_.flushs r/N)r8r9r:rrjr)r1sr$buffer_r{s  # r/rc6eZdZfdZfdZfdZfdZy)op_fixture..ctxcSr4r=r"rIs r$get_bufzop_fixture..ctx.get_bufsJr/c$gjddyr4r}rs r$clear_assertionsz(op_fixture..ctx.clear_assertionssCIIaLr/c tj|Dcgc]}tjdd|c}ycc}w)Nrr)rr~rr)r"rFsrIs r$assert_zop_fixture..ctx.assert_s2  cBcBFF9b!4cB CBs< cjD]}tjdd||vsyJd|dj)NrrzCould not locate fragment z in )r~rr)r"rFstmtrIs r$assert_containsz'op_fixture..ctx.assert_containssD 66)R-5"IIur/N)r8r9r:rrrr)rIsr$ctxrs   D  r/rr1 literal_bindsTct|tr t|}|jsJt|j }j |yrA) isinstancerDrsupports_executionrErj)r multiparamparamrFrI ctx_dialects r$executezop_fixture..executesE$$Dz** **dll;l78C IIcNr/)rBrrR) r rrsupports_native_boolean#non_native_boolean_check_constraintrMockralembicop_proxy) rBr1rxrnative_booleanr)rrrr.rnrIrs ` @@r$ op_fixturers D"*=N"O $ )C,X -_w'K!.< +;? 7  YY{GD #_ +z40G"7+GJJ Nr/c0eZdZdZdZdZdZdZddZy) AlterColRoundTripFixture) alter_columnctjj|_t j |j|_t|j |_t|_ yr4) rr5r6r7rr+rrrr metadatars r$setUpzAlterColRoundTripFixture.setUpsEII%%' #--dii8TXX&  r/ctd|}td|}|jjj||rJd|d|dy)Nqz Type objects  and  didn't compare as equivalent)rrimpl compare_type)r"t1t2c1c2s r$ _compare_typez&AlterColRoundTripFixture._compare_typesQ C_ C_88==--   LDF K L  r/ctd||}td||}|jjj||||rJd|d|dy)Nr)server_defaultzserver defaults rr)rrrcompare_server_default)r"rs1rs2rrs r$_compare_server_defaultz0AlterColRoundTripFixture._compare_server_defaults[ CB / CB /88==77 B  OGI2 N O  r/ctj|j|jj5|jj |jddd|jj y#1swY$xYwr4)r%_safe_rollback_connection_transactionr7beginrdrop_allclosers r$tearDownz!AlterColRoundTripFixture.tearDownsT99$))D YY__  MM " "499 -  s &BB NcVt|jdd|jdtd|jdd|jdd}td |j|}t j |j5|j|jt|j}|jd d }|jjd |j|j|j |jnd |j rdnd |jdd|jdd |jdd|jdd dddt|j}|jd d }||}t#|dd|vr|dn |j|j%|d|jddt#|d|jd|j |j'|d|jd d|jd|dd|vr|dj(y|j%|jj*j(ydy#1swY.xYw)Nnamecolnametype nullableTr)rrxrF) existing_typeexisting_server_defaultexisting_nullablerrnew_column_nametype_default)rgetr r rr_ensure_scope_for_ddlr7creater get_columnsrrrrrrrrrrrX) r"from_to_comparecolumntinspold_colnew_cols r$_run_alter_colz'AlterColRoundTripFixture._run_alter_colsY IIfi ( IIffRj )YYz40 99%5t<   #t}}f -  . .tyy 9 HHTYY 499%D&&s+A.G GG  $kk,,8))*0//$uT2"ww'7? # 5ggfd+ !  :0tyy!""3'* ?G FO%0GFOfkk   FOW[[A  GJ Z!IJ $$ FO KK 4 ( KK 0$w.().. ,,8))--22  M: 9s C#JJ(r4) r8r9r: __requires__rrrrrr=r/r$rrs$ %L# LO = r/r)z postgresql://)rFNFN)6 __future__r configparser contextlibrr^rtypingrrrsrr r r r r rrsqlalchemy.testingrrsqlalchemy.testing.assertionsrsqlalchemy.testing.fixturesrrSQLAlchemyTablesTestrSQLAlchemyTestBaser assertionsr environmentr migrationr operationsrutilrutil.sqla_compatr ConfigParsertesting_configreadr;rLrM__annotations__rcrvrrr=r/r$rs"% )%#-9JF$,(#%+**,ZL!!4 / *.&~"4   Qh^ ^ r/