def test_replace_local_variables(self): parser = BaseParser("") variables = { "FIFTY": 50, "TEST": "TEST", "LOWER NUMBER": 40, "HEX": "0x20", "BOOLEAN": "TRUE", "BOOLEAN FALSE": "FALSE", } parser.LocalVars = variables # check to make sure we don't modify if we don't have variables no_var = "this has no variables" no_var_result = parser.ReplaceVariables(no_var) self.assertEqual(no_var_result, no_var) # make sure we don't fail when we have unknown variables na_var = "unknown var $(UNKNOWN)" na_var_after = "unknown var $(UNKNOWN)" na_var_result = parser.ReplaceVariables(na_var) self.assertEqual(na_var_result, na_var_after) # make sure we're good for all the variables variable_str = "var $(%s)" for variable_key in variables: line = variable_str % variable_key result = parser.ReplaceVariables(line) val = "var " + str(variables[variable_key]) self.assertEqual(result, val)
def test_replace_macro_elseif(self): parser = BaseParser("") parser.SetInputVars({"name": "matt"}) line = "!elseif $(name)" self.assertEqual(parser.ReplaceVariables(line), "!elseif matt") line = "!ELSEIF $(Invalid_Token)" self.assertEqual(parser.ReplaceVariables(line), "!ELSEIF 0")
def test_replace_macro_ifndef(self): parser = BaseParser("") parser.SetInputVars({"name": "sean"}) line = "!IfNDef name" self.assertEqual(parser.ReplaceVariables(line), "!IfNDef sean") line = "!ifndef Invalid_Token" self.assertEqual(parser.ReplaceVariables(line), "!ifndef 0") line = "!IFnDEF name" self.assertEqual(parser.ReplaceVariables(line), "!IFnDEF sean")
def test_replace_macro_ifdef_dollarsign(self): parser = BaseParser("") parser.SetInputVars({"name": "sean"}) line = "!ifdef $(name)" self.assertEqual(parser.ReplaceVariables(line), "!ifdef sean") line = "!ifdef $(Invalid_Token)" self.assertEqual(parser.ReplaceVariables(line), "!ifdef 0") line = "!IFDEF $(name)" self.assertEqual(parser.ReplaceVariables(line), "!IFDEF sean")
def test_replace_macro_without_resolution(self): parser = BaseParser("") parser.SetInputVars({ "name": "sean" }) line = "!if $(Unknown_Token)!" self.assertEqual(parser.ReplaceVariables(line), "!if 0!")
def test_replace_macro_using_dollarsign(self): parser = BaseParser("") parser.SetInputVars({ "name": "sean" }) line = "Hello $(name)!" self.assertEqual(parser.ReplaceVariables(line), "Hello sean!")
def test_replace_boolean_constants(self): parser = BaseParser("") parser.SetInputVars({ "true": "True", "false": "False", "b_true": True, "b_false": False }) line = "$(true)" self.assertEqual(parser.ReplaceVariables(line), "TRUE") line = "$(false)" self.assertEqual(parser.ReplaceVariables(line), "FALSE") line = "$(b_true)" self.assertEqual(parser.ReplaceVariables(line), "TRUE") line = "$(b_false)" self.assertEqual(parser.ReplaceVariables(line), "FALSE")
def test_replace_macro_local_var_priority(self): parser = BaseParser("") parser.SetInputVars({ "name": "sean" }) parser.LocalVars["name"] = "fred" line = "Hello $(name)!" self.assertEqual(parser.ReplaceVariables(line), "Hello fred!")