Возможно ли иметь базовые классы, определяющие тесты в торнадо, которые сами по себе не выполняются как тесты?
Допустим, у меня есть следующий минимальный пример в качестве базового класса:
from tornado.testing import AsyncTestCase, gen_test
from tornado.httpclient import HTTPRequest
class AbstractTestCase(AsyncTestCase):
def set_parameters(self):
#Set some parameter value here: self.uri = ...
raise NotImplementedError
@gen_test
def test_common_functionality(self):
req = HTTPRequest(self.uri, method = "GET")
response = yield self.client.fetch(req, raise_error=False)
self.assertEqual(200, response.code)
Теперь я хотел бы сделать несколько тестовых случаев, которые унаследованы от этого, определить свое собственное значение для self.uri ... и иметь несколько конкретных c собственных тестов. Например:
class ConcreteTestCase(AbstractTestCase):
def set_parameters(self):
self.uri = "www.stackoverflow.com"
@gen_test
def test_some_other_thing(self):
self.assertEqual(2, 1+1)
Однако, когда я пытаюсь запустить это, AbstractTestCase также запускается сам по себе, выдавая ошибку (NotImplementedError). Это происходит, даже когда я только пытаюсь запустить наследующие тесты.
Есть ли способ обойти эту проблему, или мне нужно дублировать функциональность в каждом тестовом примере?