xref: /aosp_15_r20/external/bazelbuild-rules_python/examples/bzlmod/tests/BUILD.bazel (revision 60517a1edbc8ecf509223e9af94a7adec7d736b8)
1*60517a1eSAndroid Build Coastguard Workerload("@python_versions//3.10:defs.bzl", py_binary_3_10 = "py_binary", py_test_3_10 = "py_test")
2*60517a1eSAndroid Build Coastguard Workerload("@python_versions//3.11:defs.bzl", py_binary_3_11 = "py_binary", py_test_3_11 = "py_test")
3*60517a1eSAndroid Build Coastguard Workerload("@python_versions//3.9:defs.bzl", py_binary_3_9 = "py_binary", py_test_3_9 = "py_test")
4*60517a1eSAndroid Build Coastguard Workerload("@rules_python//python:defs.bzl", "py_binary", "py_test")
5*60517a1eSAndroid Build Coastguard Workerload("@rules_python//python:versions.bzl", "MINOR_MAPPING")
6*60517a1eSAndroid Build Coastguard Workerload("@rules_python//python/config_settings:transition.bzl", py_versioned_binary = "py_binary", py_versioned_test = "py_test")
7*60517a1eSAndroid Build Coastguard Worker
8*60517a1eSAndroid Build Coastguard Workerpy_binary(
9*60517a1eSAndroid Build Coastguard Worker    name = "version_default",
10*60517a1eSAndroid Build Coastguard Worker    srcs = ["version.py"],
11*60517a1eSAndroid Build Coastguard Worker    main = "version.py",
12*60517a1eSAndroid Build Coastguard Worker)
13*60517a1eSAndroid Build Coastguard Worker
14*60517a1eSAndroid Build Coastguard Workerpy_binary_3_9(
15*60517a1eSAndroid Build Coastguard Worker    name = "version_3_9",
16*60517a1eSAndroid Build Coastguard Worker    srcs = ["version.py"],
17*60517a1eSAndroid Build Coastguard Worker    main = "version.py",
18*60517a1eSAndroid Build Coastguard Worker)
19*60517a1eSAndroid Build Coastguard Worker
20*60517a1eSAndroid Build Coastguard Workerpy_binary_3_10(
21*60517a1eSAndroid Build Coastguard Worker    name = "version_3_10",
22*60517a1eSAndroid Build Coastguard Worker    srcs = ["version.py"],
23*60517a1eSAndroid Build Coastguard Worker    main = "version.py",
24*60517a1eSAndroid Build Coastguard Worker)
25*60517a1eSAndroid Build Coastguard Worker
26*60517a1eSAndroid Build Coastguard Workerpy_binary_3_11(
27*60517a1eSAndroid Build Coastguard Worker    name = "version_3_11",
28*60517a1eSAndroid Build Coastguard Worker    srcs = ["version.py"],
29*60517a1eSAndroid Build Coastguard Worker    main = "version.py",
30*60517a1eSAndroid Build Coastguard Worker)
31*60517a1eSAndroid Build Coastguard Worker
32*60517a1eSAndroid Build Coastguard Workerpy_versioned_binary(
33*60517a1eSAndroid Build Coastguard Worker    name = "version_3_10_versioned",
34*60517a1eSAndroid Build Coastguard Worker    srcs = ["version.py"],
35*60517a1eSAndroid Build Coastguard Worker    main = "version.py",
36*60517a1eSAndroid Build Coastguard Worker    python_version = "3.10",
37*60517a1eSAndroid Build Coastguard Worker)
38*60517a1eSAndroid Build Coastguard Worker
39*60517a1eSAndroid Build Coastguard Worker# This is a work in progress and the commented
40*60517a1eSAndroid Build Coastguard Worker# tests will not work  until we can support
41*60517a1eSAndroid Build Coastguard Worker# multiple pips with bzlmod.
42*60517a1eSAndroid Build Coastguard Worker
43*60517a1eSAndroid Build Coastguard Workerpy_test(
44*60517a1eSAndroid Build Coastguard Worker    name = "my_lib_default_test",
45*60517a1eSAndroid Build Coastguard Worker    srcs = ["my_lib_test.py"],
46*60517a1eSAndroid Build Coastguard Worker    main = "my_lib_test.py",
47*60517a1eSAndroid Build Coastguard Worker    deps = ["//libs/my_lib"],
48*60517a1eSAndroid Build Coastguard Worker)
49*60517a1eSAndroid Build Coastguard Worker
50*60517a1eSAndroid Build Coastguard Workerpy_test_3_9(
51*60517a1eSAndroid Build Coastguard Worker    name = "my_lib_3_9_test",
52*60517a1eSAndroid Build Coastguard Worker    srcs = ["my_lib_test.py"],
53*60517a1eSAndroid Build Coastguard Worker    main = "my_lib_test.py",
54*60517a1eSAndroid Build Coastguard Worker    deps = ["//libs/my_lib"],
55*60517a1eSAndroid Build Coastguard Worker)
56*60517a1eSAndroid Build Coastguard Worker
57*60517a1eSAndroid Build Coastguard Workerpy_test_3_10(
58*60517a1eSAndroid Build Coastguard Worker    name = "my_lib_3_10_test",
59*60517a1eSAndroid Build Coastguard Worker    srcs = ["my_lib_test.py"],
60*60517a1eSAndroid Build Coastguard Worker    main = "my_lib_test.py",
61*60517a1eSAndroid Build Coastguard Worker    deps = ["//libs/my_lib"],
62*60517a1eSAndroid Build Coastguard Worker)
63*60517a1eSAndroid Build Coastguard Worker
64*60517a1eSAndroid Build Coastguard Workerpy_versioned_test(
65*60517a1eSAndroid Build Coastguard Worker    name = "my_lib_versioned_test",
66*60517a1eSAndroid Build Coastguard Worker    srcs = ["my_lib_test.py"],
67*60517a1eSAndroid Build Coastguard Worker    main = "my_lib_test.py",
68*60517a1eSAndroid Build Coastguard Worker    python_version = "3.10",
69*60517a1eSAndroid Build Coastguard Worker    deps = select(
70*60517a1eSAndroid Build Coastguard Worker        {
71*60517a1eSAndroid Build Coastguard Worker            "@rules_python//python/config_settings:is_python_" + MINOR_MAPPING["3.10"]: ["//libs/my_lib"],
72*60517a1eSAndroid Build Coastguard Worker        },
73*60517a1eSAndroid Build Coastguard Worker        no_match_error = """\
74*60517a1eSAndroid Build Coastguard WorkerThis test is failing to find dependencies and it seems that the is_python_{version}
75*60517a1eSAndroid Build Coastguard Workerdoes not match the transitioned configuration of python-version 3.10. Please
76*60517a1eSAndroid Build Coastguard Workerlook at the
77*60517a1eSAndroid Build Coastguard Worker
78*60517a1eSAndroid Build Coastguard Worker    @rules_python//python/config_settings:config_settings.bzl
79*60517a1eSAndroid Build Coastguard Worker
80*60517a1eSAndroid Build Coastguard Workerto fix any bugs.""".format(
81*60517a1eSAndroid Build Coastguard Worker            version = MINOR_MAPPING["3.10"],
82*60517a1eSAndroid Build Coastguard Worker        ),
83*60517a1eSAndroid Build Coastguard Worker    ),
84*60517a1eSAndroid Build Coastguard Worker)
85*60517a1eSAndroid Build Coastguard Worker
86*60517a1eSAndroid Build Coastguard Workerpy_test(
87*60517a1eSAndroid Build Coastguard Worker    name = "version_default_test",
88*60517a1eSAndroid Build Coastguard Worker    srcs = ["version_test.py"],
89*60517a1eSAndroid Build Coastguard Worker    env = {"VERSION_CHECK": "3.9"},  # The default defined in the WORKSPACE.
90*60517a1eSAndroid Build Coastguard Worker    main = "version_test.py",
91*60517a1eSAndroid Build Coastguard Worker)
92*60517a1eSAndroid Build Coastguard Worker
93*60517a1eSAndroid Build Coastguard Workerpy_test_3_9(
94*60517a1eSAndroid Build Coastguard Worker    name = "version_3_9_test",
95*60517a1eSAndroid Build Coastguard Worker    srcs = ["version_test.py"],
96*60517a1eSAndroid Build Coastguard Worker    env = {"VERSION_CHECK": "3.9"},
97*60517a1eSAndroid Build Coastguard Worker    main = "version_test.py",
98*60517a1eSAndroid Build Coastguard Worker)
99*60517a1eSAndroid Build Coastguard Worker
100*60517a1eSAndroid Build Coastguard Workerpy_test_3_10(
101*60517a1eSAndroid Build Coastguard Worker    name = "version_3_10_test",
102*60517a1eSAndroid Build Coastguard Worker    srcs = ["version_test.py"],
103*60517a1eSAndroid Build Coastguard Worker    env = {"VERSION_CHECK": "3.10"},
104*60517a1eSAndroid Build Coastguard Worker    main = "version_test.py",
105*60517a1eSAndroid Build Coastguard Worker)
106*60517a1eSAndroid Build Coastguard Worker
107*60517a1eSAndroid Build Coastguard Workerpy_versioned_test(
108*60517a1eSAndroid Build Coastguard Worker    name = "version_versioned_test",
109*60517a1eSAndroid Build Coastguard Worker    srcs = ["version_test.py"],
110*60517a1eSAndroid Build Coastguard Worker    env = {"VERSION_CHECK": "3.10"},
111*60517a1eSAndroid Build Coastguard Worker    main = "version_test.py",
112*60517a1eSAndroid Build Coastguard Worker    python_version = "3.10",
113*60517a1eSAndroid Build Coastguard Worker)
114*60517a1eSAndroid Build Coastguard Worker
115*60517a1eSAndroid Build Coastguard Workerpy_test_3_11(
116*60517a1eSAndroid Build Coastguard Worker    name = "version_3_11_test",
117*60517a1eSAndroid Build Coastguard Worker    srcs = ["version_test.py"],
118*60517a1eSAndroid Build Coastguard Worker    env = {"VERSION_CHECK": "3.11"},
119*60517a1eSAndroid Build Coastguard Worker    main = "version_test.py",
120*60517a1eSAndroid Build Coastguard Worker)
121*60517a1eSAndroid Build Coastguard Worker
122*60517a1eSAndroid Build Coastguard Workerpy_test(
123*60517a1eSAndroid Build Coastguard Worker    name = "version_default_takes_3_10_subprocess_test",
124*60517a1eSAndroid Build Coastguard Worker    srcs = ["cross_version_test.py"],
125*60517a1eSAndroid Build Coastguard Worker    data = [":version_3_10"],
126*60517a1eSAndroid Build Coastguard Worker    env = {
127*60517a1eSAndroid Build Coastguard Worker        "SUBPROCESS_VERSION_CHECK": "3.10",
128*60517a1eSAndroid Build Coastguard Worker        "SUBPROCESS_VERSION_PY_BINARY": "$(rootpath :version_3_10)",
129*60517a1eSAndroid Build Coastguard Worker        "VERSION_CHECK": "3.9",
130*60517a1eSAndroid Build Coastguard Worker    },
131*60517a1eSAndroid Build Coastguard Worker    main = "cross_version_test.py",
132*60517a1eSAndroid Build Coastguard Worker)
133*60517a1eSAndroid Build Coastguard Worker
134*60517a1eSAndroid Build Coastguard Workerpy_test_3_10(
135*60517a1eSAndroid Build Coastguard Worker    name = "version_3_10_takes_3_9_subprocess_test",
136*60517a1eSAndroid Build Coastguard Worker    srcs = ["cross_version_test.py"],
137*60517a1eSAndroid Build Coastguard Worker    data = [":version_3_9"],
138*60517a1eSAndroid Build Coastguard Worker    env = {
139*60517a1eSAndroid Build Coastguard Worker        "SUBPROCESS_VERSION_CHECK": "3.9",
140*60517a1eSAndroid Build Coastguard Worker        "SUBPROCESS_VERSION_PY_BINARY": "$(rootpath :version_3_9)",
141*60517a1eSAndroid Build Coastguard Worker        "VERSION_CHECK": "3.10",
142*60517a1eSAndroid Build Coastguard Worker    },
143*60517a1eSAndroid Build Coastguard Worker    main = "cross_version_test.py",
144*60517a1eSAndroid Build Coastguard Worker)
145*60517a1eSAndroid Build Coastguard Worker
146*60517a1eSAndroid Build Coastguard Workerpy_versioned_test(
147*60517a1eSAndroid Build Coastguard Worker    name = "version_3_10_takes_3_9_subprocess_test_2",
148*60517a1eSAndroid Build Coastguard Worker    srcs = ["cross_version_test.py"],
149*60517a1eSAndroid Build Coastguard Worker    data = [":version_3_9"],
150*60517a1eSAndroid Build Coastguard Worker    env = {
151*60517a1eSAndroid Build Coastguard Worker        "SUBPROCESS_VERSION_CHECK": "3.9",
152*60517a1eSAndroid Build Coastguard Worker        "SUBPROCESS_VERSION_PY_BINARY": "$(rootpath :version_3_9)",
153*60517a1eSAndroid Build Coastguard Worker        "VERSION_CHECK": "3.10",
154*60517a1eSAndroid Build Coastguard Worker    },
155*60517a1eSAndroid Build Coastguard Worker    main = "cross_version_test.py",
156*60517a1eSAndroid Build Coastguard Worker    python_version = "3.10",
157*60517a1eSAndroid Build Coastguard Worker)
158*60517a1eSAndroid Build Coastguard Worker
159*60517a1eSAndroid Build Coastguard Workersh_test(
160*60517a1eSAndroid Build Coastguard Worker    name = "version_test_binary_default",
161*60517a1eSAndroid Build Coastguard Worker    srcs = ["version_test.sh"],
162*60517a1eSAndroid Build Coastguard Worker    data = [":version_default"],
163*60517a1eSAndroid Build Coastguard Worker    env = {
164*60517a1eSAndroid Build Coastguard Worker        "VERSION_CHECK": "3.9",  # The default defined in the WORKSPACE.
165*60517a1eSAndroid Build Coastguard Worker        "VERSION_PY_BINARY": "$(rootpath :version_default)",
166*60517a1eSAndroid Build Coastguard Worker    },
167*60517a1eSAndroid Build Coastguard Worker)
168*60517a1eSAndroid Build Coastguard Worker
169*60517a1eSAndroid Build Coastguard Workersh_test(
170*60517a1eSAndroid Build Coastguard Worker    name = "version_test_binary_3_9",
171*60517a1eSAndroid Build Coastguard Worker    srcs = ["version_test.sh"],
172*60517a1eSAndroid Build Coastguard Worker    data = [":version_3_9"],
173*60517a1eSAndroid Build Coastguard Worker    env = {
174*60517a1eSAndroid Build Coastguard Worker        "VERSION_CHECK": "3.9",
175*60517a1eSAndroid Build Coastguard Worker        "VERSION_PY_BINARY": "$(rootpath :version_3_9)",
176*60517a1eSAndroid Build Coastguard Worker    },
177*60517a1eSAndroid Build Coastguard Worker)
178*60517a1eSAndroid Build Coastguard Worker
179*60517a1eSAndroid Build Coastguard Workersh_test(
180*60517a1eSAndroid Build Coastguard Worker    name = "version_test_binary_3_10",
181*60517a1eSAndroid Build Coastguard Worker    srcs = ["version_test.sh"],
182*60517a1eSAndroid Build Coastguard Worker    data = [":version_3_10"],
183*60517a1eSAndroid Build Coastguard Worker    env = {
184*60517a1eSAndroid Build Coastguard Worker        "VERSION_CHECK": "3.10",
185*60517a1eSAndroid Build Coastguard Worker        "VERSION_PY_BINARY": "$(rootpath :version_3_10)",
186*60517a1eSAndroid Build Coastguard Worker    },
187*60517a1eSAndroid Build Coastguard Worker)
188