Exemplo n.º 1
0
    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, "")
Exemplo n.º 2
0
    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, "")
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
    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)
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
    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, "")
Exemplo n.º 8
0
    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, "")
Exemplo n.º 9
0
    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, "")
Exemplo n.º 10
0
    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, "")