From fda3b434b73d5df3c9453dbd772b182b09a0f7e5 Mon Sep 17 00:00:00 2001 From: Jason DeTiberus Date: Mon, 6 Mar 2017 12:39:20 -0500 Subject: Consolidate root/utils tests - Consolidate tests between the root of the repo and utils --- .coveragerc | 5 +++-- .flake8 | 3 ++- .travis.yml | 25 +++++++++++++++++++++---- pytest.ini | 2 -- requirements.txt | 7 ++++--- test-requirements.txt | 4 +--- tox.ini | 11 +++++++---- utils/.coveragerc | 18 ------------------ utils/.pylintrc | 1 - utils/setup.cfg | 27 --------------------------- utils/setup.py | 11 ----------- utils/test-requirements.txt | 15 --------------- utils/tox.ini | 19 ------------------- 13 files changed, 38 insertions(+), 110 deletions(-) delete mode 100644 utils/.coveragerc delete mode 120000 utils/.pylintrc delete mode 100644 utils/test-requirements.txt delete mode 100644 utils/tox.ini diff --git a/.coveragerc b/.coveragerc index ed4bca119..00f46b61b 100644 --- a/.coveragerc +++ b/.coveragerc @@ -4,16 +4,17 @@ omit = */lib/python*/site-packages/* */lib/python*/* /usr/* - setup.py + */setup.py # TODO(rhcarvalho): this is used to ignore test files from coverage report. # We can make this less generic when we stick with a single test pattern in # the repo. */conftest.py */test_*.py */*_tests.py + */test/* [report] -fail_under = 25 +fail_under = 29 [html] directory = cover diff --git a/.flake8 b/.flake8 index 98ddeef20..99ae3c2f0 100644 --- a/.flake8 +++ b/.flake8 @@ -1,4 +1,5 @@ [flake8] -exclude=.tox,utils,inventory +# TODO: cleanup flake8 issues with utils/test/* +exclude=.tox,inventory,utils/test max_line_length = 120 ignore = E501,T003 diff --git a/.travis.yml b/.travis.yml index f0a228c23..15fe61959 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,17 +4,34 @@ sudo: false cache: - pip +before_cache: + - rm ~/.cache/pip/log/debug.log + language: python python: - "2.7" - "3.5" install: - - pip install -r requirements.txt - pip install tox-travis script: - # TODO(rhcarvalho): check syntax of other important entrypoint playbooks - - ansible-playbook --syntax-check playbooks/byo/config.yml - tox - - cd utils && tox + +notifications: + email: + recipients: + - jdetiber@redhat.com + - sdodson@redhat.com + on_success: change + on_failure: always + irc: + channels: + - chat.freenode.net#openshift-dev + on_success: change + on_failure: always + template: + - "%{repository}#%{build_number} (%{branch} - %{commit} : %{author}): %{message}" + - "Change view : %{compare_url}" + - "Build details : %{build_url}" + - "sdodson jdetiber: ^" diff --git a/pytest.ini b/pytest.ini index fec074f90..502fd1f46 100644 --- a/pytest.ini +++ b/pytest.ini @@ -4,8 +4,6 @@ norecursedirs = __pycache__ cover docs - # utils has it's own config - utils python_files = # TODO(rhcarvalho): rename test files to follow a single pattern. "test*.py" # is Python unittest's default, while pytest discovers both "test_*.py" and diff --git a/requirements.txt b/requirements.txt index 5a6a161cb..241313b6f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,6 @@ ansible>=2.2 -six +click pyOpenSSL -PyYAML -ruamel.yaml +# We need to disable ruamel.yaml for now because of test failures +#ruamel.yaml +six diff --git a/test-requirements.txt b/test-requirements.txt index 9bb6e058c..805828e1c 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,11 +1,9 @@ -six -pyOpenSSL +# flake8 must be listed before pylint to avoid dependency conflicts flake8 flake8-mutable flake8-print pylint setuptools-lint -PyYAML yamllint coverage mock diff --git a/tox.ini b/tox.ini index 13c87f5c4..643fa774d 100644 --- a/tox.ini +++ b/tox.ini @@ -1,21 +1,24 @@ [tox] minversion=2.3.1 envlist = - py{27,35}-ansible22-{pylint,unit,flake8,yamllint,generate_validation} + py{27,35}-{flake8,pylint,unit} + py27-{yamllint,ansible_syntax,generate_validation} skipsdist=True skip_missing_interpreters=True [testenv] +skip_install=True deps = + -rrequirements.txt -rtest-requirements.txt py35-flake8: flake8-bugbear - ansible22: ansible~=2.2 commands = + unit: pip install -e utils unit: pytest {posargs} flake8: flake8 {posargs} pylint: python setup.py lint yamllint: python setup.py yamllint generate_validation: python setup.py generate_validation - - + # TODO(rhcarvalho): check syntax of other important entrypoint playbooks + ansible_syntax: ansible-playbook --syntax-check playbooks/byo/config.yml diff --git a/utils/.coveragerc b/utils/.coveragerc deleted file mode 100644 index 551e13192..000000000 --- a/utils/.coveragerc +++ /dev/null @@ -1,18 +0,0 @@ -[run] -branch = True -omit = - */lib/python*/site-packages/* - */lib/python*/* - /usr/* - setup.py - # TODO(rhcarvalho): this is used to ignore test files from coverage report. - # We can make this less generic when we stick with a single test pattern in - # the repo. - test_*.py - *_tests.py - -[report] -fail_under = 73 - -[html] -directory = cover diff --git a/utils/.pylintrc b/utils/.pylintrc deleted file mode 120000 index 30b33b524..000000000 --- a/utils/.pylintrc +++ /dev/null @@ -1 +0,0 @@ -../.pylintrc \ No newline at end of file diff --git a/utils/setup.cfg b/utils/setup.cfg index d730cd3b4..79bc67848 100644 --- a/utils/setup.cfg +++ b/utils/setup.cfg @@ -3,30 +3,3 @@ # 3. If at all possible, it is good practice to do this. If you cannot, you # will need to generate wheels for each Python version that you support. universal=1 - -[aliases] -test=pytest - -[flake8] -max-line-length=120 -exclude=test/*,setup.py,oo-installenv -ignore=E501 - -[lint] -lint_disable=fixme,locally-disabled,file-ignored,duplicate-code - -[tool:pytest] -testpaths = test -norecursedirs = - .* - __pycache__ -python_files = - # TODO(rhcarvalho): rename test files to follow a single pattern. "test*.py" - # is Python unittest's default, while pytest discovers both "test_*.py" and - # "*_test.py" by default. - test_*.py - *_tests.py -addopts = - --cov=. - --cov-report=term - --cov-report=html diff --git a/utils/setup.py b/utils/setup.py index 629d39206..6fec7b173 100644 --- a/utils/setup.py +++ b/utils/setup.py @@ -38,26 +38,15 @@ setup( # You can just specify the packages manually here if your project is # simple. Or you can use find_packages(). - #packages=find_packages(exclude=['contrib', 'docs', 'tests*']), packages=['ooinstall'], package_dir={'': 'src'}, - # List run-time dependencies here. These will be installed by pip when # your project is installed. For an analysis of "install_requires" vs pip's # requirements files see: # https://packaging.python.org/en/latest/requirements.html install_requires=['click', 'PyYAML', 'ansible'], - # List additional groups of dependencies here (e.g. development - # dependencies). You can install these using the following syntax, - # for example: - # $ pip install -e .[dev,test] - #extras_require={ - # 'dev': ['check-manifest'], - # 'test': ['coverage'], - #}, - # If there are data files included in your packages that need to be # installed, specify them here. If using Python 2.6 or less, then these # have to be included in MANIFEST.in as well. diff --git a/utils/test-requirements.txt b/utils/test-requirements.txt deleted file mode 100644 index b26e22a7e..000000000 --- a/utils/test-requirements.txt +++ /dev/null @@ -1,15 +0,0 @@ -ansible -# flake8 moved to before setuptools-lint to satisfy mccabe dependency issue -flake8 -setuptools-lint -coverage -mock -PyYAML -click -backports.functools_lru_cache -pyOpenSSL -yamllint -tox -detox -pytest -pytest-cov diff --git a/utils/tox.ini b/utils/tox.ini deleted file mode 100644 index 2524923cb..000000000 --- a/utils/tox.ini +++ /dev/null @@ -1,19 +0,0 @@ -[tox] -minversion=2.3.1 -envlist = - py{27,35}-{flake8,unit,pylint} -skipsdist=True -skip_missing_interpreters=True - -[testenv] -usedevelop=True -deps = - -rtest-requirements.txt - py35-flake8: flake8-bugbear -commands = - # Needed to make detox work, since it ignores usedevelop - # https://github.com/tox-dev/tox/issues/180 - unit: pip install -e . - unit: pytest {posargs} - flake8: python setup.py flake8 - pylint: python setup.py lint -- cgit v1.2.3