Python Unittest подготовить тестовые данные - PullRequest
0 голосов
/ 04 июля 2018

У меня есть родительский класс для всех моих тестов, который унаследован от unittest.TestCase. Он содержит множество глобальных переменных и множество пользовательских функций для создания и удаления пользователей и других объектов.

class AutoTest(unittest.TestCase):
    def vars(self):
       self.api = "http://"
       self.auth = HTTPBasicauth("arr", "yarrr")

    def new_user(self):
        requests.post(url, json, auth)
        return response
    """"and so on"""

Проблема в том, что мне нужно подготовить тестовые данные для тестовых наборов, и они должны быть подготовлены один раз для всех тестов в наборе (т.е. тестовый класс). Насколько я понимаю, для таких случаев используется setUpClass, но он используется только как метод класса, поэтому все определенные в пользовательских функциях родительского класса, которые абсолютно необходимы для подготовки тестовых данных, становятся не вызываемыми из-за того, что все они методы экземпляра и имеют позиционный аргумент "self".

class TestSomeStuff(AutoTests):

    def setUpClass(cls):
        *and here is the problem, because none of the AutoTest class functions are available*

Буду признателен за любую помощь / советы.

1 Ответ

0 голосов
/ 04 июля 2018

Вызовите метод setUpClass родительского класса с помощью super(). Также вы всегда должны украшать setUpClass с @classmethod.

class TestSomeStuff(AutoTests):
    @classmethod
    def setUpClass(cls):
        super(TestSomeStuff, cls).setUpClass()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...