I am writing some unittests in python that are testing if I receive an integer. However sometimes this integer can be off by 1 or 2 and I don't really care. Essentially I want to be able to assert that the received integer is within a certain range, something like:
self.assertBetween(998, 1000, my_integer)
Is there an accepted way of doing this? Or will I have to do something like this:
self.assertTrue(998 <= my_integer) self.assertTrue(my_integer <= 1000)
EDIT The answers so far suggest:
self.assertTrue(998 <= my_integer <= 1000)
Is there any benefit of this over my example with 2 asserts?
You can use a "chained comparison":
self.assertTrue(998 <= my_integer <= 1000)
Python has a built in function you may use for this: assertAlmostEqual
.
self.assertAlmostEqual(myinteger, 999, delta=1) # is equivalent to self.assertTrue(998 <= myinteger <= 1000) # ... but gives better error messages.
The optional parameter delta specifies the allowed distance from the value you're testing.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With