From 30e9097985656920f01a72efc1088caa2b8d41b3 Mon Sep 17 00:00:00 2001 From: bertagaz Date: Tue, 14 Jun 2011 15:26:19 +0200 Subject: Imported Upstream version 0.5.29 --- misc/build_helpers/run_trial.py | 55 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 misc/build_helpers/run_trial.py (limited to 'misc/build_helpers/run_trial.py') diff --git a/misc/build_helpers/run_trial.py b/misc/build_helpers/run_trial.py new file mode 100644 index 0000000..eb9c63a --- /dev/null +++ b/misc/build_helpers/run_trial.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python + +import os, sys, re + +modulename = None +for i in xrange(1, len(sys.argv)): + if not sys.argv[i].startswith('-'): + modulename = sys.argv[i] + break + +if modulename is None: + raise AssertionError("no test module specified") + +__import__(modulename) +srcfile = sys.modules[modulename].__file__ +srcdir = os.path.dirname(os.path.realpath(srcfile)) +for i in modulename.split('.'): + srcdir = os.path.dirname(srcdir) + +if os.path.normcase(srcdir).endswith('.egg'): + srcdir = os.path.dirname(srcdir) +elif os.path.normcase(os.path.basename(srcdir)) == 'site-packages': + srcdir = os.path.dirname(srcdir) + if re.search(r'python.+\..+', os.path.normcase(os.path.basename(srcdir))): + srcdir = os.path.dirname(srcdir) + if os.path.normcase(os.path.basename(srcdir)) == 'lib': + srcdir = os.path.dirname(srcdir) + +srcdir = os.path.normcase(os.path.normpath(srcdir)) +cwd = os.path.normcase(os.path.normpath(os.getcwd())) + +same = (srcdir == cwd) +if not same: + try: + same = os.path.samefile(srcdir, cwd) + except AttributeError, e: + e # hush pyflakes + +if not same: + msg = ("We seem to be testing the code at %r\n" + "(according to the source filename %r),\n" + "but expected to be testing the code at %r.\n" + % (srcdir, srcfile, cwd)) + if (not isinstance(cwd, unicode) and + cwd.decode(sys.getfilesystemencoding(), 'replace') != os.path.normcase(os.path.normpath(os.getcwdu()))): + msg += ("However, this may be a false alarm because the current directory path\n" + "is not representable in the filesystem encoding. This script needs to be\n" + "run from the source directory to be tested, at a non-Unicode path.") + else: + msg += "This script needs to be run from the source directory to be tested." + + raise AssertionError(msg) + +from twisted.scripts.trial import run +run() \ No newline at end of file -- cgit v1.2.3