acoustic-librarian-29560
12/20/2024, 4:56 PMMockGet
for a DependenciesRequest -> Targets
call that each iteration calls. However, it looks like only the first call hits my Mock and subsequent calls just return Targets([])
. Is there a way to do this kind of mocking that I'm unaware of or should I open an issue?happy-kitchen-89482
12/20/2024, 7:38 PMacoustic-librarian-29560
12/20/2024, 7:39 PMhappy-kitchen-89482
12/20/2024, 11:16 PMhappy-kitchen-89482
12/20/2024, 11:38 PMhappy-kitchen-89482
12/21/2024, 12:03 AMhappy-kitchen-89482
12/24/2024, 12:43 AMhappy-kitchen-89482
12/24/2024, 12:43 AMhappy-kitchen-89482
12/24/2024, 12:44 AMdef test_recursive_rules() -> None:
@dataclass(frozen=True)
class IntegerIn:
value: int
@dataclass(frozen=True)
class IntegerOut:
value: int
@rule
async def fib(n: IntegerIn) -> IntegerOut:
if n.value in [0, 1]:
return IntegerOut(n.value)
components = await concurrently(
[
fib(IntegerIn(n.value - 1)),
fib(IntegerIn(n.value - 2)),
]
)
return IntegerOut(components[0].value + components[1].value)
rule_runner = RuleRunner(
rules=[
fib,
QueryRule(IntegerOut, [IntegerIn]),
]
)
fib_10 = rule_runner.request(IntegerOut, [IntegerIn(10)])
assert 55 == fib_10.value