Я запускаю несколько тестов для проекта python. Я хотел бы создать оболочку, которая изменит тип параметра тестируемой функции на строку. Вместо того чтобы писать эти преобразования вручную (т.е. str(param1), str(param2), ...
, я бы хотел, чтобы функция-обертка выполняла sh this.
Я обертываю тестовую функцию (test_fields
), которая сама по себе не имеет *args **kwargs
за исключением self
.
Я хотел бы ввести следующие параметры: self.vin, self.year, self.make, self.model, self.mileage
.
class TestCarMD(unittest.TestCase):
vin = "1GNALDEK9FZ108495"
year = 2015
make = "chevrolet"
model = "equinox"
engine = "L4,2.4L;DOHC;16V;DI;FFV"
mileage = 125000
dtc = "p0420"
def setUp(self):
self.carmd = CarMD()
def str_wrap(method):
def wrapper(inst, *args, **kwargs):
# want ability to change parameters to string below
vin, make = method(inst, *args, **kwargs)
inst.assert_dict(vin, make)
return wrapper
def assert_dict(self, param1, param2):
self.assertIsInstance(param1, dict)
self.assertIsInstance(param2, dict)
@str_wrap
def test_fields(self):
return self.carmd.fields.vin(self.vin),\
self.carmd.fields.make(self.year, self.make, self.model, self.mileage)