| load("@python_versions//3.10:defs.bzl", py_binary_3_10 = "py_binary", py_test_3_10 = "py_test") |
| load("@python_versions//3.11:defs.bzl", py_binary_3_11 = "py_binary", py_test_3_11 = "py_test") |
| load("@python_versions//3.9:defs.bzl", py_binary_3_9 = "py_binary", py_test_3_9 = "py_test") |
| load("@pythons_hub//:versions.bzl", "MINOR_MAPPING") |
| load("@rules_python//python:defs.bzl", "py_binary", "py_test") |
| load("@rules_python//python/config_settings:transition.bzl", py_versioned_binary = "py_binary", py_versioned_test = "py_test") |
| load("@rules_shell//shell:sh_test.bzl", "sh_test") |
| |
| py_binary( |
| name = "version_default", |
| srcs = ["version.py"], |
| main = "version.py", |
| ) |
| |
| py_binary_3_9( |
| name = "version_3_9", |
| srcs = ["version.py"], |
| main = "version.py", |
| ) |
| |
| py_binary_3_10( |
| name = "version_3_10", |
| srcs = ["version.py"], |
| main = "version.py", |
| ) |
| |
| py_binary_3_11( |
| name = "version_3_11", |
| srcs = ["version.py"], |
| main = "version.py", |
| ) |
| |
| py_versioned_binary( |
| name = "version_3_10_versioned", |
| srcs = ["version.py"], |
| main = "version.py", |
| python_version = "3.10", |
| ) |
| |
| # This is a work in progress and the commented |
| # tests will not work until we can support |
| # multiple pips with bzlmod. |
| |
| py_test( |
| name = "my_lib_default_test", |
| srcs = ["my_lib_test.py"], |
| main = "my_lib_test.py", |
| deps = ["//libs/my_lib"], |
| ) |
| |
| py_test_3_9( |
| name = "my_lib_3_9_test", |
| srcs = ["my_lib_test.py"], |
| main = "my_lib_test.py", |
| deps = ["//libs/my_lib"], |
| ) |
| |
| py_test_3_10( |
| name = "my_lib_3_10_test", |
| srcs = ["my_lib_test.py"], |
| main = "my_lib_test.py", |
| deps = ["//libs/my_lib"], |
| ) |
| |
| py_versioned_test( |
| name = "my_lib_versioned_test", |
| srcs = ["my_lib_test.py"], |
| main = "my_lib_test.py", |
| python_version = "3.10", |
| deps = select( |
| { |
| "@rules_python//python/config_settings:is_python_" + MINOR_MAPPING["3.10"]: ["//libs/my_lib"], |
| }, |
| no_match_error = """\ |
| This test is failing to find dependencies and it seems that the is_python_{version} |
| does not match the transitioned configuration of python-version 3.10. Please |
| look at the |
| |
| @rules_python//python/config_settings:config_settings.bzl |
| |
| to fix any bugs.""".format( |
| version = MINOR_MAPPING["3.10"], |
| ), |
| ), |
| ) |
| |
| py_test( |
| name = "version_default_test", |
| srcs = ["version_test.py"], |
| env = {"VERSION_CHECK": "3.9"}, # The default defined in the WORKSPACE. |
| main = "version_test.py", |
| ) |
| |
| py_test_3_9( |
| name = "version_3_9_test", |
| srcs = ["version_test.py"], |
| env = {"VERSION_CHECK": "3.9"}, |
| main = "version_test.py", |
| ) |
| |
| py_test_3_10( |
| name = "version_3_10_test", |
| srcs = ["version_test.py"], |
| env = {"VERSION_CHECK": "3.10"}, |
| main = "version_test.py", |
| ) |
| |
| py_versioned_test( |
| name = "version_versioned_test", |
| srcs = ["version_test.py"], |
| env = {"VERSION_CHECK": "3.10"}, |
| main = "version_test.py", |
| python_version = "3.10", |
| ) |
| |
| py_test_3_11( |
| name = "version_3_11_test", |
| srcs = ["version_test.py"], |
| env = {"VERSION_CHECK": "3.11"}, |
| main = "version_test.py", |
| ) |
| |
| py_test( |
| name = "version_default_takes_3_10_subprocess_test", |
| srcs = ["cross_version_test.py"], |
| data = [":version_3_10"], |
| env = { |
| "SUBPROCESS_VERSION_CHECK": "3.10", |
| "SUBPROCESS_VERSION_PY_BINARY": "$(rootpath :version_3_10)", |
| "VERSION_CHECK": "3.9", |
| }, |
| main = "cross_version_test.py", |
| ) |
| |
| py_test_3_10( |
| name = "version_3_10_takes_3_9_subprocess_test", |
| srcs = ["cross_version_test.py"], |
| data = [":version_3_9"], |
| env = { |
| "SUBPROCESS_VERSION_CHECK": "3.9", |
| "SUBPROCESS_VERSION_PY_BINARY": "$(rootpath :version_3_9)", |
| "VERSION_CHECK": "3.10", |
| }, |
| main = "cross_version_test.py", |
| ) |
| |
| py_versioned_test( |
| name = "version_3_10_takes_3_9_subprocess_test_2", |
| srcs = ["cross_version_test.py"], |
| data = [":version_3_9"], |
| env = { |
| "SUBPROCESS_VERSION_CHECK": "3.9", |
| "SUBPROCESS_VERSION_PY_BINARY": "$(rootpath :version_3_9)", |
| "VERSION_CHECK": "3.10", |
| }, |
| main = "cross_version_test.py", |
| python_version = "3.10", |
| ) |
| |
| sh_test( |
| name = "version_test_binary_default", |
| srcs = ["version_test.sh"], |
| data = [":version_default"], |
| env = { |
| "VERSION_CHECK": "3.9", # The default defined in the WORKSPACE. |
| "VERSION_PY_BINARY": "$(rootpath :version_default)", |
| }, |
| ) |
| |
| sh_test( |
| name = "version_test_binary_3_9", |
| srcs = ["version_test.sh"], |
| data = [":version_3_9"], |
| env = { |
| "VERSION_CHECK": "3.9", |
| "VERSION_PY_BINARY": "$(rootpath :version_3_9)", |
| }, |
| ) |
| |
| sh_test( |
| name = "version_test_binary_3_10", |
| srcs = ["version_test.sh"], |
| data = [":version_3_10"], |
| env = { |
| "VERSION_CHECK": "3.10", |
| "VERSION_PY_BINARY": "$(rootpath :version_3_10)", |
| }, |
| ) |