def test_config_template_update_variable(self): p1 = Project(name="Project 1") ct1 = ConfigTemplate(name="first script", project=p1) ct2 = ConfigTemplate(name="second script", project=p1) ct1.project = p1 ct2.project = p1 db.session.add(p1) db.session.add(ct1) db.session.add(ct2) db.session.commit() # verify that the variables are not defined self.assertFalse(ct1.is_variable_defined("first variable")) self.assertFalse(ct1.is_variable_defined("second variable")) self.assertFalse(ct2.is_variable_defined("first variable")) # add variables to the first configuration template ct1var1_desc = "description for first P1 variable" ct1.update_template_variable("first variable", ct1var1_desc) ct1.update_template_variable("second variable", "description for second P1 variable") ct2.update_template_variable("first variable", "description for first P2 variable") self.assertTrue(len(ct1.variables.all()) == 2 + 1) self.assertTrue(len(ct2.variables.all()) == 1 + 1) # update value ct1var1_desc_mod = "modified description" ct1.update_template_variable("first variable", ct1var1_desc_mod) ct1var1 = ct1.get_template_variable_by_name("first_variable") self.assertNotEqual(ct1var1.description, ct1var1_desc) self.assertEqual(ct1var1.description, ct1var1_desc_mod)
def test_variable_name_conversion(self): p = Project("project") ct = ConfigTemplate("My Template", project=p) db.session.add_all([p, ct]) ct.update_template_variable("First Test") self.assertTrue(ct.is_variable_defined("First_Test")) ct.update_template_variable("first_test") self.assertTrue(len(ConfigTemplate.query.all()) == 1) self.assertTrue(ct.is_variable_defined("first_test")) variable_map = ( ("Value ", "Value"), ("the variable name", "the_variable_name"), ("%&/__ASDF ", "ASDF"), ) for string, expected_result in variable_map: self.assertEqual(ct.convert_variable_name(string), expected_result)
def test_config_template_add_variables_and_lookup(self): # create test data p1 = Project(name="Project 1") ct1 = ConfigTemplate(name="first script", project=p1) ct2 = ConfigTemplate(name="second script", project=p1) ct1.project = p1 ct2.project = p1 db.session.add(p1) db.session.add(ct1) db.session.add(ct2) db.session.commit() # verify that the variables are not defined self.assertFalse(ct1.is_variable_defined("first variable")) self.assertFalse(ct1.is_variable_defined("second variable")) self.assertFalse(ct2.is_variable_defined("first variable")) # add variables to the first configuration template ct1var1_desc = "description for first P1 variable" ct1var2_desc = "description for second P1 variable" ct1.update_template_variable("first variable", ct1var1_desc) ct1.update_template_variable("second variable", ct1var2_desc) self.assertFalse(ct2.is_variable_defined("first variable")) db.session.commit() # add variables to the second configuration template ct2var1_desc = "description for first P2 variable" ct2.update_template_variable("first variable", ct2var1_desc) db.session.commit() # retrieve variables (hostname is automatically created) self.assertTrue(len(ct1.variables.all()) == 2 + 1) self.assertTrue(len(ct2.variables.all()) == 1 + 1) self.assertTrue(ct1.is_variable_defined("first_variable")) self.assertTrue(ct1.is_variable_defined("second_variable")) self.assertTrue(ct2.is_variable_defined("first_variable")) ct1var1 = ct1.get_template_variable_by_name("first_variable") self.assertTrue(type(ct1var1) is TemplateVariable) self.assertEqual(ct1var1.config_template, ct1) self.assertEqual(ct1var1.description, ct1var1_desc) ct1var2 = ct1.get_template_variable_by_name("second_variable") self.assertTrue(type(ct1var2) is TemplateVariable) self.assertEqual(ct1var2.config_template, ct1) self.assertEqual(ct1var2.description, ct1var2_desc) ct2var1 = ct2.get_template_variable_by_name("first_variable") self.assertTrue(type(ct2var1) is TemplateVariable) self.assertEqual(ct2var1.config_template, ct2) self.assertEqual(ct2var1.description, ct2var1_desc) # invalid template lookup with self.assertRaises(TemplateVariableNotFoundException): ct1.get_template_variable_by_name("unknown key")