From 11a6465965af445f2cc2b8eaf91caaa2860b935c Mon Sep 17 00:00:00 2001 From: Kenny Woodson Date: Wed, 18 Jan 2017 10:04:09 -0500 Subject: Adding tox tests for generated code. --- setup.py | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) (limited to 'setup.py') diff --git a/setup.py b/setup.py index c826c167f..597782db2 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ from __future__ import print_function import os import fnmatch import re - +import subprocess import yaml # Always prefer setuptools over distutils @@ -146,6 +146,47 @@ class OpenShiftAnsiblePylint(PylintCommand): return func(*func_args, **func_kwargs) +class OpenShiftAnsibleGenerateValidation(Command): + ''' Command to run generated module validation''' + description = "Run generated module validation" + user_options = [] + + def initialize_options(self): + ''' initialize_options ''' + pass + + def finalize_options(self): + ''' finalize_options ''' + pass + + # self isn't used but I believe is required when it is called. + # pylint: disable=no-self-use + def run(self): + ''' run command ''' + # find the files that call generate + generate_files = find_files('roles', + ['inventory', + 'test', + 'playbooks', + 'utils'], + None, + 'generate.py') + + # call them with --verify + errors = False + for gen in generate_files: + print('Checking generated module code: {0}'.format(gen)) + try: + subprocess.call([gen, '--verify']) + except subprocess.CalledProcessError as cpe: + print(cpe) + errors = True + + if errors: + print('Found errors while generating module code.') + raise SystemExit(1) + + class UnsupportedCommand(Command): ''' Basic Command to override unsupported commands ''' user_options = [] @@ -188,6 +229,7 @@ setup( 'sdist': UnsupportedCommand, 'lint': OpenShiftAnsiblePylint, 'yamllint': OpenShiftAnsibleYamlLint, + 'generate_validation': OpenShiftAnsibleGenerateValidation, }, packages=[], ) -- cgit v1.2.3 From b6576d28ec21411f8da58cedab7a6c6c57dc172b Mon Sep 17 00:00:00 2001 From: Kenny Woodson Date: Wed, 18 Jan 2017 14:49:15 -0500 Subject: Updated the generate.py scripts for tox and virtualenv. --- setup.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'setup.py') diff --git a/setup.py b/setup.py index 597782db2..372aca9ff 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ from __future__ import print_function import os import fnmatch import re -import subprocess +import sys import yaml # Always prefer setuptools over distutils @@ -170,22 +170,32 @@ class OpenShiftAnsibleGenerateValidation(Command): 'playbooks', 'utils'], None, - 'generate.py') + 'generate.py$') + + if len(generate_files) < 1: + print('Did not find any code generation. Please verify module code generation.') # noqa: E501 + raise SystemExit(1) - # call them with --verify errors = False for gen in generate_files: print('Checking generated module code: {0}'.format(gen)) try: - subprocess.call([gen, '--verify']) - except subprocess.CalledProcessError as cpe: - print(cpe) + sys.path.insert(0, os.path.dirname(gen)) + # we are importing dynamically. This isn't in + # the python path. + # pylint: disable=import-error + import generate + generate.verify() + except generate.GenerateAnsibleException as gae: + print(gae.args) errors = True if errors: print('Found errors while generating module code.') raise SystemExit(1) + print('\nAll generate scripts passed.\n') + class UnsupportedCommand(Command): ''' Basic Command to override unsupported commands ''' -- cgit v1.2.3