Load Python providers in unit tests and bazel_tools

Preparing for rules_python upgrade to 0.40.0 and removal of Python providers from Bazel.

Add missing loads for PyInfo and PyRuntimeInfo in tests and in @bazel_tools.
Move PyRuntimeInfo into the testing code. It's not used in production code anymore.
Put PyInfo and PyRuntimeInfo symbols into TestConstants. To support split of  locations internally and in Bazel.

PiperOrigin-RevId: 697976776
Change-Id: Iac93cd927432507249f166e9bf71a422cebed666
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyBinaryConfiguredTargetTest.java b/src/test/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyBinaryConfiguredTargetTest.java
index 0629e05..9345b0b 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyBinaryConfiguredTargetTest.java
+++ b/src/test/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyBinaryConfiguredTargetTest.java
@@ -301,6 +301,7 @@
     }
     scratch.file(
         "toolchains/rules.bzl",
+        getPyLoad("PyRuntimeInfo"),
         "def _custom_impl(ctx):",
         indentedBody,
         "custom = rule(",
diff --git a/src/test/java/com/google/devtools/build/lib/rules/python/BUILD b/src/test/java/com/google/devtools/build/lib/rules/python/BUILD
index f531620..d6363ad 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/python/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/python/BUILD
@@ -34,6 +34,7 @@
     name = "PythonTestUtils",
     srcs = [
         "PyInfo.java",
+        "PyRuntimeInfo.java",
         "PythonTestUtils.java",
     ],
     deps = [
@@ -42,10 +43,12 @@
         "//src/main/java/com/google/devtools/build/lib/cmdline",
         "//src/main/java/com/google/devtools/build/lib/collect/nestedset",
         "//src/main/java/com/google/devtools/build/lib/packages",
+        "//src/main/java/com/google/devtools/build/lib/rules/python",
         "//src/main/java/com/google/devtools/build/lib/skyframe:bzl_load_value",
         "//src/main/java/net/starlark/java/eval",
         "//src/test/java/com/google/devtools/build/lib/testutil:TestConstants",
         "//third_party:guava",
+        "//third_party:jsr305",
         "//third_party:junit4",
     ],
 )
@@ -97,6 +100,7 @@
     srcs = ["PyExecutableConfiguredTargetTestBase.java"],
     deps = [
         ":PyBaseTestBase",
+        ":PythonTestUtils",
         "//src/main/java/com/google/devtools/build/lib/actions",
         "//src/main/java/com/google/devtools/build/lib/actions:artifacts",
         "//src/main/java/com/google/devtools/build/lib/analysis:configured_target",
@@ -206,6 +210,7 @@
     name = "PyRuntimeInfoTest",
     srcs = ["PyRuntimeInfoTest.java"],
     deps = [
+        ":PythonTestUtils",
         "//src/main/java/com/google/devtools/build/lib/actions:artifacts",
         "//src/main/java/com/google/devtools/build/lib/collect/nestedset",
         "//src/main/java/com/google/devtools/build/lib/rules/python",
diff --git a/src/test/java/com/google/devtools/build/lib/rules/python/PyInfo.java b/src/test/java/com/google/devtools/build/lib/rules/python/PyInfo.java
index 8f0b9dd..081f95d 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/python/PyInfo.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/python/PyInfo.java
@@ -101,11 +101,7 @@
   /** The PyInfo provider type object for the rules_python provider. */
   public static class RulesPythonPyInfoProvider extends BaseProvider {
     private RulesPythonPyInfoProvider() {
-      super(
-          keyForBuild(
-              Label.parseCanonicalUnchecked(
-                  TestConstants.RULES_PYTHON_PACKAGE_ROOT
-                      + "/python/private/common:providers.bzl")));
+      super(keyForBuild(Label.parseCanonicalUnchecked(TestConstants.PYINFO_BZL)));
     }
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/rules/python/PyInfoTest.java b/src/test/java/com/google/devtools/build/lib/rules/python/PyInfoTest.java
index 1f3f8c3..fcc8c91 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/python/PyInfoTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/python/PyInfoTest.java
@@ -15,6 +15,7 @@
 package com.google.devtools.build.lib.rules.python;
 
 import static com.google.common.truth.Truth.assertThat;
+import static com.google.devtools.build.lib.rules.python.PythonTestUtils.getPyLoad;
 
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
@@ -44,6 +45,7 @@
     }
     scratch.overwriteFile(
         "defs.bzl",
+        getPyLoad("PyInfo"),
         "def _impl(ctx):",
         "    dummy_file = ctx.file.dummy_file",
         "    info = PyInfo(",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyRuntimeInfo.java b/src/test/java/com/google/devtools/build/lib/rules/python/PyRuntimeInfo.java
similarity index 96%
rename from src/main/java/com/google/devtools/build/lib/rules/python/PyRuntimeInfo.java
rename to src/test/java/com/google/devtools/build/lib/rules/python/PyRuntimeInfo.java
index fd81925..6d02304 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PyRuntimeInfo.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/python/PyRuntimeInfo.java
@@ -29,7 +29,7 @@
 import com.google.devtools.build.lib.packages.StarlarkInfo;
 import com.google.devtools.build.lib.packages.StarlarkProviderWrapper;
 import com.google.devtools.build.lib.skyframe.BzlLoadValue;
-import com.google.devtools.build.lib.starlarkbuildapi.python.PyRuntimeInfoApi;
+import com.google.devtools.build.lib.testutil.TestConstants;
 import javax.annotation.Nullable;
 import net.starlark.java.eval.EvalException;
 import net.starlark.java.eval.Starlark;
@@ -143,7 +143,8 @@
       super(
           keyForBuild(
               Label.parseCanonicalUnchecked(
-                  "//third_party/bazel_rules/rules_python/python/private/common:providers.bzl")));
+                  TestConstants.RULES_PYTHON_PACKAGE_ROOT
+                      + "/python/private/common:providers.bzl")));
     }
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java b/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java
index 5b68de5..c1523d5 100644
--- a/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java
+++ b/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java
@@ -129,6 +129,10 @@
    */
   public static final String RULES_PYTHON_PACKAGE_ROOT = "@@rules_python+/";
 
+  public static final String PYINFO_BZL = "@@rules_python+//python/private/common:providers.bzl";
+
+  public static final String PYRUNTIMEINFO_BZL = "@@rules_python+//python/private/common:providers.bzl";
+
   public static final ImmutableList<String> DOCS_RULES_PATHS = ImmutableList.of(
       "src/main/java/com/google/devtools/build/lib/rules");
 
diff --git a/tools/python/srcs_version.bzl b/tools/python/srcs_version.bzl
index 2ddbf6d..72d9bca 100644
--- a/tools/python/srcs_version.bzl
+++ b/tools/python/srcs_version.bzl
@@ -11,9 +11,10 @@
 # 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.
-
 """Defines an aspect for finding constraints on the Python version."""
 
+load("@rules_python//python:py_info.bzl", "PyInfo")
+
 _PY2 = "PY2"
 _PY3 = "PY3"