bitbake: tests.data: add test for inline python calling a def'd function

This is a test for an issue seen long ago, to avoid regressions, where a
reference to a def'd function in the metadata would return the string
value from the metadata rather than the function in inline python.

(Bitbake rev: 9f7cb22febd557817c164e25a93f5660e9c06358)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Christopher Larson
2022-03-17 15:33:54 -07:00
committed by Richard Purdie
parent 6f361c81ba
commit fc8468024c

View File

@@ -77,6 +77,15 @@ class DataExpansions(unittest.TestCase):
val = self.d.expand("${@d.getVar('foo') + ' ${bar}'}")
self.assertEqual(str(val), "value_of_foo value_of_bar")
def test_python_snippet_function_reference(self):
self.d.setVar("TESTVAL", "testvalue")
self.d.setVar("testfunc", 'd.getVar("TESTVAL")')
self.d.setVarFlag("testfunc", "func", "1")
context = bb.utils.get_context()
context["testfunc"] = lambda d: d.getVar("TESTVAL")
val = self.d.expand("${@testfunc(d)}")
self.assertEqual(str(val), "testvalue")
def test_python_unexpanded(self):
self.d.setVar("bar", "${unsetvar}")
val = self.d.expand("${@d.getVar('foo') + ' ${bar}'}")