blob: 5a65e9e1a346d74d6ad99bf51e8b28c93af698af [file] [log] [blame]
load("@bazel_skylib//rules:run_binary.bzl", "run_binary")
load("@rules_python//python:defs.bzl", "py_test")
# Below are targets for testing the `py_console_script_binary` feature and are
# not part of the example how to use the feature.
# And a test that we can correctly run `pylint --version`
py_test(
name = "pylint_test",
srcs = ["pylint_test.py"],
data = ["//entry_points:pylint"],
env = {
"ENTRY_POINT": "$(rlocationpath //entry_points:pylint)",
},
deps = ["@rules_python//python/runfiles"],
)
# Next run pylint on the file to generate a report.
run_binary(
name = "pylint_report",
srcs = [
":file_with_pylint_errors.py",
],
outs = ["pylint_report.txt"],
args = [
"--output-format=text:$(location pylint_report.txt)",
"--load-plugins=pylint_print",
# The `exit-zero` ensures that `run_binary` is successful even though there are lint errors.
# We check the generated report in the test below.
"--exit-zero",
"$(location :file_with_pylint_errors.py)",
],
env = {
# otherwise it may try to create ${HOME}/.cache/pylint
"PYLINTHOME": "./.pylint_home",
},
tool = "//entry_points:pylint_with_deps",
)
py_test(
name = "pylint_deps_test",
srcs = ["pylint_deps_test.py"],
data = [
":pylint_report",
"//entry_points:pylint_with_deps",
],
env = {
"ENTRY_POINT": "$(rlocationpath //entry_points:pylint_with_deps)",
"PYLINT_REPORT": "$(rlocationpath :pylint_report)",
},
deps = ["@rules_python//python/runfiles"],
)
# And a test to check that yamllint works
py_test(
name = "yamllint_test",
srcs = ["yamllint_test.py"],
data = ["//entry_points:yamllint"],
env = {
"ENTRY_POINT": "$(rlocationpath //entry_points:yamllint)",
},
deps = ["@rules_python//python/runfiles"],
)