diff --git a/build.sh b/build similarity index 97% rename from build.sh rename to build index 0464defc..69f0ad92 100755 --- a/build.sh +++ b/build @@ -128,13 +128,13 @@ case "$1" in test) shift # skip t - set -x + export PYTHONPATH=$PYTHONPATH:$(pwd -P)/lib + if [ $# -lt 1 ]; then - set -- cdist.test - fi - PYTHONPATH=$PYTHONPATH:$(pwd -P)/lib \ + python3 -m cdist.test + else python3 -m unittest "$@" - + fi ;; *) diff --git a/lib/cdist/test/__init__.py b/lib/cdist/test/__init__.py index 2f88bf7e..e69de29b 100644 --- a/lib/cdist/test/__init__.py +++ b/lib/cdist/test/__init__.py @@ -1,46 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# -# 2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - - -import os -import subprocess -import unittest - -cdist_commands=["banner", "config", "install"] - -cdist_base_path = os.path.abspath( - os.path.join(os.path.dirname(os.path.realpath(__file__)), "../../../")) - -cdist_exec_path = os.path.join(cdist_base_path, "bin/cdist") - -#class UI(unittest.TestCase): -# def test_banner(self): -# self.assertEqual(subprocess.call([cdist_exec_path, "banner"]), 0) -# -# def test_help(self): -# for cmd in cdist_commands: -# self.assertEqual(subprocess.call([cdist_exec_path, cmd, "-h"]), 0) -# -# # FIXME: mockup needed -# def test_config_localhost(self): -# for cmd in cdist_commands: -# self.assertEqual(subprocess.call([cdist_exec_path, "config", "localhost"]), 0) diff --git a/lib/cdist/test/__main__.py b/lib/cdist/test/__main__.py index 3b31a2cd..08e839d1 100644 --- a/lib/cdist/test/__main__.py +++ b/lib/cdist/test/__main__.py @@ -20,27 +20,29 @@ # # - +import imp import os import sys -import cdist.test import unittest -#class UI(unittest.TestCase): -# def test_banner(self): -# self.assertEqual(subprocess.call([cdist_exec_path, "banner"]), 0) -# -# def test_help(self): -# for cmd in cdist_commands: -# self.assertEqual(subprocess.call([cdist_exec_path, cmd, "-h"]), 0) -# -# # FIXME: mockup needed -# def test_config_localhost(self): -# for cmd in cdist_commands: -# self.assertEqual(subprocess.call([cdist_exec_path, "config", "localhost"]), 0) +base_dir = os.path.dirname(os.path.realpath(__file__)) -print(cdist.test.cdist_exec_path) -print(sys.argv) +test_modules = [] +for possible_test in os.listdir(base_dir): + filename = "__init__.py" + mod_path = os.path.join(base_dir, possible_test, filename) -suite = unittest.defaultTestLoader.discover(os.path.dirname(__file__)) -unittest.TextTestRunner(verbosity=1).run(suite) + if os.path.isfile(mod_path): + test_modules.append(possible_test) + +suites = [] +for test_module in test_modules: + module_parameters = imp.find_module(test_module, [base_dir]) + module = imp.load_module("cdist.test." + test_module, *module_parameters) + + suite = unittest.defaultTestLoader.loadTestsFromModule(module) + # print("Got suite: " + suite.__str__()) + suites.append(suite) + +all_suites = unittest.TestSuite(suites) +unittest.TextTestRunner(verbosity=2).run(all_suites) diff --git a/lib/cdist/test/test_path.py b/lib/cdist/test/test_path.py deleted file mode 100644 index f86c8fad..00000000 --- a/lib/cdist/test/test_path.py +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# -# 2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import os -import shutil -import sys -import tempfile -import unittest - -import cdist.path -import cdist.test - -class Path(unittest.TestCase): - def setUp(self): - self.temp_dir = tempfile.mkdtemp() - self.init_manifest = os.path.join(self.temp_dir, "manifest") - self.path = cdist.path.Path("localhost", "root", "ssh root@localhost", - initial_manifest=self.init_manifest, - base_dir=self.temp_dir) - - os.mkdir(self.path.conf_dir) - os.mkdir(self.path.type_base_dir) - - self.install_type_name = "__install_test" - self.config_type_name = "__config_test" - - # Create install type - self.install_type = os.path.join(self.path.type_base_dir, self.install_type_name) - os.mkdir(self.install_type) - open(os.path.join(self.install_type, "install"), "w").close() - - # Create config type - self.config_type = os.path.join(self.path.type_base_dir, self.config_type_name) - os.mkdir(self.config_type) - - def tearDown(self): - self.path.cleanup() - shutil.rmtree(self.temp_dir) - - def test_type_detection(self): - """Check that a type is identified as install or configuration correctly""" - - self.assertTrue(self.path.is_install_type(self.install_type)) - self.assertFalse(self.path.is_install_type(self.config_type)) - - def test_manifest_uses_install_types_only(self): - """Check that objects created from manifest are only of install type""" - manifest_fd = open(self.init_manifest, "w") - manifest_fd.writelines(["#!/bin/sh\n", - self.install_type_name + "testid\n", - self.config_type_name + "testid\n", - ]) - manifest_fd.close() - - self.install.run_initial_manifest() - - # FIXME: check that only __partition_msdos objects are created! - - self.assertFalse(failed) diff --git a/lib/cdist/test/type_explorer/__init__.py b/lib/cdist/test/type_explorer/__init__.py deleted file mode 100644 index 19d59342..00000000 --- a/lib/cdist/test/type_explorer/__init__.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import os -import unittest - -import cdist.core - -import os.path as op -my_dir = op.abspath(op.dirname(__file__)) -fixtures = op.join(my_dir, 'fixtures') -object_base_path = op.join(fixtures, 'object') -type_base_path = op.join(fixtures, 'type') - -class TypeExplorer(unittest.TestCase): - - def setUp(self): - - def test_explorer_output(self): - """Check for output of type explorer""" - diff --git a/lib/cdist/test/type_explorer/fixtures/type/__test_type/explorer/world b/lib/cdist/test/type_explorer/fixtures/type/__test_type/explorer/world deleted file mode 100755 index 21ba6825..00000000 --- a/lib/cdist/test/type_explorer/fixtures/type/__test_type/explorer/world +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -echo hello diff --git a/lib/cdist/test/type_explorer/fixtures/type/__test_type_object_parameter/explorer/test_parameter b/lib/cdist/test/type_explorer/fixtures/type/__test_type_object_parameter/explorer/test_parameter deleted file mode 100755 index 0778907c..00000000 --- a/lib/cdist/test/type_explorer/fixtures/type/__test_type_object_parameter/explorer/test_parameter +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -cat "$__object/parameter/test" diff --git a/lib/cdist/test/nico_ui.py b/other/tests_reintegrate/nico_ui.py similarity index 100% rename from lib/cdist/test/nico_ui.py rename to other/tests_reintegrate/nico_ui.py diff --git a/lib/cdist/test/test_banner.py b/other/tests_reintegrate/test_banner.py similarity index 100% rename from lib/cdist/test/test_banner.py rename to other/tests_reintegrate/test_banner.py diff --git a/lib/cdist/test/test_config.py b/other/tests_reintegrate/test_config.py similarity index 100% rename from lib/cdist/test/test_config.py rename to other/tests_reintegrate/test_config.py diff --git a/lib/cdist/test/test_exec.py b/other/tests_reintegrate/test_exec.py similarity index 100% rename from lib/cdist/test/test_exec.py rename to other/tests_reintegrate/test_exec.py diff --git a/lib/cdist/test/test_install.py b/other/tests_reintegrate/test_install.py similarity index 100% rename from lib/cdist/test/test_install.py rename to other/tests_reintegrate/test_install.py