Я пытаюсь протестировать html-парсер, который содержит элементы после разбора.
Но когда я создаю другой экземпляр класса, он наследует все элементы, которые хранил первый анализатор.
Я пытался использовать del
или пытался установить первый экземпляр на None
. Но ни один из них не избавился от элементов, проходящих сразу друг к другу.
Это очень короткая демонстрация того, что было в моем коде.
class Base:
stack = []
def parse(self):
pass
class Page(Base):
def get(url):
pass
pg = Page()
pg.get(url)
pg.parse()
pg.stack # => [Element(), Element()]
class TestWebPageElements(unittest.TestCase):
def setUp(self):
self.pg = Page()
def tearDown(self):
self.pg = None
def test_parsing(self):
self.pg.get(url)
self.pg.parse()
self.pg.stack # => [Element(), Element()]
class TestWebPageElements2(unittest.TestCase):
def setUp(self):
self.pg = Page()
def tearDown(self):
self.pg = None
def test_parsing(self):
# XXX: Here the stack is already filled why?
self.pg.stack # => [Element(), Element()]
Я ожидаю, что стек будет пустым на втором юнит-тесте, потому что это новый объект. Но это не так.