@@ -39,7 +39,6 @@ C = "3"
os.chdir(self.origdir)
def parsehelper(self, content, suffix = ".bb"):
-
f = tempfile.NamedTemporaryFile(suffix = suffix)
f.write(bytes(content, "utf-8"))
f.flush()
@@ -47,17 +46,17 @@ C = "3"
return f
def test_parse_simple(self):
- f = self.parsehelper(self.testfile)
- d = bb.parse.handle(f.name, self.d)['']
+ with self.parsehelper(self.testfile) as f:
+ d = bb.parse.handle(f.name, self.d)['']
self.assertEqual(d.getVar("A"), "1")
self.assertEqual(d.getVar("B"), "2")
self.assertEqual(d.getVar("C"), "3")
def test_parse_incomplete_function(self):
testfileB = self.testfile.replace("}", "")
- f = self.parsehelper(testfileB)
- with self.assertRaises(bb.parse.ParseError):
- d = bb.parse.handle(f.name, self.d)['']
+ with self.parsehelper(testfileB) as f:
+ with self.assertRaises(bb.parse.ParseError):
+ d = bb.parse.handle(f.name, self.d)['']
unsettest = """
A = "1"
@@ -69,8 +68,8 @@ unset B[flag]
"""
def test_parse_unset(self):
- f = self.parsehelper(self.unsettest)
- d = bb.parse.handle(f.name, self.d)['']
+ with self.parsehelper(self.unsettest) as f:
+ d = bb.parse.handle(f.name, self.d)['']
self.assertEqual(d.getVar("A"), None)
self.assertEqual(d.getVarFlag("A","flag"), None)
self.assertEqual(d.getVar("B"), "2")
@@ -113,8 +112,8 @@ A[flag_default_twice] ??= "default flag first"
A[flag_default_twice] ??= "default flag second"
"""
def test_parse_defaulttest(self):
- f = self.parsehelper(self.defaulttest)
- d = bb.parse.handle(f.name, self.d)['']
+ with self.parsehelper(self.defaulttest) as f:
+ d = bb.parse.handle(f.name, self.d)['']
self.assertEqual(d.getVar("A"), "set value")
self.assertEqual(d.getVarFlag("A","flag_set_vs_question"), "set flag")
self.assertEqual(d.getVarFlag("A","flag_set_vs_default"), "set flag")
@@ -136,8 +135,8 @@ exportD = "d"
"""
def test_parse_exports(self):
- f = self.parsehelper(self.exporttest)
- d = bb.parse.handle(f.name, self.d)['']
+ with self.parsehelper(self.exporttest) as f:
+ d = bb.parse.handle(f.name, self.d)['']
self.assertEqual(d.getVar("A"), "a")
self.assertIsNone(d.getVarFlag("A", "export"))
self.assertEqual(d.getVar("B"), "b")
@@ -149,7 +148,6 @@ exportD = "d"
self.assertEqual(d.getVar("exportD"), "d")
self.assertIsNone(d.getVarFlag("exportD", "export"))
-
overridetest = """
RRECOMMENDS:${PN} = "a"
RRECOMMENDS:${PN}:libc = "b"
@@ -158,8 +156,8 @@ PN = "gtk+"
"""
def test_parse_overrides(self):
- f = self.parsehelper(self.overridetest)
- d = bb.parse.handle(f.name, self.d)['']
+ with self.parsehelper(self.overridetest) as f:
+ d = bb.parse.handle(f.name, self.d)['']
self.assertEqual(d.getVar("RRECOMMENDS"), "b")
bb.data.expandKeys(d)
self.assertEqual(d.getVar("RRECOMMENDS"), "b")
@@ -173,8 +171,8 @@ EXTRA_OECONF:append = " c"
"""
def test_parse_overrides2(self):
- f = self.parsehelper(self.overridetest2)
- d = bb.parse.handle(f.name, self.d)['']
+ with self.parsehelper(self.overridetest2) as f:
+ d = bb.parse.handle(f.name, self.d)['']
d.appendVar("EXTRA_OECONF", " d")
d.setVar("OVERRIDES", "class-target")
self.assertEqual(d.getVar("EXTRA_OECONF"), "b c d")
@@ -186,8 +184,8 @@ PN = "bc"
"""
def test_parse_combinations(self):
- f = self.parsehelper(self.overridetest3)
- d = bb.parse.handle(f.name, self.d)['']
+ with self.parsehelper(self.overridetest3) as f:
+ d = bb.parse.handle(f.name, self.d)['']
bb.data.expandKeys(d)
self.assertEqual(d.getVar("DESCRIPTION:bc-dev"), "A B")
d.setVar("DESCRIPTION", "E")
@@ -195,7 +193,6 @@ PN = "bc"
d.setVar("OVERRIDES", "bc-dev")
self.assertEqual(d.getVar("DESCRIPTION"), "C D")
-
classextend = """
VAR_var:override1 = "B"
EXTRA = ":override1"
@@ -218,15 +215,15 @@ python () {
#
def test_parse_classextend_contamination(self):
self.d.setVar("__bbclasstype", "recipe")
- cls = self.parsehelper(self.classextend_bbclass, suffix=".bbclass")
- #clsname = os.path.basename(cls.name).replace(".bbclass", "")
- self.classextend = self.classextend.replace("###CLASS###", cls.name)
- f = self.parsehelper(self.classextend)
- alldata = bb.parse.handle(f.name, self.d)
- d1 = alldata['']
- d2 = alldata[cls.name]
- self.assertEqual(d1.getVar("VAR_var"), "B")
- self.assertEqual(d2.getVar("VAR_var"), None)
+ with self.parsehelper(self.classextend_bbclass, suffix=".bbclass") as cls:
+ #clsname = os.path.basename(cls.name).replace(".bbclass", "")
+ self.classextend = self.classextend.replace("###CLASS###", cls.name)
+ with self.parsehelper(self.classextend) as f:
+ alldata = bb.parse.handle(f.name, self.d)
+ d1 = alldata['']
+ d2 = alldata[cls.name]
+ self.assertEqual(d1.getVar("VAR_var"), "B")
+ self.assertEqual(d2.getVar("VAR_var"), None)
addtask_deltask = """
addtask do_patch after do_foo after do_unpack before do_configure before do_compile
@@ -250,10 +247,8 @@ deltask do_fetch ${MYVAR} ${EMPTYVAR}
deltask ${EMPTYVAR}
"""
def test_parse_addtask_deltask(self):
-
- f = self.parsehelper(self.addtask_deltask)
- d = bb.parse.handle(f.name, self.d)['']
-
+ with self.parsehelper(self.addtask_deltask) as f:
+ d = bb.parse.handle(f.name, self.d)['']
self.assertSequenceEqual(['do_fetch2', 'do_patch2', 'do_myplaintask', 'do_mytask', 'do_mytask2', 'do_mytask5'], bb.build.listtasks(d))
self.assertEqual(['do_mytask'], d.getVarFlag("do_mytask5", "deps"))
@@ -263,10 +258,9 @@ deltask ${EMPTYVAR}
"""
def test_parse_broken_multiline_comment(self):
- f = self.parsehelper(self.broken_multiline_comment)
- with self.assertRaises(bb.BBHandledException):
- d = bb.parse.handle(f.name, self.d)['']
-
+ with self.parsehelper(self.broken_multiline_comment) as f:
+ with self.assertRaises(bb.BBHandledException):
+ d = bb.parse.handle(f.name, self.d)['']
comment_in_var = """
VAR = " \\
@@ -276,10 +270,9 @@ VAR = " \\
"
"""
def test_parse_comment_in_var(self):
- f = self.parsehelper(self.comment_in_var)
- with self.assertRaises(bb.BBHandledException):
- d = bb.parse.handle(f.name, self.d)['']
-
+ with self.parsehelper(self.comment_in_var) as f:
+ with self.assertRaises(bb.BBHandledException):
+ d = bb.parse.handle(f.name, self.d)['']
at_sign_in_var_flag = """
A[flag@.service] = "nonet"
@@ -289,8 +282,8 @@ C[f] = "flag"
unset A[flag@.service]
"""
def test_parse_at_sign_in_var_flag(self):
- f = self.parsehelper(self.at_sign_in_var_flag)
- d = bb.parse.handle(f.name, self.d)['']
+ with self.parsehelper(self.at_sign_in_var_flag) as f:
+ d = bb.parse.handle(f.name, self.d)['']
self.assertEqual(d.getVar("A"), None)
self.assertEqual(d.getVar("B"), None)
self.assertEqual(d.getVarFlag("A","flag@.service"), None)
@@ -299,9 +292,9 @@ unset A[flag@.service]
def test_parse_invalid_at_sign_in_var_flag(self):
invalid_at_sign = self.at_sign_in_var_flag.replace("B[f", "B[@f")
- f = self.parsehelper(invalid_at_sign)
- with self.assertRaises(bb.parse.ParseError):
- d = bb.parse.handle(f.name, self.d)['']
+ with self.parsehelper(invalid_at_sign) as f:
+ with self.assertRaises(bb.parse.ParseError):
+ d = bb.parse.handle(f.name, self.d)['']
export_function_recipe = """
inherit someclass
@@ -453,13 +446,13 @@ A+ = "b"
+= "d"
"""
def test_parse_special_character_assignment(self):
- f = self.parsehelper(self.special_character_assignment)
- d = bb.parse.handle(f.name, self.d)['']
+ with self.parsehelper(self.special_character_assignment) as f:
+ d = bb.parse.handle(f.name, self.d)['']
self.assertEqual(d.getVar("A"), " a")
self.assertEqual(d.getVar("A+"), "b")
self.assertEqual(d.getVar("+"), "c")
- f = self.parsehelper(self.ambigous_assignment)
- with self.assertRaises(bb.parse.ParseError) as error:
- bb.parse.handle(f.name, self.d)
+ with self.parsehelper(self.ambigous_assignment) as f:
+ with self.assertRaises(bb.parse.ParseError) as error:
+ bb.parse.handle(f.name, self.d)
self.assertIn("Empty variable name in assignment", str(error.exception))
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> --- bitbake/lib/bb/tests/parse.py | 95 ++++++++++++++++------------------- 1 file changed, 44 insertions(+), 51 deletions(-)