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", ])