ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ M!Vc@@sddlmZddlZddlmZddlmZddlmZm Z ddl Z ddl m Z ddl mZddlZd d lmZejsdd Zdd Zdd ZddZdZdZn.ddlmZmZmZmZmZmZddZddZiZdZdZe j dZ!dZ"dZ#e j e$e$dZ%dS(i(tabsolute_importNi(tutil(tdefault(t text_typetpy3k(t decorator(texci(tmockcC@sdS(s.Assert a == b, with repr messaging on failure.N((tatbtmsg((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pyteq_scC@sdS(s.Assert a != b, with repr messaging on failure.N((RR R ((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pytne_scC@sdS(s.Assert a is b, with repr messaging on failure.N((RR R ((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pytis_scC@sdS(s2Assert a is not b, with repr messaging on failure.N((RR R ((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pytis_not_scO@s5y|||t}Wn|k r0t}nXdS(N(tFalsetTrue(t except_clst callable_targstkwtsuccess((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pyt assert_raises s     cO@s?y|||Wn'|k r:}t|jdGHnXdS(Nsutf-8(Rtencode(RR RRtkwargste((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pytassert_raises_message*s  (R R R RRRcC@stjdd|}tjdd|}tjdd|}tjdd|}trrtjdd|}ntjdd|}dS(Ns^\s+?|\nts {2,}t s!Utu(tretsubR(RR R ((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pyteq_ignore_whitespace8scC@s_t|}tt|jd|jddjdd|jddjdddS(Ntdialects Rs (t _get_dialectR Rtcompiletreplace(telementt assert_stringR!((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pytassert_compiledHs  cC@s|dks|dkr"tjSy t|SWnrtk rttd|j|}|jt|<}|dkrt |_ n|dkrt |_ n|SXdS(NRssqlalchemy.dialects.%st postgresqltmssql( tNoneRtDefaultDialectt _dialectstKeyErrortgetattrt __import__tdialectsR!Rtimplicit_returningRtlegacy_schema_aliasing(tnamet dialect_modtd((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pyR"Ts       cO@sttj||S(sContext manager which expects one or more warnings. With no arguments, squelches all SAWarnings emitted via sqlalchemy.util.warn and sqlalchemy.util.warn_limited. Otherwise pass string expressions that will match selected warnings via regex; all non-matching warnings are sent through. The expect version **asserts** that the warnings were in fact seen. Note that the test suite sets SAWarning warnings to raise exceptions. (t_expect_warningstsa_exct SAWarning(tmessagesR((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pytexpect_warningses co@sit|}t|tjr6|tj r6dVn/t|sJdVnt|| dVWdQXdS(sContext manager which expects one or more warnings on specific dialects. The expect version **asserts** that the warnings were in fact seen. N(tdb_spect isinstanceRt string_typestconfigt_currentt _is_excludedR:(tdbR9Rtspec((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pytexpect_warnings_onus " c@stfd}|S(sDecorator form of expect_warnings(). Note that emits_warning does **not** assert that the warnings were in fact seen. c@s*tdt|||SWdQXdS(Ntassert_(R:R(tfnRR(R9(sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pytdecorates(R(R9RF((R9sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pyt emits_warningsc@stfd}|S(sVMark a test as emitting a warning on a specific dialect. With no arguments, squelches all SAWarning failures. Or pass one or more strings; these will be matched to the root of the warning description by warnings.filterwarnings(). Note that emits_warning_on does **not** assert that the warnings were in fact seen. c@s't|||SWdQXdS(N(RC(RERR(RAR9(sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pyRFs(R(RAR9RF((RAR9sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pytemits_warning_ons c#@sr1g|D]}tj|tj^q n|ttjdfd}tjd| dVWdQX|rndS(Nc@s|r)t| r)||||Ss3dSxyD]?}rU|j|sh r:||kr:j|Pq:q:W|dkr|||n||||dS(N(t issubclasstmatchtdiscardR*(R t exceptiontargRtfilter_(texc_clstfilterst real_warntregextseen(sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pytour_warns   s warnings.warn( RR#tItsettwarningstwarnR*Rtpatch(ROR9RRRDR RT((RORPRQRRRSsK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pyR6s+   (&t __future__RRRRtsqlalchemy.engineRt util.compatRRt contextlibtsqlalchemy.utilRt sqlalchemyRR7RWRtsqla_094R*R R R RRRtsqlalchemy.testing.assertionsR R'R,R"R:tcontextmanagerRCRGRHRR6(((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pyts6         .