summaryrefslogtreecommitdiffstats
path: root/testing/mozbase/mozproxy/mozproxy/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'testing/mozbase/mozproxy/mozproxy/__init__.py')
-rw-r--r--testing/mozbase/mozproxy/mozproxy/__init__.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/testing/mozbase/mozproxy/mozproxy/__init__.py b/testing/mozbase/mozproxy/mozproxy/__init__.py
new file mode 100644
index 0000000000..5f7c1284d7
--- /dev/null
+++ b/testing/mozbase/mozproxy/mozproxy/__init__.py
@@ -0,0 +1,44 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import os
+import sys
+
+
+def path_join(*args):
+ path = os.path.join(*args)
+ return os.path.abspath(path)
+
+
+mozproxy_src_dir = os.path.dirname(os.path.realpath(__file__))
+mozproxy_dir = path_join(mozproxy_src_dir, "..")
+mozbase_dir = path_join(mozproxy_dir, "..")
+
+# needed so unit tests can find their imports
+if os.environ.get("SCRIPTSPATH", None) is not None:
+ # in production it is env SCRIPTS_PATH
+ mozharness_dir = os.environ["SCRIPTSPATH"]
+else:
+ # locally it's in source tree
+ mozharness_dir = path_join(mozbase_dir, "..", "mozharness")
+
+
+def get_playback(config):
+ """Returns an instance of the right Playback class"""
+ sys.path.insert(0, mozharness_dir)
+ sys.path.insert(0, mozproxy_dir)
+ sys.path.insert(0, mozproxy_src_dir)
+
+ from .server import get_backend
+ from .utils import LOG
+
+ tool_name = config.get("playback_tool", None)
+ if tool_name is None:
+ LOG.critical("playback_tool name not found in config")
+ return None
+ try:
+ return get_backend(tool_name, config)
+ except KeyError:
+ LOG.critical("specified playback tool is unsupported: %s" % tool_name)
+ return None