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()