]> Frank Brehm's Git Trees - pixelpark/puppet-tools.git/commitdiff
Adding test/test_25_puppetfile.py for testing class Puppetfile
authorFrank Brehm <frank.brehm@pixelpark.com>
Wed, 8 Feb 2023 16:55:50 +0000 (17:55 +0100)
committerFrank Brehm <frank.brehm@pixelpark.com>
Wed, 8 Feb 2023 16:55:50 +0000 (17:55 +0100)
test/test_25_puppetfile.py [new file with mode: 0755]

diff --git a/test/test_25_puppetfile.py b/test/test_25_puppetfile.py
new file mode 100755 (executable)
index 0000000..91bffd2
--- /dev/null
@@ -0,0 +1,113 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+'''
+@author: Frank Brehm
+@contact: frank@brehm-online.com
+@copyright: © 2023 Frank Brehm, Digitas Pixelpark GmbH Berlin
+@license: GNU AGPL3
+@summary: test script (and module) for unit tests on modile Puppetfile
+'''
+
+import os
+import sys
+import logging
+
+from pathlib import Path
+
+try:
+    import unittest2 as unittest
+except ImportError:
+    import unittest
+
+libdir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'lib'))
+sys.path.insert(0, libdir)
+
+from general import DpxPuppetToolsTestcase, get_arg_verbose, init_root_logger
+
+LOG = logging.getLogger('test_puppetfile')
+
+# =============================================================================
+class TestPuppetfile(DpxPuppetToolsTestcase):
+
+    # -------------------------------------------------------------------------
+    def setUp(self):
+        self.test_dir = Path(__file__).parent.resolve()
+        self.base_dir = self.test_dir.parent
+        self.test_cfg_dir = self.test_dir / 'test-config'
+        self.root_env_dir = self.test_dir / 'environment'
+        self.env = 'dev_apache'
+        self._appname = 'test_puppetfile'
+
+    # -------------------------------------------------------------------------
+    def test_import(self):
+
+        LOG.info("Testing import of dpx_puppettools.puppetfile ...")
+        import dpx_puppettools.puppetfile
+        ver = dpx_puppettools.puppetfile.__version__
+        LOG.debug(
+            "Version of dpx_puppettools.puppetfile: " + ver)
+
+    # -------------------------------------------------------------------------
+    def test_init(self):
+
+        LOG.info("Testing init of a ModuleInfoDict object ...")
+        from dpx_puppettools.puppetfile import Puppetfile
+        from dpx_puppettools import pp
+
+        pfile = Puppetfile(
+            appname=self.appname, verbose=self.verbose,
+            env_root_dir=self.root_env_dir, environment=self.env)
+
+        LOG.debug("Puppetfile %%r: {!r}".format(pfile))
+        if self.verbose > 2:
+            LOG.debug("Puppetfile %%s:\n{}".format(pp(pfile.as_dict())))
+
+    # -------------------------------------------------------------------------
+    def test_read(self):
+
+        LOG.info("Test reading of a Puppetfile ...")
+
+        from dpx_puppettools.puppetfile import Puppetfile
+        from dpx_puppettools import pp
+
+        pfile = Puppetfile(
+            appname=self.appname, verbose=self.verbose,
+            env_root_dir=self.root_env_dir, environment=self.env)
+
+        LOG.debug("Puppetfile %%r: {!r}".format(pfile))
+        LOG.debug("Reading {!r} ...".format(str(pfile.file_path)))
+        pfile.read()
+
+        keys = pfile.modules.keys()
+        LOG.debug("Found modules in Puppetfile :\n{}".format(pp(keys)))
+
+        if self.verbose > 2:
+            modules = ('pixelpark-infra', 'pixelpark-pp_bind' , 'oxc-dovecot', 'sgnl05-sssd')
+            for module in modules:
+                LOG.debug("Read info about module {m!r}:\n{i}".format(
+                    m=module, i=pp(pfile.modules[module].as_dict())))
+
+
+# =============================================================================
+if __name__ == '__main__':
+
+    verbose = get_arg_verbose()
+    if verbose is None:
+        verbose = 0
+    init_root_logger(verbose)
+
+    LOG.info("Starting tests ...")
+
+    suite = unittest.TestSuite()
+
+    suite.addTest(TestPuppetfile('test_import', verbose))
+    suite.addTest(TestPuppetfile('test_init', verbose))
+    suite.addTest(TestPuppetfile('test_read', verbose))
+
+    runner = unittest.TextTestRunner(verbosity=verbose)
+
+    result = runner.run(suite)
+
+# =============================================================================
+
+# vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4