Skip to content

Commit 5d395ef

Browse files
committed
fix: handle deserialized string RedundantVerifyWarning
1 parent 1cebd3f commit 5d395ef

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

decoy/warnings.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"""
77

88
import os
9-
from typing import Sequence
9+
from typing import Sequence, Union
1010

1111
from .spy_events import SpyEvent, SpyRehearsal, VerifyRehearsal
1212
from .stringify import stringify_call, stringify_error_message, count
@@ -74,14 +74,18 @@ class RedundantVerifyWarning(DecoyWarning):
7474
[RedundantVerifyWarning guide]: usage/errors-and-warnings.md#redundantverifywarning
7575
"""
7676

77-
def __init__(self, rehearsal: VerifyRehearsal) -> None:
78-
message = os.linesep.join(
79-
[
80-
"The same rehearsal was used in both a `when` and a `verify`.",
81-
"This is redundant and probably a misuse of the mock.",
82-
f"\t{stringify_call(rehearsal)}",
83-
"See https://michael.cousins.io/decoy/usage/errors-and-warnings/#redundantverifywarning",
84-
]
77+
def __init__(self, rehearsal: Union[VerifyRehearsal, str]) -> None:
78+
message = (
79+
os.linesep.join(
80+
[
81+
"The same rehearsal was used in both a `when` and a `verify`.",
82+
"This is redundant and probably a misuse of the mock.",
83+
f"\t{stringify_call(rehearsal)}",
84+
"See https://michael.cousins.io/decoy/usage/errors-and-warnings/#redundantverifywarning",
85+
]
86+
)
87+
if isinstance(rehearsal, VerifyRehearsal)
88+
else rehearsal
8589
)
8690
super().__init__(message)
8791
self.rehearsal = rehearsal

0 commit comments

Comments
 (0)