From 1599414827cc194f9ad4e3d4e55710bedc476ef8 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Wed, 18 Apr 2018 16:20:29 +0800 Subject: [PATCH] mgr/dashboard: create venv for running tox the tox shipped with centos is 1.4.2, and is way too old. it does not allow us to define the dependency using generative-envlist. Signed-off-by: Kefu Chai --- src/pybind/mgr/dashboard/CMakeLists.txt | 9 +++++++++ src/pybind/mgr/dashboard/requirements.txt | 1 + src/pybind/mgr/dashboard/run-tox.sh | 4 ++++ src/pybind/mgr/dashboard/tox.ini | 4 +++- src/test/CMakeLists.txt | 4 ++++ 5 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/pybind/mgr/dashboard/CMakeLists.txt b/src/pybind/mgr/dashboard/CMakeLists.txt index 2c558a20dc516..5bdc8a3ed9358 100644 --- a/src/pybind/mgr/dashboard/CMakeLists.txt +++ b/src/pybind/mgr/dashboard/CMakeLists.txt @@ -1,3 +1,12 @@ +set(MGR_DASHBOARD_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/mgr-dashboard-virtualenv) + +add_custom_target(mgr-dashboard-test-venv + COMMAND + ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh ${MGR_DASHBOARD_VIRTUALENV} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard + COMMENT "dashboard tests virtualenv is being created") +add_dependencies(tests mgr-dashboard-test-venv) + if(WITH_MGR_DASHBOARD_FRONTEND AND NOT CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64|arm|ARM") set(mgr-dashboard-nodeenv ${CMAKE_CURRENT_BINARY_DIR}/node-env) diff --git a/src/pybind/mgr/dashboard/requirements.txt b/src/pybind/mgr/dashboard/requirements.txt index b62aa4bb2d1c7..fc623ade316dd 100644 --- a/src/pybind/mgr/dashboard/requirements.txt +++ b/src/pybind/mgr/dashboard/requirements.txt @@ -28,5 +28,6 @@ Routes==2.4.1 singledispatch==3.4.0.3 six==1.11.0 tempora==1.10 +tox==2.9.1 virtualenv==15.1.0 wrapt==1.10.11 diff --git a/src/pybind/mgr/dashboard/run-tox.sh b/src/pybind/mgr/dashboard/run-tox.sh index 98b49ad6a8850..b43e273679f9f 100755 --- a/src/pybind/mgr/dashboard/run-tox.sh +++ b/src/pybind/mgr/dashboard/run-tox.sh @@ -13,8 +13,12 @@ else TOX_PATH=`readlink -f $(dirname $0)/tox.ini` fi +# tox.ini will take care of this. +unset PYTHONPATH export CEPH_BUILD_DIR=$CEPH_BUILD_DIR +source ${MGR_DASHBOARD_VIRTUALENV}/bin/activate + if [ "$WITH_PYTHON2" = "ON" ]; then ENV_LIST+="py27-cov,py27-lint," fi diff --git a/src/pybind/mgr/dashboard/tox.ini b/src/pybind/mgr/dashboard/tox.ini index 6da0364a61154..dc64379f13226 100644 --- a/src/pybind/mgr/dashboard/tox.ini +++ b/src/pybind/mgr/dashboard/tox.ini @@ -2,6 +2,7 @@ envlist = {py27,py3}-cov,{py27,py3}-lint skipsdist = true toxworkdir = {env:CEPH_BUILD_DIR} +minversion = 2.8.1 [testenv] deps = @@ -14,10 +15,11 @@ setenv= 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= 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}/.coverage + 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 diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index ecf2f962d8961..cbbb158335d2a 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -584,6 +584,9 @@ endif(WITH_MGR) set(CEPH_DISK_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-disk-virtualenv) set(CEPH_DETECT_INIT_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-detect-init-virtualenv) +if(WITH_MGR) + set(MGR_DASHBOARD_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/mgr-dashboard-virtualenv) +endif() set_property(TEST run-tox-ceph-disk @@ -597,6 +600,7 @@ set_property(TEST CEPH_BUILD_VIRTUALENV=${CEPH_BUILD_VIRTUALENV} CEPH_DISK_VIRTUALENV=${CEPH_DISK_VIRTUALENV} CEPH_DETECT_INIT_VIRTUALENV=${CEPH_DETECT_INIT_VIRTUALENV} + MGR_DASHBOARD_VIRTUALENV=${MGR_DASHBOARD_VIRTUALENV} LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/lib PATH=$ENV{PATH}:${CMAKE_RUNTIME_OUTPUT_DIRECTORY}:${CMAKE_SOURCE_DIR}/src PYTHONPATH=${CMAKE_SOURCE_DIR}/src/pybind -- 2.39.5