import inspect import logging import os import os.path from inspect import Parameter import ee.kicad.doit from ee.kicad.doit import task_kicad_sch_to_data_set, task_kicad_pcb_to_data_set, task_kicad_create_component_data_set logger = logging.getLogger(__name__) file_dir = os.path.dirname(os.path.abspath(__file__)) schematics_dir = os.path.join(file_dir, "schematics") def exec_task(task): targets = task["targets"] for a in task["actions"]: if isinstance(a, str): cmd = a % dict(targets=" ".join(targets)) ret = os.system(cmd) assert (ret == 0) else: parameters = {} for p in inspect.signature(a).parameters.values(): if p.kind == Parameter.POSITIONAL_OR_KEYWORD and p.name == "targets": parameters["targets"] = targets a(**parameters) # noinspection SpellCheckingInspection def test_doit(tmpdir, caplog): ee.kicad.doit.init(sch=os.path.join(schematics_dir, "schematic-1.sch"), kicad_pcb=os.path.join(schematics_dir, "schematic-1.kicad_pcb"), data_set_dir=os.path.join(tmpdir, "ee"), ) exec_task(task_kicad_sch_to_data_set()) exec_task(task_kicad_pcb_to_data_set()) exec_task(task_kicad_create_component_data_set())