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 +++++++++++++++++++++++++++++++++++++++++++- tox.ini | 1 + 2 files changed, 44 insertions(+), 1 deletion(-) 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=[], ) diff --git a/tox.ini b/tox.ini index 158974fbe..1e076c50d 100644 --- a/tox.ini +++ b/tox.ini @@ -16,3 +16,4 @@ commands = pylint: python setup.py lint yamllint: python setup.py yamllint unit: nosetests + generate_validation: python setup.py generate_validation -- cgit v1.2.3