# Copyright 2018 Telefonica S.A.
#
# 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.

[tox]
envlist = py3
toxworkdir={homedir}/.tox

[testenv:pytest]
basepython = python3
deps = pytest
       pytest-asyncio
       pycrypto
commands = pytest osm_common

[testenv:flake8]
basepython = python3
deps = flake8
commands =
    flake8 osm_common/ setup.py --max-line-length 120 --exclude .svn,CVS,.gz,.git,__pycache__,.tox,local,temp --ignore W291,W293,E226

[testenv:unittest]
basepython = python3
deps = pycrypto
       pytest
commands = python3 -m unittest osm_common.tests.test_dbbase


[testenv:build]
basepython = python3
deps = stdeb
       setuptools-version-command
commands = python3 setup.py --command-packages=stdeb.command bdist_deb
