Update to 2.0.0 tree from current Fremantle build
[opencv] / tests / swig_python / cvtestutils.py
diff --git a/tests/swig_python/cvtestutils.py b/tests/swig_python/cvtestutils.py
new file mode 100644 (file)
index 0000000..063d787
--- /dev/null
@@ -0,0 +1,81 @@
+# cvtestutils.py
+#
+# This module is meant to aid writing and running Python-based tests 
+# within the OpenCV tree.  
+#
+# 2009-01-23, Roman Stanchak <rstanchak@gmail.com>
+#
+#
+# Upon importing, this module adds the following python module 
+# directories from the dev tree to sys.path (i.e. PYTHON_PATH):
+#    opencv/interfaces/swig/python and opencv/lib
+#
+# Using it in a test case is simple, just be sure to import 
+# cvtestutils before cv, highgui, etc
+#
+# Usage:
+# import cvtestutils
+# import cv
+
+import os
+import imp
+import sys
+
+def top_srcdir():
+    """
+    Return a string containing the top-level source directory in the OpenCV tree
+    """
+    dir = os.path.dirname(os.path.realpath(__file__))
+
+    # top level dir should be two levels up from this file
+    return os.path.realpath( os.path.join( dir, '..', '..' ) )
+
+def top_builddir():
+    """
+    Return a string containing the top-level build directory in the OpenCV tree.
+    Either returns realpath(argv[1]) or top_srcdir();
+    """
+    if len(sys.argv)>1: return os.path.realpath( sys.argv[1] );
+    else: return top_srcdir();
+
+def initpath():
+    """
+    Prepend the python module directories from the dev tree to sys.path 
+    (i.e. PYTHON_PATH)
+    """
+
+    # add path for OpenCV source directory (for adapters.py)
+    moduledir = os.path.join(top_srcdir(), 'interfaces','swig','python')
+    moduledir = os.path.realpath(moduledir)
+    sys.path.insert(0, moduledir) 
+
+    # add path for OpenCV build directory
+    moduledir = os.path.join(top_builddir(), 'interfaces','swig','python')
+    moduledir = os.path.realpath(moduledir)
+    sys.path.insert(0, moduledir) 
+
+    libdir = os.path.join(top_builddir(), 'lib' )
+    libdir = os.path.realpath(libdir)
+    sys.path.insert(0, libdir)
+
+def which():
+    """
+    Print the directory containing cv.py
+    """
+    import cv 
+    print "Using OpenCV Python in: " + os.path.dirname(cv.__file__)
+
+def datadir():
+    """
+    Return a string containing the full path to the python testdata directory
+    """
+    return os.path.sep.join([top_srcdir(), '..', 'opencv_extra', 'testdata', 'python'])
+
+### Module Initialization
+try:
+    if MODULE_LOADED:
+        pass
+except NameError:
+    initpath()
+    which()
+    MODULE_LOADED=1