From 6428b2da00c0c3e7165a2997178be689409a886f Mon Sep 17 00:00:00 2001 From: LV-426 Date: Mon, 30 Mar 2015 21:24:44 +0300 Subject: test_util__pydev.py: @debug__pydev_pd_arg main function decorator --- src/server-tests/test_util__pydev.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/server-tests/test_util__pydev.py (limited to 'src') 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 -- cgit v1.3.1