| 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"], |
| ) |