def test_dump(self): out_file = os.path.join(self.test_path, "dump.json") role_names = th.create_roles(self.test_path) for role in role_names: defaults_path = os.path.join(self.test_path, role, "defaults", "main.yml") tasks_path = os.path.join(self.test_path, role, "tasks", "main.yml") meta_path = os.path.join(self.test_path, role, "meta", "main.yml") utils.string_to_file(defaults_path, th.DEFAULTS_TEMPLATE) utils.string_to_file(tasks_path, th.TASKS_TEMPLATE) utils.string_to_file(meta_path, th.META_TEMPLATE) (out, err) = utils.capture_shell( "ansigenome export -t dump {0} -o {1}".format(self.test_path, out_file)) self.assertTrue(os.path.exists(out_file)) json_contents = utils.file_to_string(out_file) contents = th.json_to_dict(json_contents) self.assertIn("roles", contents) self.assertIn("totals", contents) self.assertIn("dependencies", json_contents) self.assertIsInstance(contents, dict) self.assertEqual(err, "")
def test_reqs_yml(self): out_dir = os.path.join(self.test_path, "requirements") out_path = os.path.join(out_dir, "requirements.yml") role_names = th.create_roles(self.test_path) cli_flags = "-f yml" (out, err) = utils.capture_shell( "ansigenome export -t reqs {0} {2} -o {1}".format(self.test_path, out_path, cli_flags)) self.assertTrue(os.path.exists(out_path)) requirements = utils.file_to_string(out_path) for role in role_names: self.assertIn(role, requirements) self.assertIn("/ansible-", requirements) self.assertIn("testuser.", requirements) self.assertIn("'git'", requirements) self.assertIn("master", requirements) self.assertEqual(out, "") self.assertEqual(err, "")
def populate_dict_with_files(test_path, roles, the_dict, path, tag=""): """ Populate the dict to store the contents of each role's file. """ print() for role in roles: role_path = os.path.join(test_path, role) the_dict[role + tag] = utils.file_to_string( os.path.join(role_path, path)).splitlines(1)
def populate_dict_with_files(test_path, roles, the_dict, path, tag=""): """ Populate the dict to store the contents of each role's file. """ print for role in roles: role_path = os.path.join(test_path, role) the_dict[role + tag] = utils.file_to_string(os.path.join( role_path, path)).splitlines(1)
def test_templates(self): role = th.create_roles(self.test_path, 1) role_name = role[0] role_path = os.path.join(self.test_path, role_name) readme_path = os.path.join(role_path, "README.rst") defaults_path = os.path.join(self.test_path, role_name, "defaults", "main.yml") tasks_path = os.path.join(self.test_path, role_name, "tasks", "main.yml") meta_path = os.path.join(self.test_path, role_name, "meta", "main.yml") utils.string_to_file(defaults_path, th.DEFAULTS_TEMPLATE) utils.string_to_file(tasks_path, th.TASKS_TEMPLATE) utils.string_to_file(meta_path, th.META_TEMPLATE_FULL) (out, err) = utils.capture_shell( "ansigenome gendoc {0}".format(self.test_path)) readme = utils.file_to_string(readme_path) print print "README compiled template:" print readme print self.assertIn("tear.drinker", readme) self.assertIn("Chuck Norris", readme) self.assertIn("Travis", readme) self.assertIn("poop", readme) self.assertIn("imposes", readme) self.assertIn("fists", readme) self.assertIn("telekinesis", readme) self.assertIn(role_name, readme) self.assertIn("testuser." + role_name, readme) self.assertIn("ansible-" + role_name, readme) self.assertIn("theuniverse", readme) self.assertIn("foo: bar", readme) self.assertIn("unix_is_cool", readme) self.assertIn("ansigenome", readme) self.assertIn("galaxy.ansible.com", readme) self.assertNotIn("BETA", readme) self.assertNotIn("beta", readme) self.assertNotIn("deprecated", readme) self.assertNotIn("galaxy-install", readme) self.assertNotIn("twitter", readme)
def test_templates(self): role = th.create_roles(self.test_path, 1) role_name = role[0] role_path = os.path.join(self.test_path, role_name) readme_path = os.path.join(role_path, "README.rst") defaults_path = os.path.join(self.test_path, role_name, "defaults", "main.yml") tasks_path = os.path.join(self.test_path, role_name, "tasks", "main.yml") meta_path = os.path.join(self.test_path, role_name, "meta", "main.yml") utils.string_to_file(defaults_path, th.DEFAULTS_TEMPLATE) utils.string_to_file(tasks_path, th.TASKS_TEMPLATE) utils.string_to_file(meta_path, th.META_TEMPLATE_FULL) (out, err) = utils.capture_shell( "ansigenome gendoc {0}".format(self.test_path)) readme = utils.file_to_string(readme_path) print() print("README compiled template:") print(readme) print self.assertIn("tear.drinker", readme) self.assertIn("Chuck Norris", readme) self.assertIn("Travis", readme) self.assertIn("poop", readme) self.assertIn("imposes", readme) self.assertIn("fists", readme) self.assertIn("telekinesis", readme) self.assertIn(role_name, readme) self.assertIn("testuser." + role_name, readme) self.assertIn("ansible-" + role_name, readme) self.assertIn("theuniverse", readme) self.assertIn("foo: bar", readme) self.assertIn("unix_is_cool", readme) self.assertIn("ansigenome", readme) self.assertIn("galaxy.ansible.com", readme) self.assertNotIn("BETA", readme) self.assertNotIn("beta", readme) self.assertNotIn("deprecated", readme) self.assertNotIn("galaxy-install", readme) self.assertNotIn("twitter", readme)
def assert_role(self, args=""): role_name = th.random_string() path = os.path.join(self.test_path, role_name) meta_path = os.path.join(path, "meta", "main.yml") (out, err) = utils.capture_shell("ansigenome init {0} {1}".format( path, args)) for folder in c.ANSIBLE_FOLDERS: assert os.path.exists(os.path.join(path, folder)), "expected " + \ "'{0}' to be created".format(folder) if folder == "tests": inventory_path = os.path.join(path, folder, "inventory") assert os.path.exists(os.path.join(path, folder, "test")), "expected " + \ "'{0}' to be created".format(folder) assert os.path.exists(os.path.join(inventory_path, "hosts")), "expected " + \ "'{0}' to be created".format(folder) assert os.path.exists(os.path.join(path, "VERSION")) meta = utils.file_to_string(meta_path) print print "Meta file:" print meta print self.assertIn("Test User", meta) self.assertIn("1 sentence", meta) self.assertIn(role_name, meta) self.assertIn("Debian", meta) self.assertIn("categories: [foo,bar,baz]", meta) self.assertIn("ansigenome_info", meta) self.assertIn("galaxy_id", meta) self.assertIn("travis: True", meta) self.assertIn("Describe", meta) self.assertIn("custom", meta) self.assertEqual(out, "") self.assertEqual(err, "")
def assert_role(self, args=""): role_name = th.random_string() path = os.path.join(self.test_path, role_name) meta_path = os.path.join(path, "meta", "main.yml") (out, err) = utils.capture_shell( "ansigenome init {0} {1}".format(path, args)) for folder in c.ANSIBLE_FOLDERS: assert os.path.exists(os.path.join(path, folder)), "expected " + \ "'{0}' to be created".format(folder) if folder == "tests": inventory_path = os.path.join(path, folder, "inventory") assert os.path.exists(os.path.join(path, folder, "test")), "expected " + \ "'{0}' to be created".format(folder) assert os.path.exists(os.path.join(inventory_path, "hosts")), "expected " + \ "'{0}' to be created".format(folder) assert os.path.exists(os.path.join(path, "VERSION")) meta = utils.file_to_string(meta_path) print print "Meta file:" print meta print self.assertIn("Test User", meta) self.assertIn("1 sentence", meta) self.assertIn(role_name, meta) self.assertIn("Debian", meta) self.assertIn("categories: [foo,bar,baz]", meta) self.assertIn("ansigenome_info", meta) self.assertIn("galaxy_id", meta) self.assertIn("travis: True", meta) self.assertIn("Describe", meta) self.assertIn("custom", meta) self.assertEqual(out, "") self.assertEqual(err, "")
def test_reqs_txt(self): out_dir = os.path.join(self.test_path, "requirements") out_path = os.path.join(out_dir, "requirements.txt") role_names = th.create_roles(self.test_path) (out, err) = utils.capture_shell( "ansigenome export -t reqs {0} -o {1}".format(self.test_path, out_path)) self.assertTrue(os.path.exists(out_path)) requirements = utils.file_to_string(out_path) for role in role_names: self.assertIn("testuser.", requirements) self.assertIn(role, requirements) self.assertIn(",", requirements) self.assertEqual(out, "") self.assertEqual(err, "")
def test_graph_dot(self): out_dir = os.path.join(self.test_path, "graph") out_path = os.path.join(out_dir, "test.dot") role_names = th.create_roles(self.test_path) (out, err) = utils.capture_shell( "ansigenome export {0} -f dot -o {1}".format(self.test_path, out_path)) self.assertTrue(os.path.exists(out_path)) dot = utils.file_to_string(out_path) for role in role_names: self.assertIn(role, dot) self.assertIn("size", dot) self.assertIn("dpi", dot) self.assertIn("node", dot) self.assertIn("edge", dot) self.assertNotIn("->", dot) self.assertEqual(out, "") self.assertEqual(err, "")