aboutsummaryrefslogtreecommitdiff
path: root/python/tests/toolchains/run_acceptance_test.py.tmpl
diff options
context:
space:
mode:
Diffstat (limited to 'python/tests/toolchains/run_acceptance_test.py.tmpl')
-rw-r--r--python/tests/toolchains/run_acceptance_test.py.tmpl70
1 files changed, 70 insertions, 0 deletions
diff --git a/python/tests/toolchains/run_acceptance_test.py.tmpl b/python/tests/toolchains/run_acceptance_test.py.tmpl
new file mode 100644
index 0000000..150e1a9
--- /dev/null
+++ b/python/tests/toolchains/run_acceptance_test.py.tmpl
@@ -0,0 +1,70 @@
+# Copyright 2022 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import os
+import subprocess
+import unittest
+
+
+class TestPythonVersion(unittest.TestCase):
+ @classmethod
+ def setUpClass(cls):
+ os.chdir("%test_location%")
+ rules_python_path = os.path.join(os.environ["TEST_SRCDIR"], "rules_python")
+
+ test_tmpdir = os.environ["TEST_TMPDIR"]
+ if %is_windows%:
+ home = os.path.join(test_tmpdir, "HOME")
+ os.mkdir(home)
+ os.environ["HOME"] = home
+
+ local_app_data = os.path.join(test_tmpdir, "LocalAppData")
+ os.mkdir(local_app_data)
+ os.environ["LocalAppData"] = local_app_data
+
+ # Bazelisk requires a cache directory be set
+ os.environ["XDG_CACHE_HOME"] = os.path.join(test_tmpdir, "xdg-cache-home")
+
+ # Unset this so this works when called by Bazel's latest Bazel build
+ # pipeline. It sets the following combination, which interfere with each other:
+ # * --sandbox_tmpfs_path=/tmp
+ # * --test_env=USE_BAZEL_VERSION
+ # * USE_BAZEL_VERSION=/tmp/<something>
+ os.environ.pop("USE_BAZEL_VERSION", None)
+
+ with open(".bazelrc", "w") as bazelrc:
+ bazelrc.write(
+ os.linesep.join(
+ [
+ 'build --override_repository rules_python="{}"'.format(
+ rules_python_path.replace("\\", "/")
+ ),
+ "build --test_output=errors",
+ ]
+ )
+ )
+
+ def test_match_toolchain(self):
+ output = subprocess.check_output(
+ f"bazel run @python//:python3 -- --version",
+ shell = True, # Shell needed to look up via PATH
+ text=True,
+ ).strip()
+ self.assertEqual(output, "Python %python_version%")
+
+ subprocess.run("bazel test //...", shell=True, check=True)
+
+
+if __name__ == "__main__":
+ unittest.main()