; Copyright 2019-present Open Networking Foundation
;
; 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 = py27,py35,py36,py37
skip_missing_interpreters = true
skipsdist = True

[testenv]
deps =
  -r requirements.txt
  nose2
  flake8
  gevent
  gevent-websocket
  multistructlog
  psutil

commands =
  nose2 -c tox.ini --verbose --junit-xml
  flake8

[flake8]
max-line-length = 119
exclude =
  .tox
  build

[unittest]
plugins = nose2.plugins.junitxml

[junit-xml]
path = nose2-results.xml

[coverage]
always-on = True
coverage =
  src
  test
coverage-report =
  term
  xml