Browse Source

Split tox environments requirements files

- add py36 environment
- separate unit tests requirements from neturon test cases
- rename zuul project file
- remote tempest from unit tests requirements

Change-Id: I7b054f679c44cde70d00d1f030853b0c6f528d4d
changes/56/622856/3
Federico Ressi 3 years ago
parent
commit
895602c93e
  1. 4
      neutron-requirements.txt
  2. 6
      pep8-requirements.txt
  3. 19
      playbooks/post-tobiko-devstack.yaml
  4. 19
      playbooks/tobiko-devstack.yaml
  5. 6
      pylint-requirements.txt
  6. 3
      requirements.txt
  7. 10
      test-requirements.txt
  8. 12
      tobiko/tests/base.py
  9. 3
      tobiko/tests/scenario/base.py
  10. 70
      tox.ini
  11. 2
      zuul.d/project.yaml

4
neutron-requirements.txt

@ -0,0 +1,4 @@
# Neutron test cases requirements
tempest>=17.1.0 # Apache-2.0
stestr>=2.0 # Apache-2.0

6
pep8-requirements.txt

@ -1,6 +1,4 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
# pep8 and flake8 requirements
flake8==2.5.5 # MIT
flake8==2.5.5 # MIT
flake8-import-order==0.12 # LGPLv3

19
playbooks/post-tobiko-devstack.yaml

@ -0,0 +1,19 @@
# Copyright 2018 Red Hat
#
# 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.
#TODO(fressi): fill this playbook
---

19
playbooks/tobiko-devstack.yaml

@ -0,0 +1,19 @@
# Copyright 2018 Red Hat
#
# 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.
#TODO(fressi): fill this playbook
---

6
pylint-requirements.txt

@ -1,5 +1,3 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
# pylint requirements
pylint>=1.9
pylint>=1.9 # GPLv2

3
requirements.txt

@ -1,5 +1,8 @@
# Tobiko framework requirements
keystoneauth1>=2.0.0
oslo.config>=5.2.0
oslo.log>=3.36.0
python-heatclient>=1.5.0
python-neutronclient>=6.7.0
testtools>=2.2.0

10
test-requirements.txt

@ -1,5 +1,5 @@
mock >= 2.0 # BSD
testscenarios>=0.4
testtools>=2.2.0
tempest>=17.1.0 # Apache-2.0
coverage!=4.4,>=4.0 # Apache-2.0
# unit tests requirements
coverage!=4.4,>=4.0 # Apache-2.0
mock>=2.0 # BSD
stestr>=2.0 # Apache-2.0

12
tobiko/tests/base.py

@ -14,18 +14,10 @@
# under the License.
from __future__ import absolute_import
from tempest import config
import testscenarios
import testtools
from tobiko.common import constants
from tobiko.common import clients
import testtools
class TobikoTest(testtools.testcase.WithAttributes,
testscenarios.WithScenarios,
testtools.TestCase):
default_params = constants.DEFAULT_PARAMS
conf = config.CONF
clientManager = clients.ClientManager()
pass

3
tobiko/tests/scenario/base.py

@ -20,12 +20,15 @@ import sys
from tobiko.tests import base
from tobiko.common.managers import stack
from tobiko.common.managers import network
from tobiko.common import clients
from tobiko.common import constants
class ScenarioTestsBase(base.TobikoTest):
"""All scenario tests inherit from this scenario base class."""
clientManager = clients.ClientManager()
default_params = constants.DEFAULT_PARAMS
stack = None
def setUp(self):

70
tox.ini

@ -1,13 +1,13 @@
[tox]
minversion = 2.0
envlist = pep8,pylint,py35,py27
envlist = pep8,pylint,py35,py36,py27
minversion = 2.0
[testenv]
usedevelop = True
install_command =
pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
[tobiko]
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/requirements.txt
setenv =
VIRTUAL_ENV={envdir}
@ -15,23 +15,34 @@ setenv =
OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:true}
OS_STDOUT_CAPTURE={env:OS_STDOUT_CAPTURE:true}
OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:true}
PYTHON=coverage run --source tobiko --parallel-mode
whitelist_externals=
find
[testenv]
commands =
coverage erase
find . -type f -name ".coverage*" -delete
find . -type f -name "*.pyc" -delete
coverage erase
stestr --test-path ./tobiko/tests/cmd run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
coverage report
find . -type f -name ".coverage*" -delete
deps =
{[tobiko]deps}
-r{toxinidir}/test-requirements.txt
setenv =
{[tobiko]setenv}
PYTHON=coverage run --source tobiko --parallel-mode
usedevelop = True
whitelist_externals=
find
[testenv:neutron]
basepython = python3
@ -39,36 +50,59 @@ basepython = python3
commands =
stestr --test-path ./tobiko/tests/scenario run {posargs}
deps =
{[tobiko]deps}
-r{toxinidir}/neutron-requirements.txt
setenv =
{[tobiko]setenv}
PYTHON=python
[testenv:venv]
basepython = python3
deps =
commands =
{posargs}
deps =
{[testenv]deps}
{[testenv:neutron]deps}
setenv =
{[tobiko]setenv}
PYTHON=python
[testenv:pep8]
basepython = python3
commands =
flake8
deps =
-r{toxinidir}/test-requirements.txt
{[testenv]deps}
{[testenv:neutron]deps}
-r{toxinidir}/pep8-requirements.txt
commands =
flake8
setenv =
{[tobiko]setenv}
PYTHON=python
[testenv:pylint]
basepython = python3
commands =
pylint -E --rcfile=.pylintrc -e W,E tobiko
deps =
-r{toxinidir}/test-requirements.txt
{[testenv]deps}
{[testenv:neutron]deps}
-r{toxinidir}/pylint-requirements.txt
commands =
pylint -E --rcfile=.pylintrc -e W,E tobiko
setenv =
{[tobiko]setenv}
PYTHON=python
[flake8]

2
zuul.d/projects.yaml → zuul.d/project.yaml

@ -8,10 +8,12 @@
- openstack-tox-pep8
- openstack-tox-pylint
- openstack-tox-py35
- openstack-tox-py36
- openstack-tox-py27
gate:
jobs:
- openstack-tox-pep8
- openstack-tox-pylint
- openstack-tox-py35
- openstack-tox-py36
- openstack-tox-py27
Loading…
Cancel
Save