Python teardown_class ведет себя не так, как я ожидал. Ниже приводится краткое изложение моего кода:
@classmethod
def setup_class(cls):
cls.create_table(table1)
cls.create_table(table2)
cls.create_table(table3)
@classmethod
def create_table(cls, some_arg_here):
"""Some code here that creates the table"""
def test_foo(self):
"""Some test code here"""
@classmethod
def teardown_class(cls):
"""Perform teardown things"""
Я считаю, что способ его выполнения таков:
- create_table вызывается из настройки с 1-м параметром (table1)
- Код в create_table выполняется
- Код в teardown_class выполняется
- 1-3 выше снова выполняется со вторым параметром
- 1-3 выше снова выполняется с 3-м параметром
- Код в test_foo выполняется
Как я ожидаю, что это будет работать:
- create_table вызывается с 1-м параметром (table1)
- Код в create_table выполняется
- create_table вызывается со вторым параметром (таблица 2)
- Код в create_table выполняется
- create_table вызывается с 3-м параметром (таблица 3)
- Код в create_table выполняется
- Код в test_foo выполняется
- Код в teardown_class выполняется
Python 2.7.10, pytest-3.6.2, py-1.5.3, pluggy-0.6.0