app
KiCad - the KiCad Bridge
Public Made by Adomby adom
Drive your own KiCad from an AI, in the background: open every editor, read the whole board as data (the EDA Bridge Standard board model), stack-up, part heights, netlists, place, route, pour, DRC and exports.
master
John Lauer
0.9.341: verb-test runner (full coverage, foreground victim rule, user discovery, pcbnew ping), routing/readiness/libra…
4768cda
2mo ago
import sys, unittest
from pathlib import Path
from unittest.mock import patch
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
import adom_library
INFO = {"version": "10.0", "base_dir": "C:/Users/arav/AppData/Local/Programs/KiCad/10.0", "user_dir": "C:/Users/arav/Documents/KiCad/10.0"}
class ExpandUri(unittest.TestCase):
def test_stock_symbol_dir_is_the_install_share(self):
with patch.object(adom_library, "_kicad_env_overrides", return_value={}):
self.assertEqual(adom_library._expand_kicad_uri("${KICAD10_SYMBOL_DIR}/Device.kicad_sym", INFO),
"C:/Users/arav/AppData/Local/Programs/KiCad/10.0/share/kicad/symbols/Device.kicad_sym")
self.assertEqual(adom_library._expand_kicad_uri("${KICAD10_FOOTPRINT_DIR}/Resistor_SMD.pretty", INFO),
"C:/Users/arav/AppData/Local/Programs/KiCad/10.0/share/kicad/footprints/Resistor_SMD.pretty")
def test_user_override_wins(self):
with patch.object(adom_library, "_kicad_env_overrides", return_value={"KICAD10_SYMBOL_DIR": "D:/libs/sym"}):
self.assertEqual(adom_library._expand_kicad_uri("${KICAD10_SYMBOL_DIR}/Device.kicad_sym", INFO), "D:/libs/sym/Device.kicad_sym")
def test_project_relative_and_unknown_refused(self):
with patch.object(adom_library, "_kicad_env_overrides", return_value={}):
self.assertIsNone(adom_library._expand_kicad_uri("${KIPRJMOD}/x.kicad_sym", INFO))
self.assertIsNone(adom_library._expand_kicad_uri("${MYVAR}/x.kicad_sym", INFO))
self.assertEqual(adom_library._expand_kicad_uri("C:\\\\plain\\\\Adom.kicad_sym", INFO), "C:/plain/Adom.kicad_sym")
if __name__ == "__main__":
unittest.main()