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