include missing reference names in error message
diff --git a/reclass/datatypes/parameters.py b/reclass/datatypes/parameters.py
index cc0c74c..29ab5b6 100644
--- a/reclass/datatypes/parameters.py
+++ b/reclass/datatypes/parameters.py
@@ -308,4 +308,4 @@
old = len(value.get_references())
value.assembleRefs(self._base)
if old == len(value.get_references()):
- raise InterpolationError('Bad reference count, path:' + repr(path))
+ raise InterpolationError('Missing references: {0}, for path: {1}'.format(value.get_references(), str(path)))
diff --git a/reclass/datatypes/tests/test_parameters.py b/reclass/datatypes/tests/test_parameters.py
index 376922e..8369ae5 100644
--- a/reclass/datatypes/tests/test_parameters.py
+++ b/reclass/datatypes/tests/test_parameters.py
@@ -8,7 +8,7 @@
#
from reclass.datatypes import Parameters
from reclass.defaults import REFERENCE_SENTINELS, ESCAPE_CHARACTER
-from reclass.errors import InfiniteRecursionError
+from reclass.errors import InfiniteRecursionError, InterpolationError
from reclass.values.mergeoptions import MergeOptions
import unittest
try:
@@ -496,5 +496,12 @@
self.assertEqual(n1.as_dict(), r1)
self.assertEqual(n2.as_dict(), r2)
+ def test_nested_refs_error_message(self):
+ # beta is missing, oops
+ p1 = Parameters({'alpha': {'one': 1, 'two': 2}, 'gamma': '${alpha:${beta}}'})
+ with self.assertRaises(InterpolationError) as error:
+ p1.interpolate()
+ self.assertEqual(error.exception.message, "Missing references: ['beta'], for path: gamma")
+
if __name__ == '__main__':
unittest.main()