Ñò
‡„[Jc @ st d d k Z d d k Z d d k Z d d k Z d d k l Z d Z e i d ƒ Z d „ Z d „ Z
d „ Z d S( iÿÿÿÿN( t ormt mappers ^(\s+)c C s± t i | | ƒ } | o
| i ƒ p d } x} t | d | !ƒ D]h } d | j o | St i | ƒ } | o
| i ƒ p d } | | j o Pn | i d ƒ o PqA qA Wd S( Nt i s testlib.pragmat :( t _whitespacet matcht groupt reversedt endswitht None( t linest currentt mt basist linet indent( ( s7 /usr/lib/python2.6/site-packages/sqlalchemy/test/orm.pyt _find_pragma
s
c sq ˆ i d ƒ o% ˆ i d ƒ o d ˆ d d !‰ n d ˆ ‰ d ˆ ‰ ‡ ‡ ‡ ‡ ‡ f d † ‰ ˆ ˆ _ ˆ S( sÐ Creates tripwired variant of a method, raising when called.
To excempt an invocation from blockage, there are two options.
1) add a pragma in a comment::
# testlib.pragma exempt:methodname
offending_line()
2) add a magic cookie to the function's namespace::
__sa_baremethodname_exempt__ = True
...
offending_line()
another_offending_lines()
The second is useful for testing and development.
t __s __sa_%s_exempt__i iþÿÿÿs exempt:c
sa d } zPt i ƒ d d } t i | d ƒ } | i i d d ƒ } t | ƒ } t | d d !Œ } | i d ƒ pK | o
ˆ | j p7 ˆ | i j p' d | i j o t
| i d ˆ t ƒ } | oc t
t | | ƒ ˆ d ƒ } | d j p t
| d
d ƒ ˆ j o ˆ | | | Ž S| | | Ž Sn+ t
d | i ˆ | | d | d f ƒ ‚ Wd ~ Xd S(
Ni i i t __name__R i i t
sqlalchemyt selft im_funcs! %s.%s called in %s, line %s in %si ( R t inspectt stackt getframeinfot f_globalst gett typeR t
startswitht f_localst getattrt Falset supert AssertionErrorR (
R t argst kwt frame_rt framet modulet type_t pragmat exemptt supermeth( t
pragma_markert method_namet methodt frame_markert fallback( s7 /usr/lib/python2.6/site-packages/sqlalchemy/test/orm.pyR- : s,
(( R R R ( R, R/ ( ( R, R. R/ R+ R- s7 /usr/lib/python2.6/site-packages/sqlalchemy/test/orm.pyt
_make_blocker! s
c O s$ d d d „ f d d d „ f d d d „ f d d d
„ f d d d „ f d
d d „ f d d d „ f d d d „ f d d d „ f g } t | t ƒ ot | i t f j oa x^ | D]R \ } } } t t i | t ƒ o- | | i j o t | | t
| | ƒ ƒ q· q· Wn t i | | | Ž S( Nt __hash__t
unhashablec S s
t | ƒ S( ( t id( t s( ( s7 /usr/lib/python2.6/site-packages/sqlalchemy/test/orm.pyt