# Copyright 2024 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. """Test for py_wheel.""" load("@rules_testing//lib:analysis_test.bzl", "test_suite") load("//python/private:envsubst.bzl", "envsubst") # buildifier: disable=bzl-visibility _basic_tests = [] def _test_envsubst_braceless(env): env.expect.that_str( envsubst("--retries=$PIP_RETRIES", ["PIP_RETRIES"], {"PIP_RETRIES": "5"}.get), ).equals("--retries=5") env.expect.that_str( envsubst("--retries=$PIP_RETRIES", [], {"PIP_RETRIES": "5"}.get), ).equals("--retries=$PIP_RETRIES") env.expect.that_str( envsubst("--retries=$PIP_RETRIES", ["PIP_RETRIES"], {}.get), ).equals("--retries=") _basic_tests.append(_test_envsubst_braceless) def _test_envsubst_braces_without_default(env): env.expect.that_str( envsubst("--retries=${PIP_RETRIES}", ["PIP_RETRIES"], {"PIP_RETRIES": "5"}.get), ).equals("--retries=5") env.expect.that_str( envsubst("--retries=${PIP_RETRIES}", [], {"PIP_RETRIES": "5"}.get), ).equals("--retries=${PIP_RETRIES}") env.expect.that_str( envsubst("--retries=${PIP_RETRIES}", ["PIP_RETRIES"], {}.get), ).equals("--retries=") _basic_tests.append(_test_envsubst_braces_without_default) def _test_envsubst_braces_with_default(env): env.expect.that_str( envsubst("--retries=${PIP_RETRIES:-6}", ["PIP_RETRIES"], {"PIP_RETRIES": "5"}.get), ).equals("--retries=5") env.expect.that_str( envsubst("--retries=${PIP_RETRIES:-6}", [], {"PIP_RETRIES": "5"}.get), ).equals("--retries=${PIP_RETRIES:-6}") env.expect.that_str( envsubst("--retries=${PIP_RETRIES:-6}", ["PIP_RETRIES"], {}.get), ).equals("--retries=6") _basic_tests.append(_test_envsubst_braces_with_default) def _test_envsubst_nested_both_vars(env): env.expect.that_str( envsubst( "${HOME:-/home/$USER}", ["HOME", "USER"], {"HOME": "/home/testuser", "USER": "mockuser"}.get, ), ).equals("/home/testuser") _basic_tests.append(_test_envsubst_nested_both_vars) def _test_envsubst_nested_outer_var(env): env.expect.that_str( envsubst( "${HOME:-/home/$USER}", ["HOME"], {"HOME": "/home/testuser", "USER": "mockuser"}.get, ), ).equals("/home/testuser") _basic_tests.append(_test_envsubst_nested_outer_var) def _test_envsubst_nested_no_vars(env): env.expect.that_str( envsubst( "${HOME:-/home/$USER}", [], {"HOME": "/home/testuser", "USER": "mockuser"}.get, ), ).equals("${HOME:-/home/$USER}") env.expect.that_str( envsubst("${HOME:-/home/$USER}", ["HOME", "USER"], {}.get), ).equals("/home/") _basic_tests.append(_test_envsubst_nested_no_vars) def _test_envsubst_nested_braces_inner_var(env): env.expect.that_str( envsubst( "Home directory is ${HOME:-/home/$USER}.", ["HOME", "USER"], {"USER": "mockuser"}.get, ), ).equals("Home directory is /home/mockuser.") env.expect.that_str( envsubst( "Home directory is ${HOME:-/home/$USER}.", ["USER"], {"USER": "mockuser"}.get, ), ).equals("Home directory is ${HOME:-/home/mockuser}.") _basic_tests.append(_test_envsubst_nested_braces_inner_var) def envsubst_test_suite(name): test_suite( name = name, basic_tests = _basic_tests, )