From 5fcde48fcbac8840e128ebadb8acc563e4f3dc7b Mon Sep 17 00:00:00 2001 From: Emma Foley Date: Wed, 29 Nov 2017 22:18:55 +0000 Subject: Run tests in yardstick/tests/ * Edit .testr.conf and tools/run_tests.sh * Run functional and unit tests in tests/ and yardstick/tests/ * Add yardstick/tests/unit/__init__.py and yardstick/tests/__init__.py * Update pylintrc rules to disable: * missing-docstring * fixme * protected-access Test will run in both tests/ and yardstick/tests/ initially Change-Id: Iccd0df0d1b85b5d08f7faa56669bc32687925f7e JIRA: YARDSTICK-837 Signed-off-by: Emma Foley --- .pylintrc | 1 + tools/cover.sh | 32 +++++++------- tools/run_tests.sh | 5 ++- yardstick/tests/__init__.py | 0 yardstick/tests/functional/__init__.py | 0 yardstick/tests/unit/__init__.py | 76 ++++++++++++++++++++++++++++++++++ 6 files changed, 97 insertions(+), 17 deletions(-) create mode 100644 yardstick/tests/__init__.py create mode 100644 yardstick/tests/functional/__init__.py create mode 100644 yardstick/tests/unit/__init__.py diff --git a/.pylintrc b/.pylintrc index f5dd77665..78f656269 100644 --- a/.pylintrc +++ b/.pylintrc @@ -36,6 +36,7 @@ disable= dangerous-default-value, deprecated-lambda, expression-not-assigned, + fixme, global-statement, literal-comparison, no-init, diff --git a/tools/cover.sh b/tools/cover.sh index 780a85a22..c6e928d1a 100644 --- a/tools/cover.sh +++ b/tools/cover.sh @@ -42,17 +42,17 @@ run_coverage_test() { git checkout HEAD^ baseline_report=$(mktemp -t yardstick_coverageXXXXXXX) - ls -l .testrepository - # workaround 'db type could not be determined' bug - # https://bugs.launchpad.net/testrepository/+bug/1229445 - rm -rf .testrepository find . -type f -name "*.pyc" -delete - #python setup.py testr --coverage --testr-args="" - python setup.py testr --coverage --slowest --testr-args="$*" - testr failing - coverage report > ${baseline_report} + # Temporarily run tests from two directories, until all tests have moved + coverage run -p -m unittest discover ./tests/unit + coverage run -p -m unittest discover ./yardstick/tests/unit + coverage combine + + # Temporarily omit yardstick/tests from the report + coverage report --omit=yardstick/tests/*/* > ${baseline_report} + coverage erase # debug awk tail -1 ${baseline_report} @@ -69,17 +69,17 @@ run_coverage_test() { # Generate and save coverage report current_report=$(mktemp -t yardstick_coverageXXXXXXX) - ls -l .testrepository - # workaround 'db type could not be determined' bug - # https://bugs.launchpad.net/testrepository/+bug/1229445 - rm -rf .testrepository find . -type f -name "*.pyc" -delete - #python setup.py testr --coverage --testr-args="" - python setup.py testr --coverage --slowest --testr-args="$*" - testr failing - coverage report > ${current_report} + # Temporarily run tests from two directories, until all tests have moved + coverage run -p -m unittest discover ./tests/unit + coverage run -p -m unittest discover ./yardstick/tests/unit + coverage combine + + # Temporarily omit yardstick/tests from the report + coverage report --omit=yardstick/tests/*/* > ${current_report} + coverage erase rm -rf cover-$PY_VER coverage html -d cover-$PY_VER diff --git a/tools/run_tests.sh b/tools/run_tests.sh index f253327e5..ddb5e55af 100755 --- a/tools/run_tests.sh +++ b/tools/run_tests.sh @@ -29,8 +29,10 @@ run_tests() { echo "Running unittest ... " if [ $FILE_OPTION == "f" ]; then python -m unittest discover -v -s tests/unit > $logfile 2>&1 + python -m unittest discover -v -s yardstick/tests/unit >> $logfile 2>&1 else python -m unittest discover -v -s tests/unit + python -m unittest discover -v -s yardstick/tests/unit fi if [ $? -ne 0 ]; then @@ -53,7 +55,8 @@ run_coverage() { run_functional_test() { mkdir -p .testrepository - python -m subunit.run discover tests/functional > .testrepository/subunit.log + python -m subunit.run discover yardstick/tests/functional > .testrepository/subunit.log + python -m subunit.run discover tests/functional >> .testrepository/subunit.log subunit2pyunit < .testrepository/subunit.log EXIT_CODE=$? diff --git a/yardstick/tests/__init__.py b/yardstick/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/yardstick/tests/functional/__init__.py b/yardstick/tests/functional/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/yardstick/tests/unit/__init__.py b/yardstick/tests/unit/__init__.py new file mode 100644 index 000000000..a468b272b --- /dev/null +++ b/yardstick/tests/unit/__init__.py @@ -0,0 +1,76 @@ +# Copyright (c) 2017 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import +import mock + + +STL_MOCKS = { + 'trex_stl_lib': mock.MagicMock(), + 'trex_stl_lib.base64': mock.MagicMock(), + 'trex_stl_lib.binascii': mock.MagicMock(), + 'trex_stl_lib.collections': mock.MagicMock(), + 'trex_stl_lib.copy': mock.MagicMock(), + 'trex_stl_lib.datetime': mock.MagicMock(), + 'trex_stl_lib.functools': mock.MagicMock(), + 'trex_stl_lib.imp': mock.MagicMock(), + 'trex_stl_lib.inspect': mock.MagicMock(), + 'trex_stl_lib.json': mock.MagicMock(), + 'trex_stl_lib.linecache': mock.MagicMock(), + 'trex_stl_lib.math': mock.MagicMock(), + 'trex_stl_lib.os': mock.MagicMock(), + 'trex_stl_lib.platform': mock.MagicMock(), + 'trex_stl_lib.pprint': mock.MagicMock(), + 'trex_stl_lib.random': mock.MagicMock(), + 'trex_stl_lib.re': mock.MagicMock(), + 'trex_stl_lib.scapy': mock.MagicMock(), + 'trex_stl_lib.socket': mock.MagicMock(), + 'trex_stl_lib.string': mock.MagicMock(), + 'trex_stl_lib.struct': mock.MagicMock(), + 'trex_stl_lib.sys': mock.MagicMock(), + 'trex_stl_lib.threading': mock.MagicMock(), + 'trex_stl_lib.time': mock.MagicMock(), + 'trex_stl_lib.traceback': mock.MagicMock(), + 'trex_stl_lib.trex_stl_async_client': mock.MagicMock(), + 'trex_stl_lib.trex_stl_client': mock.MagicMock(), + 'trex_stl_lib.trex_stl_exceptions': mock.MagicMock(), + 'trex_stl_lib.trex_stl_ext': mock.MagicMock(), + 'trex_stl_lib.trex_stl_jsonrpc_client': mock.MagicMock(), + 'trex_stl_lib.trex_stl_packet_builder_interface': mock.MagicMock(), + 'trex_stl_lib.trex_stl_packet_builder_scapy': mock.MagicMock(), + 'trex_stl_lib.trex_stl_port': mock.MagicMock(), + 'trex_stl_lib.trex_stl_stats': mock.MagicMock(), + 'trex_stl_lib.trex_stl_streams': mock.MagicMock(), + 'trex_stl_lib.trex_stl_types': mock.MagicMock(), + 'trex_stl_lib.types': mock.MagicMock(), + 'trex_stl_lib.utils': mock.MagicMock(), + 'trex_stl_lib.utils.argparse': mock.MagicMock(), + 'trex_stl_lib.utils.collections': mock.MagicMock(), + 'trex_stl_lib.utils.common': mock.MagicMock(), + 'trex_stl_lib.utils.json': mock.MagicMock(), + 'trex_stl_lib.utils.os': mock.MagicMock(), + 'trex_stl_lib.utils.parsing_opts': mock.MagicMock(), + 'trex_stl_lib.utils.pwd': mock.MagicMock(), + 'trex_stl_lib.utils.random': mock.MagicMock(), + 'trex_stl_lib.utils.re': mock.MagicMock(), + 'trex_stl_lib.utils.string': mock.MagicMock(), + 'trex_stl_lib.utils.sys': mock.MagicMock(), + 'trex_stl_lib.utils.text_opts': mock.MagicMock(), + 'trex_stl_lib.utils.text_tables': mock.MagicMock(), + 'trex_stl_lib.utils.texttable': mock.MagicMock(), + 'trex_stl_lib.warnings': mock.MagicMock(), + 'trex_stl_lib.yaml': mock.MagicMock(), + 'trex_stl_lib.zlib': mock.MagicMock(), + 'trex_stl_lib.zmq': mock.MagicMock(), +} -- cgit 1.2.3-korg