--- /dev/null
+#!/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