Fix releasetools device_specific error case
When the specified device_specific code isn't found, handle the error
with a log statement rather than a NoneType exception.
Fixes: 390497895
Test: treehugger
Change-Id: Id5925f4e9ec9ae35d217823fc32f1ac7f06f1652
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index e9cb5bb..b6cbb15 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -3138,6 +3138,8 @@
if not os.path.exists(path) and os.path.exists(path + ".py"):
path = path + ".py"
spec = importlib.util.spec_from_file_location("device_specific", path)
+ if not spec:
+ raise FileNotFoundError(path)
logger.info("loaded device-specific extensions from %s", path)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
diff --git a/tools/releasetools/test_common.py b/tools/releasetools/test_common.py
index 89933a0..62f425a 100644
--- a/tools/releasetools/test_common.py
+++ b/tools/releasetools/test_common.py
@@ -2157,3 +2157,11 @@
'google/coral/coral:10/RP1A.200325.001/6337676:user/dev-keys',
'ro.product.odm.device': 'coral',
}, copied_props.build_props)
+
+
+class DeviceSpecificParamsTest(test_utils.ReleaseToolsTestCase):
+
+ def test_missingSource(self):
+ common.OPTIONS.device_specific = '/does_not_exist'
+ ds = DeviceSpecificParams()
+ self.assertIsNone(ds.module)