Автоматически изменяемые типы параметров упакованных функций - PullRequest
0 голосов
/ 25 марта 2020

Я запускаю несколько тестов для проекта 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)
...