def test_python_distribution_dependency_injection() -> None: rule_runner = RuleRunner( rules=[ inject_python_distribution_dependencies, QueryRule(InjectedDependencies, [InjectPythonDistributionDependencies]), ], target_types=[PythonDistribution, PexBinary], objects={"setup_py": PythonArtifact}, ) rule_runner.add_to_build_file( "project", dedent("""\ pex_binary(name="my_binary") python_distribution( name="dist", provides=setup_py( name='my-dist' ).with_binaries({"my_cmd": ":my_binary"}) ) """), ) tgt = rule_runner.get_target(Address("project", target_name="dist")) injected = rule_runner.request( InjectedDependencies, [ InjectPythonDistributionDependencies( tgt[PythonDistributionDependencies]) ], ) assert injected == InjectedDependencies( [Address("project", target_name="my_binary")])
def assert_injected(address: Address, expected: list[Address]) -> None: tgt = rule_runner.get_target(address) injected = rule_runner.request( InjectedDependencies, [InjectPythonDistributionDependencies(tgt[PythonDistributionDependenciesField])], ) assert injected == InjectedDependencies(expected)