Source code for skelpy.makers.tests
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""This module defines :class:`TestMaker` class"""
from __future__ import absolute_import, print_function
import os
from . import settings
from .base import BaseMaker
[docs]class TestMaker(BaseMaker):
"""*Maker* class to create directories and configuration files for testing
TestMaker creates a directory named ``tests`` and ``test_main.py`` file in that directory.
Args:
projectDir (str): absolute path of project directory
force (bool): whether to overwrite if *test_main.py* already exists
test (str): testing tool to use. *skelpy* supports two testing
tools: :mod:`unittest` and `pytest(default) <https://pytest.org/>`_
"""
def __init__(self, projectDir, merge, force, test, **kwargs):
self.projectDir = projectDir
self.testsDir = os.path.join(self.projectDir, 'tests')
self.merge = merge
self.force = force
self.test = test
self._update_settings()
def _update_settings(self):
"""update :attr:`maker.settings` dictionary"""
info = {
'testsDir': self.testsDir,
}
settings.update(info)
def _create_config_files(self):
"""create general configuration files"""
if not self.write_file('test_main_' + self.test,
os.path.join(self.testsDir, 'test_main.py')):
return False
if not self.write_file('test_init',
os.path.join(self.testsDir, '__init__.py')):
return False
return True
[docs] def generate(self):
"""Worker method of :class:`TestMaker`"""
if not self.create_dir(self.testsDir):
return False
if not self._create_config_files():
return False
return True