mirror of
https://github.com/jtesta/ssh-audit.git
synced 2024-11-16 13:35:39 +01:00
246a41d46f
* Apply Flake8 also on `setup.py` modified: tox.ini * Fix W605 - invalid escape syntax modified: packages/setup.py modified: tox.ini * Update comment about Flake8: W504 W503 and W504 are mutual exclusive - so we have to keep one of them. modified: tox.ini * Fix F841 - variable assigned but never used modified: ssh-audit.py modified: tox.ini * Fix E741 - ambiguous variable name 'l' modified: ssh-audit.py modified: tox.ini * Fix E712 - comparison to False should be 'if cond is False' ... and not 'if conf == False'. modified: ssh-audit.py modified: tox.ini * Fix E711 - comparison to None should be 'if cond is not None' ... and not 'if cond != None'. modified: ssh-audit.py modified: tox.ini * Fix E305 - expected 2 blank lines ... after class or function definition, found 1. modified: ssh-audit.py modified: tox.ini * Fix E303 - too many blank lines modified: ssh-audit.py modified: tox.ini * Fix E303 - too many blank lines modified: ssh-audit.py modified: tox.ini * Fix E301 - expected 1 blank line, found 0 No code change necessary, probably fixed by another commit. modified: tox.ini * Fix E265 - block comment should start with '# ' There is lots of commented out code, which usually should be just deleted. I will keep it for now, as I am not yet very familiar with the code base. modified: ssh-audit.py modified: tox.ini * Fix E261 - at least two spaces before inline comment modified: ssh-audit.py modified: tox.ini * Fix E251 - unexpected spaces around keyword / parameter equals modified: packages/setup.py modified: tox.ini * Fix E231 - missing whitespace after ',' No code change necessary, probably fixed by previous commit. modified: tox.ini * Fix E226 - missing whitespace around arithmetic operator modified: ssh-audit.py modified: tox.ini * Fix W293 - blank line contains whitespace modified: ssh-audit.py modified: tox.ini * Fix E221 - multiple spaces before operator modified: ssh-audit.py modified: tox.ini * Update comment about Flake 8 E241 Lots of data is formatted as tables, so this warning is disabled for a good reason. modified: tox.ini * Fix E401 - multiple imports on one line modified: ssh-audit.py modified: tox.ini * Do not ignore Flake8 warning F401 ... as there were no errors in source code anyway. modified: tox.ini * Fix F821 - undefined name modified: ssh-audit.py modified: tox.ini * Reformat ignore section for Flake8 modified: tox.ini * Flake8 test suite modified: test/conftest.py modified: test/test_auditconf.py modified: test/test_banner.py modified: test/test_buffer.py modified: test/test_errors.py modified: test/test_output.py modified: test/test_resolve.py modified: test/test_socket.py modified: test/test_software.py modified: test/test_ssh1.py modified: test/test_ssh2.py modified: test/test_ssh_algorithm.py modified: test/test_utils.py modified: test/test_version_compare.py modified: tox.ini
150 lines
4.1 KiB
INI
150 lines
4.1 KiB
INI
[tox]
|
|
envlist =
|
|
py{27,py,py3}-{test,pylint,flake8,vulture}
|
|
py{35,36,37,38}-{test,mypy,pylint,flake8,vulture}
|
|
cov
|
|
skipsdist = true
|
|
skip_missing_interpreters = true
|
|
|
|
[testenv]
|
|
deps =
|
|
test: pytest<6.0
|
|
test,cov: {[testenv:cov]deps}
|
|
test,py{35,36,37,38}-{type,mypy}: colorama
|
|
py{35,36,37,38}-{type,mypy}: {[testenv:mypy]deps}
|
|
py{27,py,py3,35,36,37,38}-{lint,pylint},lint: {[testenv:pylint]deps}
|
|
py{27,py,py3,35,36,37,38}-{lint,flake8},lint: {[testenv:flake8]deps}
|
|
py{27,py,py3,35,36,37,38}-{lint,vulture},lint: {[testenv:vulture]deps}
|
|
setenv =
|
|
SSHAUDIT = {toxinidir}/ssh-audit.py
|
|
test: COVERAGE_FILE = {toxinidir}/.coverage.{envname}
|
|
type,mypy: MYPYPATH = {toxinidir}/test/stubs
|
|
type,mypy: MYPYHTML = {toxinidir}/reports/html/mypy
|
|
commands =
|
|
test: coverage run --source ssh-audit -m -- \
|
|
test: pytest -v --junitxml={toxinidir}/reports/junit.{envname}.xml {posargs:test}
|
|
test: coverage report --show-missing
|
|
test: coverage html -d {toxinidir}/reports/html/coverage.{envname}
|
|
py{35,36,37,38}-{type,mypy}: {[testenv:mypy]commands}
|
|
py{27,py,py3,35,36,37,38}-{lint,pylint},lint: {[testenv:pylint]commands}
|
|
py{27,py,py3,35,36,37,38}-{lint,flake8},lint: {[testenv:flake8]commands}
|
|
py{27,py,py3,35,36,37,38}-{lint,vulture},lint: {[testenv:vulture]commands}
|
|
ignore_outcome =
|
|
type: true
|
|
lint: true
|
|
|
|
[testenv:cov]
|
|
deps =
|
|
coverage
|
|
setenv =
|
|
COVERAGE_FILE = {toxinidir}/.coverage
|
|
commands =
|
|
coverage erase
|
|
coverage combine
|
|
coverage report --show-missing
|
|
coverage xml -i -o {toxinidir}/reports/coverage.xml
|
|
coverage html -d {toxinidir}/reports/html/coverage
|
|
|
|
[testenv:mypy]
|
|
deps =
|
|
colorama
|
|
lxml
|
|
mypy
|
|
commands =
|
|
-mypy \
|
|
--show-error-context \
|
|
--config-file {toxinidir}/tox.ini \
|
|
--html-report {env:MYPYHTML}.py3.{envname} \
|
|
{posargs:{env:SSHAUDIT}}
|
|
-mypy \
|
|
-2 \
|
|
--no-warn-incomplete-stub \
|
|
--show-error-context \
|
|
--config-file {toxinidir}/tox.ini \
|
|
--html-report {env:MYPYHTML}.py2.{envname} \
|
|
{posargs:{env:SSHAUDIT}}
|
|
|
|
[testenv:pylint]
|
|
deps =
|
|
mccabe
|
|
pylint
|
|
commands =
|
|
-pylint \
|
|
--rcfile tox.ini \
|
|
--load-plugins=pylint.extensions.bad_builtin \
|
|
--load-plugins=pylint.extensions.check_elif \
|
|
--load-plugins=pylint.extensions.mccabe \
|
|
{posargs:{env:SSHAUDIT}}
|
|
|
|
[testenv:flake8]
|
|
deps =
|
|
flake8
|
|
commands =
|
|
flake8 {posargs:{env:SSHAUDIT} {toxinidir}/packages/setup.py {toxinidir}/test} --statistics
|
|
|
|
[testenv:vulture]
|
|
deps =
|
|
vulture
|
|
commands =
|
|
python -c "import sys; from subprocess import Popen, PIPE; \
|
|
a = ['vulture', '--min-confidence', '100'] + r'{posargs:{env:SSHAUDIT}}'.split(' '); \
|
|
o = Popen(a, shell=False, stdout=PIPE).communicate()[0]; \
|
|
l = [x for x in o.split(b'\n') if x and b'Unused import' not in x]; \
|
|
print(b'\n'.join(l).decode('utf-8')); \
|
|
sys.exit(1 if len(l) > 0 else 0)"
|
|
|
|
|
|
[mypy]
|
|
ignore_missing_imports = False
|
|
follow_imports = error
|
|
disallow_untyped_calls = True
|
|
disallow_untyped_defs = True
|
|
check_untyped_defs = True
|
|
disallow_subclassing_any = True
|
|
warn_incomplete_stub = True
|
|
warn_redundant_casts = True
|
|
warn_return_any = True
|
|
warn_unused_ignores = True
|
|
strict_optional = True
|
|
strict_boolean = True
|
|
|
|
[pylint]
|
|
reports = no
|
|
#output-format = colorized
|
|
indent-string = \t
|
|
disable =
|
|
locally-disabled,
|
|
bad-continuation,
|
|
multiple-imports,
|
|
invalid-name,
|
|
trailing-whitespace,
|
|
missing-docstring
|
|
max-complexity = 15
|
|
max-args = 8
|
|
max-locals = 20
|
|
max-returns = 6
|
|
max-branches = 15
|
|
max-statements = 60
|
|
max-parents = 7
|
|
max-attributes = 8
|
|
min-public-methods = 1
|
|
max-public-methods = 20
|
|
max-bool-expr = 5
|
|
max-nested-blocks = 6
|
|
max-line-length = 80
|
|
ignore-long-lines = ^\s*(#\s+type:\s+.*|[A-Z0-9_]+\s+=\s+.*|('.*':\s+)?\[.*\],?|assert\s+.*)$
|
|
max-module-lines = 2500
|
|
|
|
[flake8]
|
|
ignore =
|
|
W191, # indentation contains tabs
|
|
E101, # indentation contains mixed spaces and tabs
|
|
E241, # multiple spaces after operator; should be kept for tabular data
|
|
E501, # line too long
|
|
E117, # over-indented
|
|
E126, # continuation line over-indented for hanging indent
|
|
E128, # continuation line under-indented for visual indent
|
|
E722, # do not use bare 'except'
|
|
F601, # dictionary key 'ecdsa-sha2-1.3.132.0.10' repeated with different values
|
|
W504, # line break after binary operator; this (or W503) has to stay
|