I tried to use setUpClass()
method for the first time in my life and wrote:
class TestDownload(unittest.TestCase):
def setUpClass(cls):
config.fs = True
and got:
Ran 0 tests in 0.004s
FAILED (errors=1)
Failure
Traceback (most recent call last):
File "/opt/anaconda3/lib/python3.5/unittest/suite.py", line 163, in _handleClassSetUp
setUpClass()
TypeError: setUpClass() missing 1 required positional argument: 'cls'
What does it mean and how to satisfy it?
You need to put a @classmethod
decorator before def setUpClass(cls)
.
class TestDownload(unittest.TestCase):
@classmethod
def setUpClass(cls):
config.fs = True
The setupClass
docs are here and classmethod
docs here.
What happens is that in suite.py line 163 the setUpClass
gets called on the class (not an instance) as a simple function (as opposed to a bound method). There is no argument passed silently to setUpClass
, hence the error message.
By adding the @classmethod
decorator, you are saying that when TestDownload.setupClass()
is called, the first argument is the class TestDownload
itself.
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