ÿØÿà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@s,||ks(t|p"d||fdS(s.Assert a == b, with repr messaging on failure.s%r != %rN(tAssertionError(tatbtmsg((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pyteq_scC@s,||ks(t|p"d||fdS(s.Assert a != b, with repr messaging on failure.s%r == %rN(R(R R R ((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pytne_scC@s,||ks(t|p"d||fdS(s.Assert a is b, with repr messaging on failure.s %r is not %rN(R(R R R ((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pytis_scC@s,||k s(t|p"d||fdS(s2Assert a is not b, with repr messaging on failure.s%r is %rN(R(R R R ((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pytis_not_scO@sGy|||t}Wn|k r0t}nX|sCtddS(Ns#Callable did not raise an exception(tFalsetTrueR(t except_clst callable_targstkwtsuccess((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pyt assert_raises s     cO@sy#|||ts"tdWn[|k r}tj|t|tjsitd||ft|jdGHnXdS(Ns#Callable did not raise an exceptions%r !~ %ssutf-8(RRtretsearchRtUNICODEtencode(RR RRtkwargste((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pytassert_raises_message*s .(R R RRRRcC@stjdd|}tjdd|}tjdd|}tjdd|}trrtjdd|}ntjdd|}||kst|pd||fdS(Ns^\s+?|\nts {2,}t s!Utus%r != %r(RtsubRR(R R 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=(tdbR<Rtspec((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(R<(sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pytdecorates(R(R<RI((R<sK/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(RF(RHRR(RDR<(sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pyRIs(R(RDR<RI((RDR<sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pytemits_warning_ons c#@sr1g|D]}tj|tj^q n|ttjdfd}tjd| dVWdQX|r st ddj fdDndS(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.warnsWarnings were not seen: %ss, c3@s(|]}dr|jn|VqdS(s%rN(tpattern(t.0ts(RU(sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pys s( RR&tItsettwarningstwarnR-RtpatchRtjoin(RRR<RURGR RW((RRRSRTRURVsK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pyR9s+    (&t __future__RRRRtsqlalchemy.engineRt util.compatRRt contextlibtsqlalchemy.utilRt sqlalchemyRR:R]Rtsqla_094R-R R RRRRtsqlalchemy.testing.assertionsR#R*R/R%R=tcontextmanagerRFRJRKRR9(((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/assertions.pyts6         .