Конвертировать структуру файла Python - PullRequest
0 голосов
/ 30 января 2019


В моем текущем проекте у меня есть 500 тестовых файлов (инфраструктура UnitTest).Мы решили изменить их с использования setUpClass / tearDownClass на setUpModule / tearDownModule.они выглядят так:

from tests.basetestcase import BaseTestCase
from tests.state_reproductor import StateReproductor
import os
import time

class Testopen(BaseTestCase):

    PRND_PATH = "PRND"

    @classmethod
    def setUpClass(cls):
        cls.reproduceState()
        super().setUpConnection()
        cls.waitForNode(cls.PRND_PATH, 3)

    @classmethod
    def tearDownClass(cls):
        cls.reproductor.restore_all_modified_values()

    @classmethod
    def reproduceState(cls):
        cls.reproductor = StateReproductor()
        cls.reproductor.process_include("startupSequence")
        cls.reproductor.process_include("startupState_01")
        cls.reproductor.send_signal("Status","SCORES")
        cls.reproductor.process_include("start")

    def test_template(self):
        pass

и тому подобное

from tests.basetestcase import BaseTestCase
from tests.state_reproductor import StateReproductor
import os
import time
import unittest


reproductor = None


def setUpModule():
    global reproductor
    reproductor = StateReproductor()
    reproductor.process_include("startupSequence")
    reproductor.process_include("startupState_01")
    reproductor.send_signal("Status","SCORES")
    reproductor.process_include("startETM")


def teartDownModule():
    global reproductor
    del reproductor
    reproductor = None


@unittest.skipIf(BaseTestCase.ACTIVE==False, 'Not active')
class Testopen_ETM(BaseTestCase):

    PRND_PATH = "PRND"

    @classmethod
    def setUpClass(cls):
        super().setUpTecoConnection()
        cls.waitForNode(cls.PRND_PATH, 3)

    @classmethod
    def tearDownClass(cls):
        global reproductor
        reproductor.restore_all_modified_values()

    def test_template(self):
        pass

Пока что я просто читаю каждый файл в память построчно, определяю начало своих функций и изменяю.Или скопируйте его содержимое, чтобы добавить его в другое место во время второго анализа.
Я нахожу это скучным и грубым, а не красивым / красивым.AWK или другие консольные инструменты столкнутся с подобной проблемой (построчный анализ).
Python.AST МОЖЕТ быть инструментом для такого рода работы.

Что вы предлагаете использовать для выполненияэто преобразование?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...