# Copyright (c) 2024 Cisco and/or its affiliates. # 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. # Idea of this file is motivated by OpenDylight, # especially its Integration/Test sub-project. # This file requires active virtualenv with tox package installed, # or python-tox system package installed. # Usage: # cd to CSIT root (other directories might use different tox.ini) # $ tox # will execute all default checkers. # $ tox -e pylint # will execute only checkers (or fixers) defined in "pylint" tox environment. [tox] # Fast and brief checkers to front, slow or verbose checkers to back. envlist = copyright_year, gpl_license, new_line_length, line_length, autogen, pylint # The following is needed as tox requires setup.py by default. skipsdist = true # Just a shorthand to avoid long lines. script_dir = ./resources/libraries/bash/entry/tox # Recommended ordering withinn testenv definition: # + General comments. # + ignore_outcome for non-voting checkers, # + setenv (PYTHONPATH) for Python-using checkers and fixers. # + Other Python stuff (e.g. basepython and deps for pylint). # + whitelist_externals to enable bash. # + Commands with a single bash to launch the corresponding script. [testenv:autogen] setenv = PYTHONPATH = {toxinidir} whitelist_externals = bash commands = bash {[tox]script_dir}/autogen.sh [testenv:copyright_year] whitelist_externals = bash commands = bash {[tox]script_dir}/copyright_year.sh [testenv:gpl_license] whitelist_externals = bash commands = bash {[tox]script_dir}/gpl_license.sh [testenv:line_length] # Fix all transgressions and remove the ignore_outcome flag. ignore_outcome = true whitelist_externals = bash commands = bash {[tox]script_dir}/line.sh [testenv:new_line_length] # Adding .svg, big .rst tables, .yaml and similar still requires long lines. # As current implementation is too dumb to filter those out, # the checker has to remain non-voting. ignore_outcome = true whitelist_externals = bash commands = bash {[tox]script_dir}/new_line.sh [testenv:pylint] # Run pylint, but hide its return value until python warnings are cleared. ignore_outcome = true setenv = PYTHONPATH = {toxinidir} basepython = python3 deps = -r ./requirements.txt whitelist_externals = bash commands = bash {[tox]script_dir}/pylint.sh