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