From 473eacbdc792ef19eb62b228a8dac37aaaf601e1 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Wed, 11 Apr 2018 17:46:26 +0800 Subject: [PATCH] test/dashboard: only test enabled python bindings we should test the python version of MGR_PYTHON_VERSION_MAJOR, if we are testing both py2.7 and py3, we are preparing for distributing dashboard as a separated package independent of ceph-mgr. restructure the dashboard tests as 2 matrices, so we have 2*2 tests for coverage and lint respectively. Signed-off-by: Kefu Chai --- src/pybind/mgr/dashboard/run-tox.sh | 11 ++++--- src/pybind/mgr/dashboard/tox.ini | 51 +++++++++++------------------ src/test/CMakeLists.txt | 1 + 3 files changed, 26 insertions(+), 37 deletions(-) diff --git a/src/pybind/mgr/dashboard/run-tox.sh b/src/pybind/mgr/dashboard/run-tox.sh index 5f24bb698d105a..4fc20bef3d78ee 100755 --- a/src/pybind/mgr/dashboard/run-tox.sh +++ b/src/pybind/mgr/dashboard/run-tox.sh @@ -2,6 +2,7 @@ # run from ./ or from ../ : ${MGR_DASHBOARD_VIRTUALENV:=/tmp/mgr-dashboard-virtualenv} +: ${WITH_PYTHON2:=ON} : ${WITH_PYTHON3:=ON} test -d dashboard && cd dashboard @@ -17,11 +18,11 @@ fi source ${MGR_DASHBOARD_VIRTUALENV}/bin/activate +if [ "$WITH_PYTHON2" = "ON" ]; then + ENV_LIST+="py27-cov,py27-lint," +fi if [ "$WITH_PYTHON3" = "ON" ]; then - ENV_LIST="cov-init,py27,py3,cov-report,lint" -else - ENV_LIST="cov-init,py27,cov-report,lint" + ENV_LIST+="py3-cov,py3-lint" fi -tox -c ${TOX_PATH} -e $ENV_LIST - +tox -c ${TOX_PATH} -e $ENV_LIST --workdir ${CEPH_BUILD_DIR} diff --git a/src/pybind/mgr/dashboard/tox.ini b/src/pybind/mgr/dashboard/tox.ini index b9170256efe350..d030c03098bcf0 100644 --- a/src/pybind/mgr/dashboard/tox.ini +++ b/src/pybind/mgr/dashboard/tox.ini @@ -1,40 +1,27 @@ [tox] -envlist = cov-init,py27,py3,cov-report,lint +envlist = {py27,py3}-cov,{py27,py3}-lint skipsdist = true [testenv] -deps=-r{toxinidir}/requirements.txt +basepython = + py27: python2.7 + py3: python3 +deps = + -r{toxinidir}/requirements.txt setenv= - UNITTEST=true - WEBTEST_INTERACTIVE=false - COVERAGE_FILE= .coverage.{envname} - PYTHONPATH = {toxinidir}/../../../../build/lib/cython_modules/lib.3:{toxinidir}/../../../../build/lib/cython_modules/lib.2 + UNITTEST = true + WEBTEST_INTERACTIVE = false LD_LIBRARY_PATH = {toxinidir}/../../../../build/lib PATH = {toxinidir}/../../../../build/bin:$PATH + py27: PYTHONPATH = {toxinidir}/../../../../build/lib/cython_modules/lib.2 + py3: PYTHONPATH = {toxinidir}/../../../../build/lib/cython_modules/lib.3 + cov: UNITTEST = true + cov: COVERAGE_FILE = .coverage.{envname} commands= - {envbindir}/py.test --cov=. --cov-report= --junitxml=junit.{envname}.xml --doctest-modules controllers/rbd.py services/ tests/ - -[testenv:cov-init] -setenv = - COVERAGE_FILE = .coverage -deps = coverage -commands = - coverage erase - -[testenv:cov-report] -setenv = - COVERAGE_FILE = .coverage -deps = coverage -commands = - coverage combine - coverage report - coverage xml - -[testenv:lint] -setenv = - PYTHONPATH = {toxinidir}/../../../../build/lib/cython_modules/lib.3:{toxinidir}/../../../../build/lib/cython_modules/lib.2 - LD_LIBRARY_PATH = {toxinidir}/../../../../build/lib -deps=-r{toxinidir}/requirements.txt -commands= - pylint --rcfile=.pylintrc --jobs=5 . module.py tools.py controllers tests services - pycodestyle --max-line-length=100 --exclude=python2.7,.tox,venv,frontend --ignore=E402,E121,E123,E126,E226,E24,E704,W503 . + cov: coverage erase + cov: {envbindir}/py.test --cov=. --cov-report= --junitxml=junit.{envname}.xml --doctest-modules controllers/rbd.py services/ tests/ + cov: coverage combine {toxinidir}/{env:COVERAGE_FILE} + cov: coverage report + cov: coverage xml + lint: pylint --rcfile=.pylintrc --jobs=5 . module.py tools.py controllers tests services + lint: pycodestyle --max-line-length=100 --exclude=python2.7,.tox,venv,frontend --ignore=E402,E121,E123,E126,E226,E24,E704,W503 . diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index eb3d82b9877733..19643b598e4d0e 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -604,6 +604,7 @@ set_property(TEST LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/lib PATH=$ENV{PATH}:${CMAKE_RUNTIME_OUTPUT_DIRECTORY}:${CMAKE_SOURCE_DIR}/src PYTHONPATH=${CMAKE_SOURCE_DIR}/src/pybind + WITH_PYTHON2=${WITH_PYTHON2} WITH_PYTHON3=${WITH_PYTHON3} )