unittest2pytest
unittest2pytest copied to clipboard
Missing necessary parentheses and not allowing equality
In my work on https://github.com/certbot/certbot/pull/9585, unittest2pytest
rewrote these lines:
self.assertAlmostEqual(mock_sleep.call_args_list[1][0][0], interval - 1, delta=1)
self.assertAlmostEqual(mock_sleep.call_args_list[2][0][0], interval/2 - 1, delta=1)
as
assert abs(mock_sleep.call_args_list[1][0][0]-interval - 1) < 1
assert abs(mock_sleep.call_args_list[2][0][0]-interval/2 - 1) < 1
This is incorrect for two reasons:
- Parentheses should be added around the 2nd argument to
assertAlmostEqual
(or the- 1
changed to+ 1
). - assertAlmostEqual doesn't error if the difference between the first two arguments equals the delta argument.
(With that said, I just ran unittest2pytest on 28k lines of real test code and this was the only problem I encountered other than the pytest.raises
limitation described at the bottom of your README. Nice work!)
We should have a pytest.approx there instead of the cheap imitation