Sometimes we need our tests to check if an exception was generated. A common case is when testing if some validations are being done properly.
In our example, the test_count()
method uses a Warning
exception as a way to give information to the user. To check if an exception is raised, we place the corresponding code inside a with self.assertRaises()
block.
We need to import the Warning
exception at the top of the file:
from odoo.exceptions import Warning
And add to the test class a method with another test case:
def test_count(self): "Test count button" with self.assertRaises(Warning) as e: self.wizard.do_count_tasks() self.assertIn(' 2 ', str(e.exception))
If the do_count_tasks()
method does not raise an exception, the check will fail. If it does raise that exception, the check succeeds and the exception raised is stored in the e
variable.
We use that to further inspect it. The exception message contains the number of tasks counted, that we expect to be two. In the final statement we use assertIn
to check that the exception text contains the ' 2 '
string.