summaryrefslogtreecommitdiffstats
path: root/net/test/python_utils.cc
diff options
context:
space:
mode:
authorlzheng@chromium.org <lzheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-16 21:45:48 +0000
committerlzheng@chromium.org <lzheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-16 21:45:48 +0000
commit9af13ce69bac1bea70068ba9ecb20549c27e52ae (patch)
tree7060a0342a419d2d3d1174ff4005ff6371fc03a5 /net/test/python_utils.cc
parent18539ee85b09a1398eb545a46f137bf336670202 (diff)
downloadchromium_src-9af13ce69bac1bea70068ba9ecb20549c27e52ae.zip
chromium_src-9af13ce69bac1bea70068ba9ecb20549c27e52ae.tar.gz
chromium_src-9af13ce69bac1bea70068ba9ecb20549c27e52ae.tar.bz2
Re checkin 59671.
Revert 59680 - Revert 59671 - Refactor test_server so some python related functions could be shared by other test servers. BUG=none TEST=python_utils_unittest.cc Review URL: http://codereview.chromium.org/3366026 TBR=thakis@chromium.org Review URL: http://codereview.chromium.org/3415011 TBR=lzheng@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59728 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/test/python_utils.cc')
-rw-r--r--net/test/python_utils.cc51
1 files changed, 51 insertions, 0 deletions
diff --git a/net/test/python_utils.cc b/net/test/python_utils.cc
new file mode 100644
index 0000000..5f574fe
--- /dev/null
+++ b/net/test/python_utils.cc
@@ -0,0 +1,51 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "net/test/python_utils.h"
+
+#include "base/base_paths.h"
+#include "base/environment.h"
+#include "base/file_path.h"
+#include "base/path_service.h"
+#include "base/scoped_ptr.h"
+#include "base/utf_string_conversions.h"
+
+const char kPythonPathEnv[] = "PYTHONPATH";
+
+void AppendToPythonPath(const FilePath& dir) {
+ scoped_ptr<base::Environment> env(base::Environment::Create());
+ std::string old_path;
+ std::string dir_path;
+#if defined(OS_WIN)
+ dir_path = WideToUTF8(dir.value());
+#elif defined(OS_POSIX)
+ dir_path = dir.value();
+#endif
+ if (!env->GetVar(kPythonPathEnv, &old_path)) {
+ env->SetVar(kPythonPathEnv, dir_path.c_str());
+ } else if (old_path.find(dir_path) == std::string::npos) {
+ std::string new_path(old_path);
+#if defined(OS_WIN)
+ new_path.append(";");
+#elif defined(OS_POSIX)
+ new_path.append(":");
+#endif
+ new_path.append(dir_path.c_str());
+ env->SetVar(kPythonPathEnv, new_path);
+ }
+}
+
+bool GetPythonRunTime(FilePath* dir) {
+#if defined(OS_WIN)
+ if (!PathService::Get(base::DIR_SOURCE_ROOT, dir))
+ return false;
+ *dir = FilePath(FILE_PATH_LITERAL("third_party"))
+ .Append(FILE_PATH_LITERAL("python_24"))
+ .Append(FILE_PATH_LITERAL("python.exe"));
+#elif defined(OS_POSIX)
+ *dir = FilePath("python");
+#endif
+ return true;
+}
+