Skip to content

Commit 15389ad

Browse files
authored
fix(verifier): do not access out-of-bounds index of calls list (#45)
1 parent b57b111 commit 15389ad

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

decoy/verifier.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ def verify(
2121
else:
2222
for i, call in enumerate(calls):
2323
calls_subset = calls[i : i + len(rehearsals)]
24-
if all(r == calls_subset[j] for j, r in enumerate(rehearsals)):
24+
25+
if calls_subset == rehearsals:
2526
return None
2627

2728
raise VerifyError(

tests/test_verifier.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,17 @@ class VerifySpec(NamedTuple):
4343
SpyCall(spy_id=202, spy_name="spy_202", args=("oh no",), kwargs={}),
4444
],
4545
),
46+
VerifySpec(
47+
rehearsals=[
48+
VerifyRehearsal(spy_id=101, spy_name="spy_101", args=(1, 2, 3), kwargs={}),
49+
VerifyRehearsal(spy_id=101, spy_name="spy_101", args=(4, 5, 6), kwargs={}),
50+
VerifyRehearsal(spy_id=202, spy_name="spy_202", args=(7, 8, 9), kwargs={}),
51+
],
52+
calls=[
53+
SpyCall(spy_id=101, spy_name="spy_101", args=(1, 2, 3), kwargs={}),
54+
SpyCall(spy_id=101, spy_name="spy_101", args=(4, 5, 6), kwargs={}),
55+
],
56+
),
4657
VerifySpec(
4758
rehearsals=[
4859
VerifyRehearsal(spy_id=101, spy_name="spy_101", args=(1, 2, 3), kwargs={}),
@@ -76,6 +87,19 @@ class VerifySpec(NamedTuple):
7687
SpyCall(spy_id=202, spy_name="spy_202", args=(7, 8, 9), kwargs={}),
7788
],
7889
),
90+
VerifySpec(
91+
rehearsals=[
92+
VerifyRehearsal(spy_id=101, spy_name="spy_101", args=(1, 2, 3), kwargs={}),
93+
VerifyRehearsal(spy_id=101, spy_name="spy_101", args=(4, 5, 6), kwargs={}),
94+
VerifyRehearsal(spy_id=202, spy_name="spy_202", args=(7, 8, 9), kwargs={}),
95+
],
96+
calls=[
97+
SpyCall(spy_id=101, spy_name="spy_101", args=(0, 0, 0), kwargs={}),
98+
SpyCall(spy_id=101, spy_name="spy_101", args=(1, 2, 3), kwargs={}),
99+
SpyCall(spy_id=101, spy_name="spy_101", args=(4, 5, 6), kwargs={}),
100+
SpyCall(spy_id=202, spy_name="spy_202", args=(7, 8, 9), kwargs={}),
101+
],
102+
),
79103
VerifySpec(
80104
rehearsals=[
81105
VerifyRehearsal(spy_id=101, spy_name="spy_101", args=(1, 2, 3), kwargs={}),

0 commit comments

Comments
 (0)