Я пытаюсь выполнить модульное тестирование кода Python, который обращается к удаленной службе. Я использую PyUnit с python 2.7.
В методе setUpClass
код предлагает пользователю ввести пароль для службы. Я хочу, чтобы все было модульным, поэтому я создал отдельные классы модульных тестов для каждого тестируемого класса. Все эти классы обращаются к одной и той же удаленной службе, и все они используют одно определение метода setUpClass
для суперкласса.
Моя проблема в том, что мне приходится повторно вводить пароль несколько раз (один раз для каждого тестового класса). Я ленивый. Я хочу вводить пароль только один раз для всех модульных тестов. Я мог бы избежать этой проблемы, жестко закодировав пароль в модульном тесте, но это ужасная идея. Другой вариант - поместить все в один массивный класс, производный от unittest.TestCase
, но я хочу избежать этого пути, потому что мне нравится модульность.
Вот как структурирован код:
import unittest
from getpass import getpass
class TestCommon(unittest.TestCase):
@classmethod
def setUpClass(cls):
pwd = getpass()
class test_A(TestCommon):
# ...individual unit tests for class A
class test_B(TestCommon):
# ...individual unit tests for class B
В этом примере мне пришлось бы ввести пароль дважды: один раз для класса A
и один раз для класса B
.
У кого-нибудь есть совет о безопасном способе ввода одноразового пароля прямо в начале запуска модульного теста? Спасибо!