xref: /aosp_15_r20/external/bazelbuild-rules_python/examples/multi_python_versions/tests/BUILD.bazel (revision 60517a1edbc8ecf509223e9af94a7adec7d736b8)
1load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
2load("@python//3.10:defs.bzl", py_binary_3_10 = "py_binary", py_test_3_10 = "py_test")
3load("@python//3.11:defs.bzl", py_binary_3_11 = "py_binary", py_test_3_11 = "py_test")
4load("@python//3.8:defs.bzl", py_binary_3_8 = "py_binary", py_test_3_8 = "py_test")
5load("@python//3.9:defs.bzl", py_binary_3_9 = "py_binary", py_test_3_9 = "py_test")
6load("@rules_python//python:defs.bzl", "py_binary", "py_test")
7
8copy_file(
9    name = "copy_version",
10    src = "version.py",
11    out = "version_default.py",
12    is_executable = True,
13)
14
15# NOTE: We are testing that the `main` is an optional param as per official
16# docs https://bazel.build/reference/be/python#py_binary.main
17py_binary(
18    name = "version_default",
19    srcs = ["version_default.py"],
20)
21
22py_binary_3_8(
23    name = "version_3_8",
24    srcs = ["version.py"],
25    main = "version.py",
26)
27
28py_binary_3_9(
29    name = "version_3_9",
30    srcs = ["version.py"],
31    main = "version.py",
32)
33
34py_binary_3_10(
35    name = "version_3_10",
36    srcs = ["version.py"],
37    main = "version.py",
38)
39
40py_binary_3_11(
41    name = "version_3_11",
42    srcs = ["version.py"],
43    main = "version.py",
44)
45
46py_test(
47    name = "my_lib_default_test",
48    srcs = ["my_lib_test.py"],
49    main = "my_lib_test.py",
50    deps = ["//libs/my_lib"],
51)
52
53py_test_3_8(
54    name = "my_lib_3_8_test",
55    srcs = ["my_lib_test.py"],
56    main = "my_lib_test.py",
57    deps = ["//libs/my_lib"],
58)
59
60py_test_3_9(
61    name = "my_lib_3_9_test",
62    srcs = ["my_lib_test.py"],
63    main = "my_lib_test.py",
64    deps = ["//libs/my_lib"],
65)
66
67py_test_3_10(
68    name = "my_lib_3_10_test",
69    srcs = ["my_lib_test.py"],
70    main = "my_lib_test.py",
71    deps = ["//libs/my_lib"],
72)
73
74py_test_3_11(
75    name = "my_lib_3_11_test",
76    srcs = ["my_lib_test.py"],
77    main = "my_lib_test.py",
78    deps = ["//libs/my_lib"],
79)
80
81copy_file(
82    name = "copy_version_test",
83    src = "version_test.py",
84    out = "version_default_test.py",
85    is_executable = True,
86)
87
88py_test(
89    name = "version_default_test",
90    srcs = ["version_default_test.py"],
91    env = {"VERSION_CHECK": "3.9"},  # The default defined in the WORKSPACE.
92)
93
94py_test_3_8(
95    name = "version_3_8_test",
96    srcs = ["version_test.py"],
97    env = {"VERSION_CHECK": "3.8"},
98    main = "version_test.py",
99)
100
101py_test_3_9(
102    name = "version_3_9_test",
103    srcs = ["version_test.py"],
104    env = {"VERSION_CHECK": "3.9"},
105    main = "version_test.py",
106)
107
108py_test_3_10(
109    name = "version_3_10_test",
110    srcs = ["version_test.py"],
111    env = {"VERSION_CHECK": "3.10"},
112    main = "version_test.py",
113)
114
115py_test_3_11(
116    name = "version_3_11_test",
117    srcs = ["version_test.py"],
118    env = {"VERSION_CHECK": "3.11"},
119    main = "version_test.py",
120)
121
122py_test(
123    name = "version_default_takes_3_10_subprocess_test",
124    srcs = ["cross_version_test.py"],
125    data = [":version_3_10"],
126    env = {
127        "SUBPROCESS_VERSION_CHECK": "3.10",
128        "SUBPROCESS_VERSION_PY_BINARY": "$(rootpath :version_3_10)",
129        "VERSION_CHECK": "3.9",
130    },
131    main = "cross_version_test.py",
132)
133
134py_test_3_10(
135    name = "version_3_10_takes_3_9_subprocess_test",
136    srcs = ["cross_version_test.py"],
137    data = [":version_3_9"],
138    env = {
139        "SUBPROCESS_VERSION_CHECK": "3.9",
140        "SUBPROCESS_VERSION_PY_BINARY": "$(rootpath :version_3_9)",
141        "VERSION_CHECK": "3.10",
142    },
143    main = "cross_version_test.py",
144)
145
146sh_test(
147    name = "version_test_binary_default",
148    srcs = ["version_test.sh"],
149    data = [":version_default"],
150    env = {
151        "VERSION_CHECK": "3.9",  # The default defined in the WORKSPACE.
152        "VERSION_PY_BINARY": "$(rootpath :version_default)",
153    },
154)
155
156sh_test(
157    name = "version_test_binary_3_8",
158    srcs = ["version_test.sh"],
159    data = [":version_3_8"],
160    env = {
161        "VERSION_CHECK": "3.8",
162        "VERSION_PY_BINARY": "$(rootpath :version_3_8)",
163    },
164)
165
166sh_test(
167    name = "version_test_binary_3_9",
168    srcs = ["version_test.sh"],
169    data = [":version_3_9"],
170    env = {
171        "VERSION_CHECK": "3.9",
172        "VERSION_PY_BINARY": "$(rootpath :version_3_9)",
173    },
174)
175
176sh_test(
177    name = "version_test_binary_3_10",
178    srcs = ["version_test.sh"],
179    data = [":version_3_10"],
180    env = {
181        "VERSION_CHECK": "3.10",
182        "VERSION_PY_BINARY": "$(rootpath :version_3_10)",
183    },
184)
185