Как я могу динамически генерировать набор подклассов TestCase из другого модуля?

1

У меня есть один модуль python, который определяет набор базовых классов, которые затем реализует другой модуль python.

В базовом модуле python также есть тестовые примеры, которые проверяют, правильно ли реализованы базовые классы.

Во втором модульном тестовом наборе я хотел бы автоматически генерировать подклассы TestCase из первого модуля и добавлять mixin, который делает необходимый setUp() для конкретной реализации.

Я вижу множество ответов для параметризации тестовых примеров, но в моем случае я просто хочу повторно использовать общие классы и подклассы для всех.

Это нормально, если ему нужен какой-то код в родительском тестовом модуле для их создания, если он называет тесты по-разному и автоматически запускает их.

Если это имеет значение, этот код использует скрученную и пробную версию по стандарту unittest.

  • 0
    Классная история, братан, ты забыл вопрос.
  • 1
    А? Это прямо там. История - это объяснение вопроса.
Теги:
twisted

1 ответ

3
Лучший ответ

Что-то, что может сделать почти то, что вам нужно, - twisted.internet.test.reactormixins.ReactorBuilder. Например, вы можете увидеть, как он используется в test_tcp.

  • 0
    Спасибо Glyph, который указал мне правильное направление. Я взял makeTestCaseClasses и изменил его на функцию модуля, используя список общих тестовых случаев, определенных в том же модуле. Единственное, что до сих пор меня озадачивает, это тип metaclass = в верхней части модуля; это необходимо? Что оно делает ? Это довольно не для Google.
  • 0
    Это просто делает все классы, определенные в этом модуле без явного базового класса, новым стилем. Он защищает от того, что кто-то определил одноразовый класс и забыл (object) перед :

Ещё вопросы

Сообщество Overcoder
Наверх
Меню