示例#1
0
 def test_normal_append(self):
     value = bbvalue.LazyCompound(self.metadata)
     value.append(bbvalue.bbvalue("VAL", self.metadata))
     value.lazy_prepend(bbvalue.bbparse("${FOO}:", self.metadata))
     value.lazy_append(bbvalue.bbparse(":${BAR}", self.metadata))
     value.append(bbvalue.bbparse(":val2", self.metadata))
     self.assertEqual(value.resolve(), "foo:val:val2:bar")
示例#2
0
 def test_changed_after_memoized(self):
     d = bb.data.init()
     d.setVar("foo", "value of foo")
     val = bbvalue.bbparse("${foo}", d)
     self.assertEqual(str(bbvalue.bbvalue("foo", d)), "value of foo")
     d.setVar("foo", "second value of foo")
     self.assertEqual(str(bbvalue.bbvalue("foo", d)), "second value of foo")
示例#3
0
def references_from_flags(varname, metadata):
    refs = set()
    dirs = metadata.getVarFlag(varname, "dirs")
    if dirs:
        refs.update(references(dirs, metadata))

    varrefs = metadata.getVarFlag(varname, "varrefs")
    if varrefs:
        refs.update(references(varrefs, metadata))
        patterns = str(bbvalue.bbparse(varrefs, metadata)).split()
        for key in metadata.keys():
            if any(fnmatchcase(key, pat) for pat in patterns):
                refs.add(key)

    return refs
示例#4
0
 def test_indirect_and_another(self):
     val = bbvalue.bbparse("${${foo}} ${bar}", self.d)
     self.assertEqual(str(val), "value of 'value of foo' value of bar")
示例#5
0
 def test_python_snippet(self):
     val = bbvalue.bbparse("${@5*12}", self.d)
     self.assertEqual(str(val), "60")
示例#6
0
 def test_one_var(self):
     val = bbvalue.bbparse("${foo}", self.d)
     self.assertEqual(str(val), "value of foo")
示例#7
0
 def test_indirect_one_var(self):
     val = bbvalue.bbparse("${${foo}}", self.d)
     self.assertEqual(str(val), "value of 'value of foo'")
示例#8
0
 def test_append(self):
     value = bbvalue.LazyCompound(self.metadata)
     value.append(bbvalue.bbvalue("VAL", self.metadata))
     value.lazy_append(bbvalue.bbparse(":${BAR}", self.metadata))
     self.assertEqual(value.resolve(), "val:bar")
示例#9
0
 def test_refs(self):
     val = bbvalue.bbparse("${value of ${foo}${bar}}", self.d)
     self.assertEqual(str(val), "187")
示例#10
0
 def test_value_containing_value(self):
     val = bbvalue.bbparse("${@d.getVar('foo', True) + ' ${bar}'}", self.d)
     self.assertEqual(str(val), "value of foo value of bar")
示例#11
0
 def test_ref_in_python_ref(self):
     val = bbvalue.bbparse("${@'${foo}' + 'bar'}", self.d)
     self.assertEqual(str(val), "foobar")
示例#12
0
 def test_mixed(self):
     val = bbvalue.bbparse("${value of ${@('${foo}'+'bar')[0:3]}${${@'BAR'.lower()}}}", self.d)
     self.assertEqual(str(val), "187")
示例#13
0
 def test_runtime(self):
     val = bbvalue.bbparse("${${@'value of' + ' f'+'o'+'o'+'b'+'a'+'r'}}", 
                         self.d)
     self.assertEqual(str(val), "187")
示例#14
0
 def test_deep_python_nesting(self):
     depth = 50
     val = bbvalue.bbparse("${@" * depth + "1" + "+1}" * depth, self.d)
     self.assertEqual(str(val), str(depth + 1))
示例#15
0
 def test_deep_nesting(self):
     depth = 100
     val = bbvalue.bbparse("${" * depth + "foo" + "}" * depth, self.d)
     self.assertEqual(str(val), "foo")
示例#16
0
 def test_python_ref_in_ref(self):
     val = bbvalue.bbparse("${${@'f'+'o'+'o'}}", self.d)
     self.assertEqual(str(val), "foo")
示例#17
0
 def test_expand_in_python_snippet(self):
     val = bbvalue.bbparse("${@'boo ' + '${foo}'}", self.d)
     self.assertEqual(str(val), "boo value of foo")
示例#18
0
 def assertReferences(self, value, refs):
     super(TestBasic, self).assertReferences(
         bbvalue.bbparse(value, self.d), refs)
示例#19
0
 def test_python_snippet_getvar(self):
     val = bbvalue.bbparse("${@d.getVar('foo', True) + ' ${bar}'}", self.d)
     self.assertEqual(str(val), "value of foo value of bar")
示例#20
0
 def test_python_refs(self):
     val = bbvalue.bbparse("${@${@3}**2 + ${@4}**2}", self.d)
     self.assertEqual(str(val), "25")
示例#21
0
 def test_reference_undefined_var(self):
     val = bbvalue.bbparse("${undefinedvar} meh", self.d)
     self.assertEqual(str(val), "${undefinedvar} meh")
示例#22
0
 def test_prepend(self):
     value = bbvalue.LazyCompound(self.metadata)
     value.append(bbvalue.bbvalue("VAL", self.metadata))
     value.lazy_prepend(bbvalue.bbparse("${FOO}:", self.metadata))
     self.assertEqual(value.resolve(), "foo:val")