Feature proposal: unittest.mock.NAN
Kerrick Staley
k at kerrickstaley.com
Wed Jan 24 12:11:25 EST 2024
I think we should define a unittest.mock.NAN constant that can be used with
Mock.assert_called_with() to assert that an argument passed to a Mock was
NaN. NaNs are special in that math.nan != math.nan, so you can't just do
assert_called_with(math.nan). The naming is meant to parallel
unittest.mock.ANY.
Here is a reference implementation:
class _EqNaN:
def __eq__(self, other):
return math.isnan(other)
NAN = _EqNaN()
The alternative is that users can just define this EqNaN class themselves
as needed in test code. I encountered the need to test for a NaN argument
today and was surprised to find that (as far as I can tell) there is no
pre-built solution to this in unittest or pytest. It feels like it should
be included in some standard library.
- Kerrick
More information about the Python-list
mailing list