Handling setup/teardown
To fully convert a TestCase
subclass to pytest style, we need to replace unittest
with pytest's idioms. We have already seen how to do that with self.assert*
methods in the previous section, by using unittest2pytest
. But what can we do do about setUp
and tearDown
methods?
As we learned previously, autouse fixtures work just fine in TestCase
subclasses, so they are a natural way to replace setUp
and tearDown
methods. Let's use the example from the previous section.
After converting the assert
statements, the first thing to do is to remove the unittest.TestCase
subclassing:
class Test(unittest.TestCase):
...
This becomes the following:
class Test: ...
Next, we need to transform the setup
/teardown
methods into fixture equivalents:
@classmethod def setUpClass(cls): cls.temp_dir = Path(tempfile.mkdtemp()) cls.filepath = cls.temp_dir / "data.csv" cls.filepath.write_text(DATA.strip()) @classmethod def tearDownClass(cls): ...