syndicate/core/generators/tests.py (39 lines of code) (raw):

from pathlib import Path from syndicate.core.generators import _mkdir, _write_content_to_file from syndicate.core.generators.contents import PYTHON_TESTS_INIT_CONTENT, \ PYTHON_TESTS_INIT_LAMBDA_TEMPLATE, PYTHON_TESTS_BASIC_TEST_CASE_TEMPLATE from syndicate.core.helper import string_to_capitalized_camel_case PYTHON_TESTS_DIR = 'tests' PYTHON_BASIC_TEST_CASE_FILE = 'test_success.py' class PythonTestsGenerator: def __init__(self, project_path: str, lambda_name: str): self.project_path = project_path self.lambda_name = lambda_name self.processed_name = self.lambda_name.replace("-", "_") self.test_lambda_folder = f'test_{self.processed_name.lower()}' self.camel_lambda_name = string_to_capitalized_camel_case( self.processed_name) def generate(self): folder_path = Path(self.project_path, PYTHON_TESTS_DIR) init_path = Path(folder_path, '__init__.py') lambda_folder_path = Path( folder_path, self.test_lambda_folder) lambda_init_path = Path(lambda_folder_path, '__init__.py') lambda_basic_test_case_path = Path(lambda_folder_path, PYTHON_BASIC_TEST_CASE_FILE) _mkdir(folder_path, exist_ok=True) if not init_path.exists(): _write_content_to_file(init_path, PYTHON_TESTS_INIT_CONTENT) _mkdir(lambda_folder_path, exist_ok=True) _write_content_to_file( lambda_init_path, PYTHON_TESTS_INIT_LAMBDA_TEMPLATE.format( lambda_name=self.lambda_name, camel_lambda_name=self.camel_lambda_name)) _write_content_to_file( lambda_basic_test_case_path, PYTHON_TESTS_BASIC_TEST_CASE_TEMPLATE.format( test_lambda_folder=self.test_lambda_folder, camel_lambda_name=self.camel_lambda_name)) def _generate_python_tests(project_path, lambda_name): PythonTestsGenerator(project_path, lambda_name).generate()