Skip to content

Commit

Permalink
test/dashboard: only test enabled python bindings
Browse files Browse the repository at this point in the history
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 <kchai@redhat.com>
  • Loading branch information
tchaikov committed Apr 11, 2018
1 parent 5ad70e0 commit 213652a
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 37 deletions.
12 changes: 7 additions & 5 deletions src/pybind/mgr/dashboard/run-tox.sh
Expand Up @@ -2,7 +2,9 @@

# run from ./ or from ../
: ${MGR_DASHBOARD_VIRTUALENV:=/tmp/mgr-dashboard-virtualenv}
: ${WITH_PYTHON2:=ON}
: ${WITH_PYTHON3:=ON}
: ${CEPH_BUILD_DIR:=$PWD/.tox}
test -d dashboard && cd dashboard

if [ -e tox.ini ]; then
Expand All @@ -17,11 +19,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}
48 changes: 16 additions & 32 deletions src/pybind/mgr/dashboard/tox.ini
@@ -1,40 +1,24 @@
[tox]
envlist = cov-init,py27,py3,cov-report,lint
envlist = {py27,py3}-cov,{py27,py3}-lint
skipsdist = true

[testenv]
deps=-r{toxinidir}/requirements.txt
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/ tools.py 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,awsauth.py --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/ tools.py
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=.tox,venv,frontend --ignore=E402,E121,E123,E126,E226,E24,E704,W503 .
1 change: 1 addition & 0 deletions src/test/CMakeLists.txt
Expand Up @@ -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}
)

Expand Down

0 comments on commit 213652a

Please sign in to comment.