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"