From 8ac1406020dc567be29cafeaac995a9de5edc247 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Fri, 14 Oct 2011 10:49:28 +0200 Subject: [PATCH 1/8] stage away obsolete tests Signed-off-by: Nico Schottelius --- lib/cdist/test/test_path.py | 78 ------------------- .../tests_reintegrate}/test_banner.py | 0 .../tests_reintegrate}/test_config.py | 0 .../tests_reintegrate}/test_exec.py | 0 .../tests_reintegrate}/test_install.py | 0 5 files changed, 78 deletions(-) delete mode 100644 lib/cdist/test/test_path.py rename {lib/cdist/test => other/tests_reintegrate}/test_banner.py (100%) rename {lib/cdist/test => other/tests_reintegrate}/test_config.py (100%) rename {lib/cdist/test => other/tests_reintegrate}/test_exec.py (100%) rename {lib/cdist/test => other/tests_reintegrate}/test_install.py (100%) 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/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 From 2194368c0cdeb3728e4f72c610dd110471b6332c Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Fri, 14 Oct 2011 12:03:03 +0200 Subject: [PATCH 2/8] load all test classes Signed-off-by: Nico Schottelius --- lib/cdist/test/__main__.py | 39 ++++++++++--------- .../tests_reintegrate}/nico_ui.py | 0 2 files changed, 21 insertions(+), 18 deletions(-) rename {lib/cdist/test => other/tests_reintegrate}/nico_ui.py (100%) diff --git a/lib/cdist/test/__main__.py b/lib/cdist/test/__main__.py index 3b31a2cd..136e122a 100644 --- a/lib/cdist/test/__main__.py +++ b/lib/cdist/test/__main__.py @@ -1,3 +1,4 @@ +#c1406:!/usr/bin/env python3 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # @@ -20,27 +21,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__)) + +test_modules = [] +for possible_test in os.listdir(base_dir): + filename = "__init__.py" + mod_path = os.path.join(base_dir, possible_test, filename) + + print(mod_path + "x") + + if os.path.isfile(mod_path): + test_modules.append(possible_test) + +print(sys.path) + +for test_module in test_modules: + module = imp.find_module(test_module, [base_dir]) + imp.load_module(test_module, *module) + +#suite = unittest.defaultTestLoader.loadTestsFromModule(cdist.test.code) -print(cdist.test.cdist_exec_path) -print(sys.argv) -suite = unittest.defaultTestLoader.discover(os.path.dirname(__file__)) -unittest.TextTestRunner(verbosity=1).run(suite) 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 From 588d789ee2c18a576547b4218393d0e930289a8d Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Fri, 14 Oct 2011 12:03:44 +0200 Subject: [PATCH 3/8] empty init Signed-off-by: Nico Schottelius --- lib/cdist/test/__init__.py | 46 -------------------------------------- 1 file changed, 46 deletions(-) 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) From 9aa064a0ae9ed103e09ce7760f7f0a4bed1e0e2e Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Fri, 14 Oct 2011 12:10:21 +0200 Subject: [PATCH 4/8] remove obsolete test Signed-off-by: Nico Schottelius --- lib/cdist/test/type_explorer/__init__.py | 39 ------------------- .../fixtures/type/__test_type/explorer/world | 2 - .../explorer/test_parameter | 3 -- 3 files changed, 44 deletions(-) delete mode 100644 lib/cdist/test/type_explorer/__init__.py delete mode 100755 lib/cdist/test/type_explorer/fixtures/type/__test_type/explorer/world delete mode 100755 lib/cdist/test/type_explorer/fixtures/type/__test_type_object_parameter/explorer/test_parameter 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" From 97da16f4bc23b3de0dbf2ef38257246ba4b45b5b Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Fri, 14 Oct 2011 12:12:06 +0200 Subject: [PATCH 5/8] load test suites Signed-off-by: Nico Schottelius --- lib/cdist/test/__main__.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/cdist/test/__main__.py b/lib/cdist/test/__main__.py index 136e122a..eba262fa 100644 --- a/lib/cdist/test/__main__.py +++ b/lib/cdist/test/__main__.py @@ -33,17 +33,19 @@ for possible_test in os.listdir(base_dir): filename = "__init__.py" mod_path = os.path.join(base_dir, possible_test, filename) - print(mod_path + "x") - if os.path.isfile(mod_path): test_modules.append(possible_test) print(sys.path) +suites = [] + for test_module in test_modules: module = imp.find_module(test_module, [base_dir]) imp.load_module(test_module, *module) -#suite = unittest.defaultTestLoader.loadTestsFromModule(cdist.test.code) - + print(module) + # module_name = + suite = unittest.defaultTestLoader.loadTestsFromModule("cdist.test." + test_module) + suites.append(suite) From 6d7620582db12bc7aa81c1d7f6c5da3f470a93b2 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Fri, 14 Oct 2011 14:16:15 +0200 Subject: [PATCH 6/8] run all test suites, if called as main Signed-off-by: Nico Schottelius --- lib/cdist/test/__main__.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/lib/cdist/test/__main__.py b/lib/cdist/test/__main__.py index eba262fa..08e839d1 100644 --- a/lib/cdist/test/__main__.py +++ b/lib/cdist/test/__main__.py @@ -1,4 +1,3 @@ -#c1406:!/usr/bin/env python3 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # @@ -36,16 +35,14 @@ for possible_test in os.listdir(base_dir): if os.path.isfile(mod_path): test_modules.append(possible_test) -print(sys.path) - suites = [] - for test_module in test_modules: - module = imp.find_module(test_module, [base_dir]) - imp.load_module(test_module, *module) + module_parameters = imp.find_module(test_module, [base_dir]) + module = imp.load_module("cdist.test." + test_module, *module_parameters) - print(module) - # module_name = - - suite = unittest.defaultTestLoader.loadTestsFromModule("cdist.test." + test_module) + 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) From 516b172d75c8ca85a6245ec5cc168c09a7a6469c Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Fri, 14 Oct 2011 14:19:18 +0200 Subject: [PATCH 7/8] run new test instance by default if no test is specified Signed-off-by: Nico Schottelius --- build.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/build.sh b/build.sh index 0464defc..69f0ad92 100755 --- a/build.sh +++ b/build.sh @@ -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 ;; *) From 1db1a3f6a77c994cbfbf6cf2420c860171277c12 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Fri, 14 Oct 2011 14:19:38 +0200 Subject: [PATCH 8/8] build does not need suffix .sh Signed-off-by: Nico Schottelius --- build.sh => build | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename build.sh => build (100%) diff --git a/build.sh b/build similarity index 100% rename from build.sh rename to build