# Copyright 2023 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.
load("//tests/support:sh_py_run_test.bzl", "py_reconfig_test", "sh_py_run_test")
load("//tests/support:support.bzl", "SUPPORTS_BOOTSTRAP_SCRIPT")
load(":venv_relative_path_tests.bzl", "relative_path_test_suite")

sh_py_run_test(
    name = "run_binary_zip_no_test",
    build_python_zip = "no",
    py_src = "bin.py",
    sh_src = "run_binary_zip_no_test.sh",
)

sh_py_run_test(
    name = "run_binary_zip_yes_test",
    build_python_zip = "yes",
    py_src = "bin.py",
    sh_src = "run_binary_zip_yes_test.sh",
)

sh_py_run_test(
    name = "run_binary_bootstrap_script_zip_yes_test",
    bootstrap_impl = "script",
    build_python_zip = "yes",
    py_src = "bin.py",
    sh_src = "run_binary_zip_yes_test.sh",
    target_compatible_with = SUPPORTS_BOOTSTRAP_SCRIPT,
)

sh_py_run_test(
    name = "run_binary_bootstrap_script_zip_no_test",
    bootstrap_impl = "script",
    build_python_zip = "no",
    py_src = "bin.py",
    sh_src = "run_binary_zip_no_test.sh",
    target_compatible_with = SUPPORTS_BOOTSTRAP_SCRIPT,
)

py_reconfig_test(
    name = "sys_path_order_bootstrap_script_test",
    srcs = ["sys_path_order_test.py"],
    bootstrap_impl = "script",
    env = {"BOOTSTRAP": "script"},
    imports = ["./USER_IMPORT/site-packages"],
    main = "sys_path_order_test.py",
    target_compatible_with = SUPPORTS_BOOTSTRAP_SCRIPT,
)

py_reconfig_test(
    name = "sys_path_order_bootstrap_system_python_test",
    srcs = ["sys_path_order_test.py"],
    bootstrap_impl = "system_python",
    env = {"BOOTSTRAP": "system_python"},
    imports = ["./site-packages"],
    main = "sys_path_order_test.py",
)

sh_py_run_test(
    name = "inherit_pythonsafepath_env_test",
    bootstrap_impl = "script",
    py_src = "bin.py",
    sh_src = "inherit_pythonsafepath_env_test.sh",
    target_compatible_with = SUPPORTS_BOOTSTRAP_SCRIPT,
)

sh_py_run_test(
    name = "sys_executable_inherits_sys_path",
    bootstrap_impl = "script",
    imports = ["./MARKER"],
    py_src = "call_sys_exe.py",
    sh_src = "sys_executable_inherits_sys_path_test.sh",
    target_compatible_with = SUPPORTS_BOOTSTRAP_SCRIPT,
)

relative_path_test_suite(name = "relative_path_tests")
