Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
[0.X.0]: https://github.com/bazelbuild/rules_testing/releases/tag/v0.X.0

## Changed
* Nothing yet
* Add `{bindir}` to formatting variables.
* Format values in `ActionsSubject.contains_flag_values()`.

### Added
* Nothing yet
Expand Down
1 change: 1 addition & 0 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ bazel_dep(
repo_name = "io_bazel_stardoc",
)
bazel_dep(name = "rules_python", version = "0.37.2", dev_dependency = True)
bazel_dep(name = "rules_shell", version = "0.4.0", dev_dependency = True)

python = use_extension(
"@rules_python//python/extensions:python.bzl",
Expand Down
1 change: 1 addition & 0 deletions docs/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
load("@docs-pypi//:requirements.bzl", "requirement")
load("@rules_python//python:pip.bzl", "compile_pip_requirements")
load("@rules_python//python:py_binary.bzl", "py_binary")
load("@rules_shell//shell:sh_binary.bzl", "sh_binary")

package(
default_applicable_licenses = ["//:package_license"],
Expand Down
2 changes: 2 additions & 0 deletions lib/private/action_subject.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,7 @@ def _action_subject_contains_flag_values(self, flag_values):
"""
missing = []
for flag, value in sorted(flag_values):
value = self.meta.format_str(value)
if flag not in self.parsed_flags:
missing.append("'{}' (not specified)".format(flag))
elif value not in self.parsed_flags[flag]:
Expand Down Expand Up @@ -291,6 +292,7 @@ def _action_subject_contains_none_of_flag_values(self, flag_values):
"""
unexpected = []
for flag, value in sorted(flag_values):
value = self.meta.format_str(value)
if flag not in self.parsed_flags:
continue
elif value in self.parsed_flags[flag]:
Expand Down
3 changes: 2 additions & 1 deletion lib/private/expect.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

"""# Expect"""

load("//lib:util.bzl", "TestingAspectInfo")
load(":action_subject.bzl", "ActionSubject")
load(":bool_subject.bzl", "BoolSubject")
load(":collection_subject.bzl", "CollectionSubject")
Expand Down Expand Up @@ -249,7 +250,7 @@ def _expect_that_target(self, target):
format_str_kwargs = {
"name": target.label.name,
"package": target.label.package,
},
} | {"bindir": target[TestingAspectInfo].bin_path} if TestingAspectInfo in target else {},
))

def _expect_that_value(self, value, *, factory, expr = "value"):
Expand Down
17 changes: 10 additions & 7 deletions tests/truth_tests.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ def _action_subject_test(env, target):
subject.contains_flag_values([
("--arg1flag", "arg1value"),
("--arg2flag", "arg2value"),
("--generated_input", "{bindir}/{package}/input.gen.txt"),
])
_assert_no_failures(
fake_env,
Expand Down Expand Up @@ -1575,16 +1576,18 @@ def _assert_failure(fake_env, expected_strs, *, env, msg = ""):

def _test_helper_impl(ctx):
action_output = ctx.actions.declare_file("action.txt")
generated_input = _empty_file(ctx, "input.gen.txt")
args = ctx.actions.args()
args.add("arg1")
args.add("--boolflag")
args.add("--arg1flag", "arg1value")
args.add("arg2value", format = "--arg2flag=%s")
args.add("--generated_input", generated_input)
ctx.actions.run(
inputs = [generated_input],
outputs = [action_output],
executable = ctx.executable.tool,
arguments = [
"arg1",
"--boolflag",
"--arg1flag",
"arg1value",
"--arg2flag=arg2value",
],
arguments = [args],
mnemonic = "Action1",
)
if _IS_BAZEL_6_OR_HIGHER:
Expand Down