summaryrefslogtreecommitdiff
path: root/src/server-tests/test_util__pydev.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/server-tests/test_util__pydev.py')
-rw-r--r--src/server-tests/test_util__pydev.py36
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