Load Python rules in integration tests instead of using builtins (#2)
This is to facilitate moving the rule implementation out of Bazel itself and into rules_python. This also makes the tests pass when an allowlist is used to enforce that the Python rules are being loaded through rules_python instead of used from builtins.
This the same change as before, but with some internal fixes applied.
PiperOrigin-RevId: 565113515
Change-Id: I999dbfaace8cce2168e718093fe418d548ab1b73
diff --git a/src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/BUILD.builtin_test b/src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/BUILD.builtin_test
index 88e2202..c60473a 100644
--- a/src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/BUILD.builtin_test
+++ b/src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/BUILD.builtin_test
@@ -13,6 +13,7 @@
"exports_test",
)
load("@rules_testing//lib:analysis_test.bzl", "analysis_test")
+load("@rules_python//python:py_test.bzl", "py_test")
LINKABLE_MORE_THAN_ONCE = "LINKABLE_MORE_THAN_ONCE"
diff --git a/src/test/shell/integration/aquery_test.sh b/src/test/shell/integration/aquery_test.sh
index 70fc640..05b1c4f 100755
--- a/src/test/shell/integration/aquery_test.sh
+++ b/src/test/shell/integration/aquery_test.sh
@@ -1430,6 +1430,8 @@
local pkg="${FUNCNAME[0]}"
mkdir -p "$pkg" || fail "mkdir -p $pkg"
cat > "$pkg/BUILD" <<'EOF'
+load("@rules_python//python:py_binary.bzl", "py_binary")
+
py_binary(
name='foo',
srcs=['foo.py']
diff --git a/src/test/shell/integration/configured_query_test.sh b/src/test/shell/integration/configured_query_test.sh
index 4ddac2a..b853bd6 100755
--- a/src/test/shell/integration/configured_query_test.sh
+++ b/src/test/shell/integration/configured_query_test.sh
@@ -255,6 +255,8 @@
local -r pkg=$FUNCNAME
mkdir -p $pkg
cat > $pkg/BUILD <<'EOF'
+load("@rules_python//python:py_library.bzl", "py_library")
+
cc_library(
name = "cclib",
srcs = ["mylib.cc"],
@@ -326,6 +328,8 @@
local -r pkg=$FUNCNAME
mkdir -p $pkg
cat > $pkg/BUILD <<'EOF'
+load("@rules_python//python:py_library.bzl", "py_library")
+
cc_library(
name = "cclib_with_py_dep",
srcs = ["mylib2.cc"],
@@ -385,6 +389,8 @@
local -r pkg=$FUNCNAME
mkdir -p $pkg
cat > $pkg/BUILD <<'EOF'
+load("@rules_python//python:py_library.bzl", "py_library")
+
cc_library(
name = "cclib_with_py_dep",
srcs = ["mylib2.cc"],
@@ -414,6 +420,8 @@
local -r pkg=$FUNCNAME
mkdir -p $pkg
cat > $pkg/BUILD <<'EOF'
+load("@rules_python//python:py_library.bzl", "py_library")
+
cc_library(
name = "cclib_with_py_dep",
srcs = ["mylib2.cc"],
@@ -443,6 +451,8 @@
local -r pkg=$FUNCNAME
mkdir -p $pkg
cat > $pkg/BUILD <<'EOF'
+load("@rules_python//python:py_library.bzl", "py_library")
+
cc_library(
name = "cclib",
srcs = ["mylib.cc"],
@@ -866,6 +876,8 @@
local -r pkg=$FUNCNAME
mkdir -p $pkg
cat > $pkg/BUILD <<'EOF'
+load("@rules_python//python:py_library.bzl", "py_library")
+
py_library(
name = "pylib",
srcs = ["pylib.py"],
@@ -991,6 +1003,7 @@
cat > $pkg/BUILD <<'EOF'
load(":rules.bzl", "bool_flag", "list_flag", "root_rule")
+load("@rules_python//python:py_library.bzl", "py_library")
exports_files(["rules.bzl"])
@@ -1060,6 +1073,8 @@
mkdir -p $pkg
cat > $pkg/BUILD <<'EOF'
+load("@rules_python//python:py_library.bzl", "py_library")
+
py_library(
name = "foo",
srcs = ["pylib.py"],
diff --git a/src/test/shell/integration/modify_execution_info_test.sh b/src/test/shell/integration/modify_execution_info_test.sh
index 9e98dc7..d627c99 100755
--- a/src/test/shell/integration/modify_execution_info_test.sh
+++ b/src/test/shell/integration/modify_execution_info_test.sh
@@ -170,6 +170,8 @@
mkdir -p "$pkg" || fail "mkdir -p $pkg"
echo "load('//$pkg:shell.bzl', 'starlark_shell')" > "$pkg/BUILD"
cat >> "$pkg/BUILD" <<'EOF'
+load("@rules_python//python:py_binary.bzl", "py_binary")
+
starlark_shell(
name = "shelly",
output = "ok.txt",
diff --git a/src/test/shell/integration/nestedset_as_skykey_test.sh b/src/test/shell/integration/nestedset_as_skykey_test.sh
index 6669c51..567aca2 100755
--- a/src/test/shell/integration/nestedset_as_skykey_test.sh
+++ b/src/test/shell/integration/nestedset_as_skykey_test.sh
@@ -128,6 +128,8 @@
export DONT_SANITY_CHECK_SERIALIZATION=1
cat > foo/BUILD <<EOF
load(":foo.bzl", "foo_library", "foo_binary")
+load("@rules_python//python:py_binary.bzl", "py_binary")
+
py_binary(
name = "foocc",
srcs = ["foocc.py"],
diff --git a/src/test/shell/integration/param_file_flag_per_line_test.sh b/src/test/shell/integration/param_file_flag_per_line_test.sh
index 0dbcfe8..dad652b 100755
--- a/src/test/shell/integration/param_file_flag_per_line_test.sh
+++ b/src/test/shell/integration/param_file_flag_per_line_test.sh
@@ -127,6 +127,7 @@
cat > package/BUILD <<EOF
load(":lib.bzl", "flag_per_line")
+load("@rules_python//python:py_binary.bzl", "py_binary")
py_binary(
name = "flag_copy",
diff --git a/src/test/shell/integration/python_stub_test.sh b/src/test/shell/integration/python_stub_test.sh
index db2306a..49bf0bf 100755
--- a/src/test/shell/integration/python_stub_test.sh
+++ b/src/test/shell/integration/python_stub_test.sh
@@ -73,6 +73,8 @@
mkdir -p test
touch test/main3.py
cat > test/BUILD << EOF
+load("@rules_python//python:py_binary.bzl", "py_binary")
+
py_binary(name = "main3",
python_version = "PY3",
srcs = ["main3.py"],
@@ -91,6 +93,8 @@
function test_can_build_py_library_at_top_level_regardless_of_version() {
mkdir -p test
cat > test/BUILD << EOF
+load("@rules_python//python:py_library.bzl", "py_library")
+
py_library(
name = "lib3",
srcs = ["lib3.py"],
@@ -112,6 +116,8 @@
mkdir -p python_through_bash
cat > python_through_bash/BUILD << EOF
+load("@rules_python//python:py_binary.bzl", "py_binary")
+
py_binary(
name = "inner",
srcs = ["inner.py"],
diff --git a/src/test/shell/integration/python_test.sh b/src/test/shell/integration/python_test.sh
index 8b73fe9..16c68f1 100755
--- a/src/test/shell/integration/python_test.sh
+++ b/src/test/shell/integration/python_test.sh
@@ -84,6 +84,8 @@
function test_python_binary_empty_files_in_runfiles_are_regular_files() {
mkdir -p test/mypackage
cat > test/BUILD <<'EOF'
+load("@rules_python//python:py_test.bzl", "py_test")
+
py_test(
name = "a",
srcs = [
@@ -128,6 +130,8 @@
touch main.py script.sh
chmod u+x script.sh
cat > BUILD <<'EOF'
+load("@rules_python//python:py_binary.bzl", "py_binary")
+
py_binary(
name = 'py-tool',
srcs = ['main.py'],
diff --git a/src/test/shell/integration/run_test.sh b/src/test/shell/integration/run_test.sh
index 9fb73d7..c1f38cb 100755
--- a/src/test/shell/integration/run_test.sh
+++ b/src/test/shell/integration/run_test.sh
@@ -65,8 +65,13 @@
function write_py_files() {
mkdir -p py || fail "mkdir py failed"
- echo "py_binary(name = 'binary', srcs = ['binary.py'])" > py/BUILD
- echo "py_test(name = 'test', srcs = ['test.py'])" >> py/BUILD
+ cat > py/BUILD <<'EOF'
+load("@rules_python//python:py_binary.bzl", "py_binary")
+load("@rules_python//python:py_test.bzl", "py_test")
+
+py_binary(name = "binary", srcs = ["binary.py"])
+py_test(name = "test", srcs = ["test.py"])
+EOF
echo "print('Hello, Python World!')" >py/py.py
chmod +x py/py.py
diff --git a/src/test/shell/integration/runfiles_test.sh b/src/test/shell/integration/runfiles_test.sh
index fe4edc6..ba9c054 100755
--- a/src/test/shell/integration/runfiles_test.sh
+++ b/src/test/shell/integration/runfiles_test.sh
@@ -150,11 +150,15 @@
local -r pkg=$FUNCNAME
create_pkg $pkg
cat > BUILD << EOF
+load("@rules_python//python:py_library.bzl", "py_library")
+
py_library(name = "root",
srcs = ["__init__.py"],
visibility = ["//visibility:public"])
EOF
cat > $pkg/BUILD << EOF
+load("@rules_python//python:py_binary.bzl", "py_binary")
+
sh_binary(name = "foo",
srcs = [ "x/y/z.sh" ],
data = [ ":py",
diff --git a/src/test/shell/integration/stub_finds_runfiles_test.sh b/src/test/shell/integration/stub_finds_runfiles_test.sh
index aeb3d97..de7948c 100755
--- a/src/test/shell/integration/stub_finds_runfiles_test.sh
+++ b/src/test/shell/integration/stub_finds_runfiles_test.sh
@@ -37,6 +37,9 @@
function set_up() {
mkdir -p pkg pkg/java
cat > pkg/BUILD << 'EOF'
+load("@rules_python//python:py_binary.bzl", "py_binary")
+load("@rules_python//python:py_test.bzl", "py_test")
+
java_binary(name = "javabin",
main_class = "test.ExitZero",
srcs = [ "java/ExitZero.java", ])