; 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
; future; envlist = py27,py35,py36,py37
skip_missing_interpreters = true
skipsdist = True

[testenv]
deps =
  -r requirements.txt
  requests_mock
  nose2
;  flake8

changedir = xos
commands =
  nose2 -c ../tox.ini --verbose --junit-xml
; future: flake8

[flake8]
max-line-length = 119

[unittest]
plugins = nose2.plugins.junitxml

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

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