def test_make_key_value_value_string(self): self.assertEqual(('key', None), RPU.make_key_value(self.TEST_ORIGIN, 'key', TTP.make_node('key', 1), 'string')) self.assertEqual(('key', None), RPU.make_key_value(self.TEST_ORIGIN, 'key:', TTP.make_node('key:', 1), 'string')) self.assertEqual(('key', 'bar'), RPU.make_key_value(self.TEST_ORIGIN, 'key:bar', TTP.make_node('key:bar', 1), 'string'))
def resolve_values(self, substitutions, env): check.check_dict(substitutions) check.check_recipe_load_env_base(env) args_definition = self.description.step_class.args_definition() result = {} for value in self.values: assert value.key in args_definition class_name = args_definition[value.key].class_name result.update({ value.key: value.resolve(env.build_target.system, class_name) }) for name, arg_def in args_definition.items(): if name not in result: if arg_def.default is not None: origin = value_origin('<default>', arg_def.line_number, arg_def.default) default_node = tree_text_parser.make_node(arg_def.default, arg_def.line_number) value = recipe_parser_util.make_value(origin, arg_def.default, default_node, arg_def.class_name) check.check_value_base(value) result[name] = value.resolve([ value ], arg_def.class_name) else: result[name] = recipe_parser_util.value_default(arg_def.class_name) for key, value in result.items(): if check.is_value_base(value): value.substitutions = substitutions return result
def test_make_key_value_value_string_list(self): self.assertEqual(('key', None), RPU.make_key_value(self.TEST_ORIGIN, 'key', TTP.make_node('key', 1), 'string_list')) self.assertEqual(('key', None), RPU.make_key_value(self.TEST_ORIGIN, 'key:', TTP.make_node('key:', 1), 'string_list')) self.assertEqual(('key', ['bar']), RPU.make_key_value(self.TEST_ORIGIN, 'key:bar', TTP.make_node('key:bar', 1), 'string_list')) self.assertEqual(('key', ['foo', 'bar']), RPU.make_key_value(self.TEST_ORIGIN, 'key:foo bar', TTP.make_node('key:foo bar', 1), 'string_list'))
def test_make_key_value_value_key_values(self): self.assertEqual(('key', None), RPU.make_key_value(self.TEST_ORIGIN, 'key', TTP.make_node('key', 1), 'key_values')) self.assertEqual(('key', None), RPU.make_key_value(self.TEST_ORIGIN, 'key:', TTP.make_node('key:', 1), 'key_values')) self.assertEqual(('key', VKV(values=KVL([('foo', '5')]))), RPU.make_key_value(self.TEST_ORIGIN, 'key:foo=5', TTP.make_node('key:foo=5', 1), 'key_values')) self.assertEqual( ('key', VKV(values=KVL([('foo', '5'), ('bar', '7')]))), RPU.make_key_value(self.TEST_ORIGIN, 'key:foo=5 bar=7', TTP.make_node('key:foo=5 bar=7', 1), 'key_values')) self.assertEqual( ('key', VKV(values=KVL([('foo', '"5 6"'), ('bar', '"7 8"')]))), RPU.make_key_value(self.TEST_ORIGIN, 'key:foo="5 6" bar="7 8"', TTP.make_node('key:foo="5 6" bar="7 8"', 1), 'key_values'))
def test_make_key_value_value_bool(self): self.assertEqual(('key', None), RPU.make_key_value(self.TEST_ORIGIN, 'key', TTP.make_node('key', 1), 'bool')) self.assertEqual(('key', None), RPU.make_key_value(self.TEST_ORIGIN, 'key:', TTP.make_node('key:', 1), 'bool')) self.assertEqual(('key', True), RPU.make_key_value(self.TEST_ORIGIN, 'key:True', TTP.make_node('key:True', 1), 'bool')) self.assertEqual(('key', True), RPU.make_key_value(self.TEST_ORIGIN, 'key:true', TTP.make_node('key:true', 1), 'bool')) self.assertEqual(('key', True), RPU.make_key_value(self.TEST_ORIGIN, 'key:1', TTP.make_node('key:1', 1), 'bool')) self.assertEqual(('key', False), RPU.make_key_value(self.TEST_ORIGIN, 'key:False', TTP.make_node('key:False', 1), 'bool')) self.assertEqual(('key', False), RPU.make_key_value(self.TEST_ORIGIN, 'key:false', TTP.make_node('key:false', 1), 'bool')) self.assertEqual(('key', False), RPU.make_key_value(self.TEST_ORIGIN, 'key:0', TTP.make_node('key:0', 1), 'bool')) self.assertEqual(('key', True), RPU.make_key_value(self.TEST_ORIGIN, 'key: True', TTP.make_node('key: True', 1), 'bool')) self.assertEqual(('key', False), RPU.make_key_value(self.TEST_ORIGIN, 'key: False', TTP.make_node('key: False', 1), 'bool'))
def test_make_key_value_value_int(self): self.assertEqual(('key', None), RPU.make_key_value(self.TEST_ORIGIN, 'key', TTP.make_node('key', 1), 'int')) self.assertEqual(('key', None), RPU.make_key_value(self.TEST_ORIGIN, 'key:', TTP.make_node('key:', 1), 'int')) self.assertEqual(('key', 1), RPU.make_key_value(self.TEST_ORIGIN, 'key:1', TTP.make_node('key:1', 1), 'int')) self.assertEqual(('key', 1), RPU.make_key_value(self.TEST_ORIGIN, 'key: 1', TTP.make_node('key: 1', 1), 'int')) self.assertEqual(('key', 0), RPU.make_key_value(self.TEST_ORIGIN, 'key:0', TTP.make_node('key:0', 1), 'int')) self.assertEqual(('key', 0), RPU.make_key_value(self.TEST_ORIGIN, 'key: 0', TTP.make_node('key: 0', 1), 'int')) self.assertEqual(('key', 666), RPU.make_key_value(self.TEST_ORIGIN, 'key:666', TTP.make_node('key:666', 1), 'int'))
def _key_values(clazz, s): return RP._caca_parse_mask_and_value(VO(__file__, 1, s), s, tree_text_parser.make_node(s, 1), VT.KEY_VALUES)
def _string_list(clazz, s): return RP._caca_parse_mask_and_value(VO(__file__, 1, s), s, tree_text_parser.make_node(s, 1), VT.STRING_LIST)
def _bool(clazz, s): return RP._caca_parse_mask_and_value(VO(__file__, 1, s), s, tree_text_parser.make_node(s, 1), VT.BOOL)
def test_make_key_value_key_and_empty_value_with_comment(self): self.assertEqual(('key', None), RPU.make_key_value(self.TEST_ORIGIN, 'key:# comment', TTP.make_node('key:# comment', 1), 'string'))
def test_make_key_value_key_only(self): self.assertEqual(('key', None), RPU.make_key_value(self.TEST_ORIGIN, 'key', TTP.make_node('key', 1), 'string'))