master
John Lauer 0.9.343: notes, list_footprints test c82dfc9 2mo ago
import sys, tempfile, unittest
from pathlib import Path
from unittest.mock import patch
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
import adom_library
from handlers import install_footprint

class ListFootprints(unittest.TestCase):
    def test_stock_library_from_table(self):
        with tempfile.TemporaryDirectory() as d:
            base = Path(d) / "kicad"; share = base / "share" / "kicad" / "footprints" / "Resistor_SMD.pretty"; share.mkdir(parents=True)
            (share / "R_0603_1608Metric.kicad_mod").write_text("(footprint)")
            cfg = Path(d) / "cfg"; cfg.mkdir(); user = Path(d) / "user"; (user / "footprints" / "Adom.pretty").mkdir(parents=True)
            (user / "footprints" / "Adom.pretty" / "X.kicad_mod").write_text("(footprint)")
            (cfg / "fp-lib-table").write_text('(fp_lib_table\n  (version 7)\n  (lib (name "Resistor_SMD")(type "KiCad")(uri "${KICAD10_FOOTPRINT_DIR}/Resistor_SMD.pretty")(options "")(descr ""))\n)\n')
            info = {"version": "10.0", "base_dir": str(base), "user_dir": str(user), "config_dir": str(cfg)}
            with patch.object(adom_library, "_kicad_env_overrides", return_value={}):
                r = install_footprint.handle_list_footprints(info, {"library": "Resistor_SMD"})
                self.assertEqual(r["libraries"]["Resistor_SMD"]["footprints"], ["R_0603_1608Metric"])
                r = install_footprint.handle_list_footprints(info, {})
                self.assertEqual(sorted(r["libraries"]), ["Adom", "Resistor_SMD"])

if __name__ == "__main__":
    unittest.main()