diff options
| author | LV-426 <lv-426@taproot.org.il> | 2015-03-30 21:24:44 +0300 |
|---|---|---|
| committer | LV-426 <lv-426@taproot.org.il> | 2015-04-01 22:25:55 +0300 |
| commit | 6428b2da00c0c3e7165a2997178be689409a886f (patch) | |
| tree | bb49105a1f59509b9ed38c2a5242881ee5a4594c /src/server-tests/test_util__pydev.py | |
| parent | 2badf757282eed92a8e1ebcebd9434d3726c1c06 (diff) | |
test_util__pydev.py: @debug__pydev_pd_arg main function decorator
Diffstat (limited to 'src/server-tests/test_util__pydev.py')
| -rw-r--r-- | src/server-tests/test_util__pydev.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/server-tests/test_util__pydev.py b/src/server-tests/test_util__pydev.py new file mode 100644 index 00000000..87e9f7b4 --- /dev/null +++ b/src/server-tests/test_util__pydev.py @@ -0,0 +1,36 @@ +""" +PYDev test utilities +""" +import sys +import logging + +log = logging.getLogger('rhizi') + +def py_dev(): + try: # enable pydev remote debugging + import pydevd + pydevd.settrace(trace_only_current_thread=False) + except ImportError as e: + pass + + +def debug__pydev_pd_arg(f_main): + """ + PyDev Eclipse remote debug decorator: + - follow PyDev's remote debugging instructions: http://pydev.org/manual_adv_remote_debugger.html + - decorate main test function with @debug__pydev_pd_arg + - pass the -pd command line argument + """ + + def main_decorated(*args, **kwargs): + if len(sys.argv) > 1 and sys.argv[1] == '-pd': + try: # enable pydev remote debugging + import pydevd + pydevd.settrace(trace_only_current_thread=False) + except ImportError as e: + log.exception('failed to import pydevd') + + sys.argv.pop() # hide extra arg from main() + f_main(*args, **kwargs) + + return main_decorated |
