binman: Generate an error when text is not provided

When the value of a text entry is not provided an execption is generated
talking about a None type. This is confusing. Add a more explanatory error
and a test for this case.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2018-09-14 04:57:09 -06:00
parent d178eab8f9
commit 0b489364f9
2 changed files with 10 additions and 0 deletions

View file

@ -51,6 +51,9 @@ class Entry_text(Entry):
self.text_label, = self.GetEntryArgsOrProps(
[EntryArg('text-label', str)])
self.value, = self.GetEntryArgsOrProps([EntryArg(self.text_label, str)])
if not self.value:
self.Raise("No value provided for text label '%s'" %
self.text_label)
def ObtainContents(self):
self.SetContents(self.value)

View file

@ -1369,6 +1369,13 @@ class TestFunctional(unittest.TestCase):
data = self._DoReadFile('80_fill_empty.dts')
self.assertEqual(chr(0) * 16, data)
def testTextMissing(self):
"""Test for a text entry type where there is no text"""
with self.assertRaises(ValueError) as e:
self._DoReadFileDtb('66_text.dts',)
self.assertIn("Node '/binman/text': No value provided for text label "
"'test-id'", str(e.exception))
if __name__ == "__main__":
unittest.main()