Я впервые в жизни попробовал воспользоваться методом setUpClass() и написал:
class TestDownload(unittest.TestCase):
def setUpClass(cls):
config.fs = True
и получил:
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'
Что это значит и как удовлетворить?






Перед @classmethod нужно поставить декоратор def setUpClass(cls).
class TestDownload(unittest.TestCase):
@classmethod
def setUpClass(cls):
config.fs = True
Документы setupClass здесь и classmethod документы здесь.
Что происходит, так это то, что в suite.py строка 163setUpClass вызывается в классе (не экземпляре) как простая функция (в отличие от связанного метода). setUpClass не передает никаких аргументов, отсюда и сообщение об ошибке.
Добавляя декоратор @classmethod, вы говорите, что при вызове TestDownload.setupClass() первым аргументом является сам класс TestDownload.
Добавление @classmethod перед setUp и tearDown решит проблему. @classmethod привязан к классу.
class LoginTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
**Your code**
@classmethod
def tearDownClass(self):
Как это дополняет существующий ответ?
Вы ставили декоратор
@classmethodдоdef setUpClass(cls):?