ssh-audit/tox.ini

141 lines
3.6 KiB
INI
Raw Normal View History

[tox]
2017-03-26 04:39:24 +02:00
envlist =
py{py3}-{test,pylint,flake8,vulture}
Fix tox and finally make Travis green (#29) * Ignore all flake8 warnings - one by one Without ignoring, there are by far more than 1000 linting issues. Fixing these warnings means possibly changing almost every line of code, as single warnings can effect more than one line. Doing this in one pull request is generally no good idea, and especially not now, as the test suite is currently broken. Instead of just deactivating flake8, or ignoring its exit code, the warnings are ignored one by one. This means, when one wants to work on the linting issues, one can just remove one ignored warning, and fix the problems - which is not too much work at once, and leads to an managable diff. modified: tox.ini * Unpin dependencies for mypy run ... as they could not be installed due to compilation errors. modified: tox.ini * Fix syntax error for mypy When new code was added via https://github.com/jtesta/ssh-audit/commit/af663da83811ad7c40bcd5ca411ad27ceafbc134 the type hint was moved further down and so caused a syntax error, as type hints have to follow the function declaration directly. Now, the the type linter finally works and shows 187 errors. modified: ssh-audit.py * Update .gitignore for mypy modified: .gitignore * Let tox not fail on mypy errors Currently, there are almost 200 typing related errors. Instead of letting the tox run fail, the errors are still shown, but the exit code gets ignored for now. This way one can fix them one by one - if wanted. modified: tox.ini * Let tox not fail on pylint errors Currently, there are more than 100 linting related errors. Most of them will be fixed when flake8 gets fixed. Instead of letting the tox run fail, the errors are still shown, but the exit code gets ignored for now. This way, one can fix them one by one. modified: tox.ini * Let vulture only fail on 100% confidence Vulture is a tool to find dead code. Unlike Flake8, which also finds unused imports and variables, Vulture does some guess work and finally outputs a list of possible dead code with a confidence marker. Already the first result ... "ssh-audit.py:48: unused import 'Dict' (90% confidence)" ... is a false-positive. As Flake8 also does a good job in detecting unused code, it makes not much sense to let tox fail when vulture fails. Instead of deactivating vulture, it was configured in a way to only report results with 100% confidence. modified: tox.ini * Make timeout_set optional When timeout_set was introduced in https://github.com/jtesta/ssh-audit/commit/1ec13c653e5a465d14231f875ad42c23c347b400 the tests were not updated, which instantiated the Socket class. While the commit message read "A timeout can now be specified", the code enforced a `timeout_set`. `timeout_set` now is `False` by default. modified: ssh-audit.py * Set default values for Socket's `ipvo` and `timeout` Commit https://github.com/jtesta/ssh-audit/commit/f44663bfc4a7c70f9a61a8304fd6f16d945403d8 introduced two new arguments to the Socket class, but did not update the tests, which still relied on the socket class to only require two arguments. While for `ipvo`the default of `None` is obvious, as in `__init__` it is checked for it, for `timeout` it was not that obvious. Luckily, in the README a default of 5 (seconds) is mentioned. modified: ssh-audit.py * Un-comment exception handling While working on commit https://github.com/jtesta/ssh-audit/commit/fd3a1f7d4171636f79384bc8c74e1248d9c82a66 possibly it was forgotten to undo the commenting of the exception handling for the case, when the Socket class was instantiated with a missing `host` argument. This broke the `test_invalid_host` test. modified: ssh-audit.py * Skip `test_ssh2_server_simple` temporarily After fixing all the other tests and make tox run again, there is one failing test left, which unfortunately is not super easy to fix without further research (at least not for me). I marked `test_ssh2_server_simple` to be skipped in test runs (temporarily), so at least, when working on new features, there is working test suite, now. modified: test/test_ssh2.py * Do not pin pytest and coverage version ... but do use pytest < 6, as this version will have a breaking change with junit/Jenkins integration Also see https://github.com/jtesta/ssh-audit/issues/34 * Drop unsupported Python versions ... except Python 2.7, as this will need also changes to the source code, and this pull request is already big enough. Also, support for Python 3.8 was added. The Travis configuration was simplified a lot, by leveraging the tox configuration. Also, the mac builds have been dropped, as they all took almost an hour each, they failed and I have no experience on how to fix them. The `appveyor` build only has been updated to reflect the updated Python versions, as I have no access to the status page and no experience with this build environment. Also, removed call to `coveralls`, which seems to be a leftover from the old repository. modified: .appveyor.yml modified: .travis.yml modified: packages/setup.py deleted: test/tools/ci-linux.sh modified: tox.ini
2020-06-08 22:38:22 +02:00
py{35,36,37,38}-{test,mypy,pylint,flake8,vulture}
2017-03-26 04:39:24 +02:00
cov
skipsdist = true
skip_missing_interpreters = true
[testenv]
deps =
Fix tox and finally make Travis green (#29) * Ignore all flake8 warnings - one by one Without ignoring, there are by far more than 1000 linting issues. Fixing these warnings means possibly changing almost every line of code, as single warnings can effect more than one line. Doing this in one pull request is generally no good idea, and especially not now, as the test suite is currently broken. Instead of just deactivating flake8, or ignoring its exit code, the warnings are ignored one by one. This means, when one wants to work on the linting issues, one can just remove one ignored warning, and fix the problems - which is not too much work at once, and leads to an managable diff. modified: tox.ini * Unpin dependencies for mypy run ... as they could not be installed due to compilation errors. modified: tox.ini * Fix syntax error for mypy When new code was added via https://github.com/jtesta/ssh-audit/commit/af663da83811ad7c40bcd5ca411ad27ceafbc134 the type hint was moved further down and so caused a syntax error, as type hints have to follow the function declaration directly. Now, the the type linter finally works and shows 187 errors. modified: ssh-audit.py * Update .gitignore for mypy modified: .gitignore * Let tox not fail on mypy errors Currently, there are almost 200 typing related errors. Instead of letting the tox run fail, the errors are still shown, but the exit code gets ignored for now. This way one can fix them one by one - if wanted. modified: tox.ini * Let tox not fail on pylint errors Currently, there are more than 100 linting related errors. Most of them will be fixed when flake8 gets fixed. Instead of letting the tox run fail, the errors are still shown, but the exit code gets ignored for now. This way, one can fix them one by one. modified: tox.ini * Let vulture only fail on 100% confidence Vulture is a tool to find dead code. Unlike Flake8, which also finds unused imports and variables, Vulture does some guess work and finally outputs a list of possible dead code with a confidence marker. Already the first result ... "ssh-audit.py:48: unused import 'Dict' (90% confidence)" ... is a false-positive. As Flake8 also does a good job in detecting unused code, it makes not much sense to let tox fail when vulture fails. Instead of deactivating vulture, it was configured in a way to only report results with 100% confidence. modified: tox.ini * Make timeout_set optional When timeout_set was introduced in https://github.com/jtesta/ssh-audit/commit/1ec13c653e5a465d14231f875ad42c23c347b400 the tests were not updated, which instantiated the Socket class. While the commit message read "A timeout can now be specified", the code enforced a `timeout_set`. `timeout_set` now is `False` by default. modified: ssh-audit.py * Set default values for Socket's `ipvo` and `timeout` Commit https://github.com/jtesta/ssh-audit/commit/f44663bfc4a7c70f9a61a8304fd6f16d945403d8 introduced two new arguments to the Socket class, but did not update the tests, which still relied on the socket class to only require two arguments. While for `ipvo`the default of `None` is obvious, as in `__init__` it is checked for it, for `timeout` it was not that obvious. Luckily, in the README a default of 5 (seconds) is mentioned. modified: ssh-audit.py * Un-comment exception handling While working on commit https://github.com/jtesta/ssh-audit/commit/fd3a1f7d4171636f79384bc8c74e1248d9c82a66 possibly it was forgotten to undo the commenting of the exception handling for the case, when the Socket class was instantiated with a missing `host` argument. This broke the `test_invalid_host` test. modified: ssh-audit.py * Skip `test_ssh2_server_simple` temporarily After fixing all the other tests and make tox run again, there is one failing test left, which unfortunately is not super easy to fix without further research (at least not for me). I marked `test_ssh2_server_simple` to be skipped in test runs (temporarily), so at least, when working on new features, there is working test suite, now. modified: test/test_ssh2.py * Do not pin pytest and coverage version ... but do use pytest < 6, as this version will have a breaking change with junit/Jenkins integration Also see https://github.com/jtesta/ssh-audit/issues/34 * Drop unsupported Python versions ... except Python 2.7, as this will need also changes to the source code, and this pull request is already big enough. Also, support for Python 3.8 was added. The Travis configuration was simplified a lot, by leveraging the tox configuration. Also, the mac builds have been dropped, as they all took almost an hour each, they failed and I have no experience on how to fix them. The `appveyor` build only has been updated to reflect the updated Python versions, as I have no access to the status page and no experience with this build environment. Also, removed call to `coveralls`, which seems to be a leftover from the old repository. modified: .appveyor.yml modified: .travis.yml modified: packages/setup.py deleted: test/tools/ci-linux.sh modified: tox.ini
2020-06-08 22:38:22 +02:00
test: pytest<6.0
2017-03-26 04:39:24 +02:00
test,cov: {[testenv:cov]deps}
Fix tox and finally make Travis green (#29) * Ignore all flake8 warnings - one by one Without ignoring, there are by far more than 1000 linting issues. Fixing these warnings means possibly changing almost every line of code, as single warnings can effect more than one line. Doing this in one pull request is generally no good idea, and especially not now, as the test suite is currently broken. Instead of just deactivating flake8, or ignoring its exit code, the warnings are ignored one by one. This means, when one wants to work on the linting issues, one can just remove one ignored warning, and fix the problems - which is not too much work at once, and leads to an managable diff. modified: tox.ini * Unpin dependencies for mypy run ... as they could not be installed due to compilation errors. modified: tox.ini * Fix syntax error for mypy When new code was added via https://github.com/jtesta/ssh-audit/commit/af663da83811ad7c40bcd5ca411ad27ceafbc134 the type hint was moved further down and so caused a syntax error, as type hints have to follow the function declaration directly. Now, the the type linter finally works and shows 187 errors. modified: ssh-audit.py * Update .gitignore for mypy modified: .gitignore * Let tox not fail on mypy errors Currently, there are almost 200 typing related errors. Instead of letting the tox run fail, the errors are still shown, but the exit code gets ignored for now. This way one can fix them one by one - if wanted. modified: tox.ini * Let tox not fail on pylint errors Currently, there are more than 100 linting related errors. Most of them will be fixed when flake8 gets fixed. Instead of letting the tox run fail, the errors are still shown, but the exit code gets ignored for now. This way, one can fix them one by one. modified: tox.ini * Let vulture only fail on 100% confidence Vulture is a tool to find dead code. Unlike Flake8, which also finds unused imports and variables, Vulture does some guess work and finally outputs a list of possible dead code with a confidence marker. Already the first result ... "ssh-audit.py:48: unused import 'Dict' (90% confidence)" ... is a false-positive. As Flake8 also does a good job in detecting unused code, it makes not much sense to let tox fail when vulture fails. Instead of deactivating vulture, it was configured in a way to only report results with 100% confidence. modified: tox.ini * Make timeout_set optional When timeout_set was introduced in https://github.com/jtesta/ssh-audit/commit/1ec13c653e5a465d14231f875ad42c23c347b400 the tests were not updated, which instantiated the Socket class. While the commit message read "A timeout can now be specified", the code enforced a `timeout_set`. `timeout_set` now is `False` by default. modified: ssh-audit.py * Set default values for Socket's `ipvo` and `timeout` Commit https://github.com/jtesta/ssh-audit/commit/f44663bfc4a7c70f9a61a8304fd6f16d945403d8 introduced two new arguments to the Socket class, but did not update the tests, which still relied on the socket class to only require two arguments. While for `ipvo`the default of `None` is obvious, as in `__init__` it is checked for it, for `timeout` it was not that obvious. Luckily, in the README a default of 5 (seconds) is mentioned. modified: ssh-audit.py * Un-comment exception handling While working on commit https://github.com/jtesta/ssh-audit/commit/fd3a1f7d4171636f79384bc8c74e1248d9c82a66 possibly it was forgotten to undo the commenting of the exception handling for the case, when the Socket class was instantiated with a missing `host` argument. This broke the `test_invalid_host` test. modified: ssh-audit.py * Skip `test_ssh2_server_simple` temporarily After fixing all the other tests and make tox run again, there is one failing test left, which unfortunately is not super easy to fix without further research (at least not for me). I marked `test_ssh2_server_simple` to be skipped in test runs (temporarily), so at least, when working on new features, there is working test suite, now. modified: test/test_ssh2.py * Do not pin pytest and coverage version ... but do use pytest < 6, as this version will have a breaking change with junit/Jenkins integration Also see https://github.com/jtesta/ssh-audit/issues/34 * Drop unsupported Python versions ... except Python 2.7, as this will need also changes to the source code, and this pull request is already big enough. Also, support for Python 3.8 was added. The Travis configuration was simplified a lot, by leveraging the tox configuration. Also, the mac builds have been dropped, as they all took almost an hour each, they failed and I have no experience on how to fix them. The `appveyor` build only has been updated to reflect the updated Python versions, as I have no access to the status page and no experience with this build environment. Also, removed call to `coveralls`, which seems to be a leftover from the old repository. modified: .appveyor.yml modified: .travis.yml modified: packages/setup.py deleted: test/tools/ci-linux.sh modified: tox.ini
2020-06-08 22:38:22 +02:00
test,py{35,36,37,38}-{type,mypy}: colorama
py{35,36,37,38}-{type,mypy}: {[testenv:mypy]deps}
py{py3,35,36,37,38}-{lint,pylint},lint: {[testenv:pylint]deps}
py{py3,35,36,37,38}-{lint,flake8},lint: {[testenv:flake8]deps}
py{py3,35,36,37,38}-{lint,vulture},lint: {[testenv:vulture]deps}
setenv =
SSHAUDIT = {toxinidir}/ssh-audit.py
2017-03-26 04:39:24 +02:00
test: COVERAGE_FILE = {toxinidir}/.coverage.{envname}
type,mypy: MYPYPATH = {toxinidir}/test/stubs
2017-04-04 23:56:17 +02:00
type,mypy: MYPYHTML = {toxinidir}/reports/html/mypy
commands =
2017-04-04 23:56:17 +02:00
test: coverage run --source ssh-audit -m -- \
test: pytest -v --junitxml={toxinidir}/reports/junit.{envname}.xml {posargs:test}
2017-03-26 04:39:24 +02:00
test: coverage report --show-missing
2017-04-04 23:56:17 +02:00
test: coverage html -d {toxinidir}/reports/html/coverage.{envname}
Fix typing errors (#39) * Remove obsolete option `strict_boolean` It was removed back in 2018: https://github.com/python/mypy/pull/5740/files modified: tox.ini * Deactivate all mypy options This still leaves 47 errors, which should be fixed one by one. modified: tox.ini * Fix signature for `output` `client_host` is either a str or None. modified: ssh-audit.py * Fix return value for `output_recommendations` It is a bool, not None. modified: ssh-audit.py * Fix type comment for `output_fingerprints` modified: ssh-audit.py * Fix type comment for `output_security` modified: ssh-audit.py * Fix type comment for `output_security_sub` modified: ssh-audit.py * Fix type comment for `output_compatibility` modified: ssh-audit.py * Fix type comment for Socket.__init__ modified: ssh-audit.py * Simplify check for regex result ... which also fixes four typing errors. modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix typing errors by simplifying regex result check modified: ssh-audit.py * Fix typing errors by simplifying regex result check modified: ssh-audit.py * Fix typing errors by simplifying regex result check modified: ssh-audit.py * Fix typing errors by simplifying regex result check modified: ssh-audit.py * Fix typing errors by simplifying regex result check modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix typing errors by simplifying regex result check modified: ssh-audit.py * Fix typing errors by simplifying regex result check modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix type comment for OutputBuffer.flush modified: ssh-audit.py * Fix type comments for `output_algorithms` modified: ssh-audit.py * Fix type comment for `output_algorithm` modified: ssh-audit.py * Fix type comment for KexGroup14's init method modified: ssh-audit.py * Fix type comment for KexDH's send_init modified: ssh-audit.py * Fix type comment for KexDH's init method modified: ssh-audit.py * Add explicit return value of None Now this is odd. Python has an implicit return value of None for `return`, but mypy does not infer that. modified: ssh-audit.py * Fix type error for unknown_algorithms modified: ssh-audit.py * Add type comment for Socket.__sock_map modified: ssh-audit.py * Create type comment for Kex.__host_keys modified: ssh-audit.py * Create type comment for Kex.__dh_modulus_sizes modified: ssh-audit.py * Add type comment for Kex.__rsa_key_sizes modified: ssh-audit.py * Fix type eror by adding type comment to temp variable modified: ssh-audit.py * Fix type comments for Auditconf.__setattr__ modified: ssh-audit.py * Fix type error by simplifying branch logic modified: ssh-audit.py * Do not skip type checks any more Without additional strict options, there are zero type errors (down from 47). modified: tox.ini * Annotate variables before tuple unpacking modified: ssh-audit.py * Annotate variables before unpacking modified: ssh-audit.py * Fix flake8 issues modified: ssh-audit.py
2020-06-17 04:54:39 +02:00
py{35,36,37,38}-{type,mypy}: {[testenv:mypy]commands}
py{py3,35,36,37,38}-{lint,pylint},lint: {[testenv:pylint]commands}
py{py3,35,36,37,38}-{lint,flake8},lint: {[testenv:flake8]commands}
py{py3,35,36,37,38}-{lint,vulture},lint: {[testenv:vulture]commands}
2017-03-26 04:39:24 +02:00
ignore_outcome =
type: true
lint: true
[testenv:cov]
deps =
Fix tox and finally make Travis green (#29) * Ignore all flake8 warnings - one by one Without ignoring, there are by far more than 1000 linting issues. Fixing these warnings means possibly changing almost every line of code, as single warnings can effect more than one line. Doing this in one pull request is generally no good idea, and especially not now, as the test suite is currently broken. Instead of just deactivating flake8, or ignoring its exit code, the warnings are ignored one by one. This means, when one wants to work on the linting issues, one can just remove one ignored warning, and fix the problems - which is not too much work at once, and leads to an managable diff. modified: tox.ini * Unpin dependencies for mypy run ... as they could not be installed due to compilation errors. modified: tox.ini * Fix syntax error for mypy When new code was added via https://github.com/jtesta/ssh-audit/commit/af663da83811ad7c40bcd5ca411ad27ceafbc134 the type hint was moved further down and so caused a syntax error, as type hints have to follow the function declaration directly. Now, the the type linter finally works and shows 187 errors. modified: ssh-audit.py * Update .gitignore for mypy modified: .gitignore * Let tox not fail on mypy errors Currently, there are almost 200 typing related errors. Instead of letting the tox run fail, the errors are still shown, but the exit code gets ignored for now. This way one can fix them one by one - if wanted. modified: tox.ini * Let tox not fail on pylint errors Currently, there are more than 100 linting related errors. Most of them will be fixed when flake8 gets fixed. Instead of letting the tox run fail, the errors are still shown, but the exit code gets ignored for now. This way, one can fix them one by one. modified: tox.ini * Let vulture only fail on 100% confidence Vulture is a tool to find dead code. Unlike Flake8, which also finds unused imports and variables, Vulture does some guess work and finally outputs a list of possible dead code with a confidence marker. Already the first result ... "ssh-audit.py:48: unused import 'Dict' (90% confidence)" ... is a false-positive. As Flake8 also does a good job in detecting unused code, it makes not much sense to let tox fail when vulture fails. Instead of deactivating vulture, it was configured in a way to only report results with 100% confidence. modified: tox.ini * Make timeout_set optional When timeout_set was introduced in https://github.com/jtesta/ssh-audit/commit/1ec13c653e5a465d14231f875ad42c23c347b400 the tests were not updated, which instantiated the Socket class. While the commit message read "A timeout can now be specified", the code enforced a `timeout_set`. `timeout_set` now is `False` by default. modified: ssh-audit.py * Set default values for Socket's `ipvo` and `timeout` Commit https://github.com/jtesta/ssh-audit/commit/f44663bfc4a7c70f9a61a8304fd6f16d945403d8 introduced two new arguments to the Socket class, but did not update the tests, which still relied on the socket class to only require two arguments. While for `ipvo`the default of `None` is obvious, as in `__init__` it is checked for it, for `timeout` it was not that obvious. Luckily, in the README a default of 5 (seconds) is mentioned. modified: ssh-audit.py * Un-comment exception handling While working on commit https://github.com/jtesta/ssh-audit/commit/fd3a1f7d4171636f79384bc8c74e1248d9c82a66 possibly it was forgotten to undo the commenting of the exception handling for the case, when the Socket class was instantiated with a missing `host` argument. This broke the `test_invalid_host` test. modified: ssh-audit.py * Skip `test_ssh2_server_simple` temporarily After fixing all the other tests and make tox run again, there is one failing test left, which unfortunately is not super easy to fix without further research (at least not for me). I marked `test_ssh2_server_simple` to be skipped in test runs (temporarily), so at least, when working on new features, there is working test suite, now. modified: test/test_ssh2.py * Do not pin pytest and coverage version ... but do use pytest < 6, as this version will have a breaking change with junit/Jenkins integration Also see https://github.com/jtesta/ssh-audit/issues/34 * Drop unsupported Python versions ... except Python 2.7, as this will need also changes to the source code, and this pull request is already big enough. Also, support for Python 3.8 was added. The Travis configuration was simplified a lot, by leveraging the tox configuration. Also, the mac builds have been dropped, as they all took almost an hour each, they failed and I have no experience on how to fix them. The `appveyor` build only has been updated to reflect the updated Python versions, as I have no access to the status page and no experience with this build environment. Also, removed call to `coveralls`, which seems to be a leftover from the old repository. modified: .appveyor.yml modified: .travis.yml modified: packages/setup.py deleted: test/tools/ci-linux.sh modified: tox.ini
2020-06-08 22:38:22 +02:00
coverage
setenv =
COVERAGE_FILE = {toxinidir}/.coverage
commands =
coverage erase
coverage combine
coverage report --show-missing
2017-04-04 23:56:17 +02:00
coverage xml -i -o {toxinidir}/reports/coverage.xml
coverage html -d {toxinidir}/reports/html/coverage
[testenv:mypy]
deps =
Fix tox and finally make Travis green (#29) * Ignore all flake8 warnings - one by one Without ignoring, there are by far more than 1000 linting issues. Fixing these warnings means possibly changing almost every line of code, as single warnings can effect more than one line. Doing this in one pull request is generally no good idea, and especially not now, as the test suite is currently broken. Instead of just deactivating flake8, or ignoring its exit code, the warnings are ignored one by one. This means, when one wants to work on the linting issues, one can just remove one ignored warning, and fix the problems - which is not too much work at once, and leads to an managable diff. modified: tox.ini * Unpin dependencies for mypy run ... as they could not be installed due to compilation errors. modified: tox.ini * Fix syntax error for mypy When new code was added via https://github.com/jtesta/ssh-audit/commit/af663da83811ad7c40bcd5ca411ad27ceafbc134 the type hint was moved further down and so caused a syntax error, as type hints have to follow the function declaration directly. Now, the the type linter finally works and shows 187 errors. modified: ssh-audit.py * Update .gitignore for mypy modified: .gitignore * Let tox not fail on mypy errors Currently, there are almost 200 typing related errors. Instead of letting the tox run fail, the errors are still shown, but the exit code gets ignored for now. This way one can fix them one by one - if wanted. modified: tox.ini * Let tox not fail on pylint errors Currently, there are more than 100 linting related errors. Most of them will be fixed when flake8 gets fixed. Instead of letting the tox run fail, the errors are still shown, but the exit code gets ignored for now. This way, one can fix them one by one. modified: tox.ini * Let vulture only fail on 100% confidence Vulture is a tool to find dead code. Unlike Flake8, which also finds unused imports and variables, Vulture does some guess work and finally outputs a list of possible dead code with a confidence marker. Already the first result ... "ssh-audit.py:48: unused import 'Dict' (90% confidence)" ... is a false-positive. As Flake8 also does a good job in detecting unused code, it makes not much sense to let tox fail when vulture fails. Instead of deactivating vulture, it was configured in a way to only report results with 100% confidence. modified: tox.ini * Make timeout_set optional When timeout_set was introduced in https://github.com/jtesta/ssh-audit/commit/1ec13c653e5a465d14231f875ad42c23c347b400 the tests were not updated, which instantiated the Socket class. While the commit message read "A timeout can now be specified", the code enforced a `timeout_set`. `timeout_set` now is `False` by default. modified: ssh-audit.py * Set default values for Socket's `ipvo` and `timeout` Commit https://github.com/jtesta/ssh-audit/commit/f44663bfc4a7c70f9a61a8304fd6f16d945403d8 introduced two new arguments to the Socket class, but did not update the tests, which still relied on the socket class to only require two arguments. While for `ipvo`the default of `None` is obvious, as in `__init__` it is checked for it, for `timeout` it was not that obvious. Luckily, in the README a default of 5 (seconds) is mentioned. modified: ssh-audit.py * Un-comment exception handling While working on commit https://github.com/jtesta/ssh-audit/commit/fd3a1f7d4171636f79384bc8c74e1248d9c82a66 possibly it was forgotten to undo the commenting of the exception handling for the case, when the Socket class was instantiated with a missing `host` argument. This broke the `test_invalid_host` test. modified: ssh-audit.py * Skip `test_ssh2_server_simple` temporarily After fixing all the other tests and make tox run again, there is one failing test left, which unfortunately is not super easy to fix without further research (at least not for me). I marked `test_ssh2_server_simple` to be skipped in test runs (temporarily), so at least, when working on new features, there is working test suite, now. modified: test/test_ssh2.py * Do not pin pytest and coverage version ... but do use pytest < 6, as this version will have a breaking change with junit/Jenkins integration Also see https://github.com/jtesta/ssh-audit/issues/34 * Drop unsupported Python versions ... except Python 2.7, as this will need also changes to the source code, and this pull request is already big enough. Also, support for Python 3.8 was added. The Travis configuration was simplified a lot, by leveraging the tox configuration. Also, the mac builds have been dropped, as they all took almost an hour each, they failed and I have no experience on how to fix them. The `appveyor` build only has been updated to reflect the updated Python versions, as I have no access to the status page and no experience with this build environment. Also, removed call to `coveralls`, which seems to be a leftover from the old repository. modified: .appveyor.yml modified: .travis.yml modified: packages/setup.py deleted: test/tools/ci-linux.sh modified: tox.ini
2020-06-08 22:38:22 +02:00
colorama
lxml
mypy
commands =
Fix tox and finally make Travis green (#29) * Ignore all flake8 warnings - one by one Without ignoring, there are by far more than 1000 linting issues. Fixing these warnings means possibly changing almost every line of code, as single warnings can effect more than one line. Doing this in one pull request is generally no good idea, and especially not now, as the test suite is currently broken. Instead of just deactivating flake8, or ignoring its exit code, the warnings are ignored one by one. This means, when one wants to work on the linting issues, one can just remove one ignored warning, and fix the problems - which is not too much work at once, and leads to an managable diff. modified: tox.ini * Unpin dependencies for mypy run ... as they could not be installed due to compilation errors. modified: tox.ini * Fix syntax error for mypy When new code was added via https://github.com/jtesta/ssh-audit/commit/af663da83811ad7c40bcd5ca411ad27ceafbc134 the type hint was moved further down and so caused a syntax error, as type hints have to follow the function declaration directly. Now, the the type linter finally works and shows 187 errors. modified: ssh-audit.py * Update .gitignore for mypy modified: .gitignore * Let tox not fail on mypy errors Currently, there are almost 200 typing related errors. Instead of letting the tox run fail, the errors are still shown, but the exit code gets ignored for now. This way one can fix them one by one - if wanted. modified: tox.ini * Let tox not fail on pylint errors Currently, there are more than 100 linting related errors. Most of them will be fixed when flake8 gets fixed. Instead of letting the tox run fail, the errors are still shown, but the exit code gets ignored for now. This way, one can fix them one by one. modified: tox.ini * Let vulture only fail on 100% confidence Vulture is a tool to find dead code. Unlike Flake8, which also finds unused imports and variables, Vulture does some guess work and finally outputs a list of possible dead code with a confidence marker. Already the first result ... "ssh-audit.py:48: unused import 'Dict' (90% confidence)" ... is a false-positive. As Flake8 also does a good job in detecting unused code, it makes not much sense to let tox fail when vulture fails. Instead of deactivating vulture, it was configured in a way to only report results with 100% confidence. modified: tox.ini * Make timeout_set optional When timeout_set was introduced in https://github.com/jtesta/ssh-audit/commit/1ec13c653e5a465d14231f875ad42c23c347b400 the tests were not updated, which instantiated the Socket class. While the commit message read "A timeout can now be specified", the code enforced a `timeout_set`. `timeout_set` now is `False` by default. modified: ssh-audit.py * Set default values for Socket's `ipvo` and `timeout` Commit https://github.com/jtesta/ssh-audit/commit/f44663bfc4a7c70f9a61a8304fd6f16d945403d8 introduced two new arguments to the Socket class, but did not update the tests, which still relied on the socket class to only require two arguments. While for `ipvo`the default of `None` is obvious, as in `__init__` it is checked for it, for `timeout` it was not that obvious. Luckily, in the README a default of 5 (seconds) is mentioned. modified: ssh-audit.py * Un-comment exception handling While working on commit https://github.com/jtesta/ssh-audit/commit/fd3a1f7d4171636f79384bc8c74e1248d9c82a66 possibly it was forgotten to undo the commenting of the exception handling for the case, when the Socket class was instantiated with a missing `host` argument. This broke the `test_invalid_host` test. modified: ssh-audit.py * Skip `test_ssh2_server_simple` temporarily After fixing all the other tests and make tox run again, there is one failing test left, which unfortunately is not super easy to fix without further research (at least not for me). I marked `test_ssh2_server_simple` to be skipped in test runs (temporarily), so at least, when working on new features, there is working test suite, now. modified: test/test_ssh2.py * Do not pin pytest and coverage version ... but do use pytest < 6, as this version will have a breaking change with junit/Jenkins integration Also see https://github.com/jtesta/ssh-audit/issues/34 * Drop unsupported Python versions ... except Python 2.7, as this will need also changes to the source code, and this pull request is already big enough. Also, support for Python 3.8 was added. The Travis configuration was simplified a lot, by leveraging the tox configuration. Also, the mac builds have been dropped, as they all took almost an hour each, they failed and I have no experience on how to fix them. The `appveyor` build only has been updated to reflect the updated Python versions, as I have no access to the status page and no experience with this build environment. Also, removed call to `coveralls`, which seems to be a leftover from the old repository. modified: .appveyor.yml modified: .travis.yml modified: packages/setup.py deleted: test/tools/ci-linux.sh modified: tox.ini
2020-06-08 22:38:22 +02:00
-mypy \
--show-error-context \
--config-file {toxinidir}/tox.ini \
2017-03-26 04:39:24 +02:00
--html-report {env:MYPYHTML}.py3.{envname} \
{posargs:{env:SSHAUDIT}}
[testenv:pylint]
deps =
mccabe
pylint
commands =
Fix tox and finally make Travis green (#29) * Ignore all flake8 warnings - one by one Without ignoring, there are by far more than 1000 linting issues. Fixing these warnings means possibly changing almost every line of code, as single warnings can effect more than one line. Doing this in one pull request is generally no good idea, and especially not now, as the test suite is currently broken. Instead of just deactivating flake8, or ignoring its exit code, the warnings are ignored one by one. This means, when one wants to work on the linting issues, one can just remove one ignored warning, and fix the problems - which is not too much work at once, and leads to an managable diff. modified: tox.ini * Unpin dependencies for mypy run ... as they could not be installed due to compilation errors. modified: tox.ini * Fix syntax error for mypy When new code was added via https://github.com/jtesta/ssh-audit/commit/af663da83811ad7c40bcd5ca411ad27ceafbc134 the type hint was moved further down and so caused a syntax error, as type hints have to follow the function declaration directly. Now, the the type linter finally works and shows 187 errors. modified: ssh-audit.py * Update .gitignore for mypy modified: .gitignore * Let tox not fail on mypy errors Currently, there are almost 200 typing related errors. Instead of letting the tox run fail, the errors are still shown, but the exit code gets ignored for now. This way one can fix them one by one - if wanted. modified: tox.ini * Let tox not fail on pylint errors Currently, there are more than 100 linting related errors. Most of them will be fixed when flake8 gets fixed. Instead of letting the tox run fail, the errors are still shown, but the exit code gets ignored for now. This way, one can fix them one by one. modified: tox.ini * Let vulture only fail on 100% confidence Vulture is a tool to find dead code. Unlike Flake8, which also finds unused imports and variables, Vulture does some guess work and finally outputs a list of possible dead code with a confidence marker. Already the first result ... "ssh-audit.py:48: unused import 'Dict' (90% confidence)" ... is a false-positive. As Flake8 also does a good job in detecting unused code, it makes not much sense to let tox fail when vulture fails. Instead of deactivating vulture, it was configured in a way to only report results with 100% confidence. modified: tox.ini * Make timeout_set optional When timeout_set was introduced in https://github.com/jtesta/ssh-audit/commit/1ec13c653e5a465d14231f875ad42c23c347b400 the tests were not updated, which instantiated the Socket class. While the commit message read "A timeout can now be specified", the code enforced a `timeout_set`. `timeout_set` now is `False` by default. modified: ssh-audit.py * Set default values for Socket's `ipvo` and `timeout` Commit https://github.com/jtesta/ssh-audit/commit/f44663bfc4a7c70f9a61a8304fd6f16d945403d8 introduced two new arguments to the Socket class, but did not update the tests, which still relied on the socket class to only require two arguments. While for `ipvo`the default of `None` is obvious, as in `__init__` it is checked for it, for `timeout` it was not that obvious. Luckily, in the README a default of 5 (seconds) is mentioned. modified: ssh-audit.py * Un-comment exception handling While working on commit https://github.com/jtesta/ssh-audit/commit/fd3a1f7d4171636f79384bc8c74e1248d9c82a66 possibly it was forgotten to undo the commenting of the exception handling for the case, when the Socket class was instantiated with a missing `host` argument. This broke the `test_invalid_host` test. modified: ssh-audit.py * Skip `test_ssh2_server_simple` temporarily After fixing all the other tests and make tox run again, there is one failing test left, which unfortunately is not super easy to fix without further research (at least not for me). I marked `test_ssh2_server_simple` to be skipped in test runs (temporarily), so at least, when working on new features, there is working test suite, now. modified: test/test_ssh2.py * Do not pin pytest and coverage version ... but do use pytest < 6, as this version will have a breaking change with junit/Jenkins integration Also see https://github.com/jtesta/ssh-audit/issues/34 * Drop unsupported Python versions ... except Python 2.7, as this will need also changes to the source code, and this pull request is already big enough. Also, support for Python 3.8 was added. The Travis configuration was simplified a lot, by leveraging the tox configuration. Also, the mac builds have been dropped, as they all took almost an hour each, they failed and I have no experience on how to fix them. The `appveyor` build only has been updated to reflect the updated Python versions, as I have no access to the status page and no experience with this build environment. Also, removed call to `coveralls`, which seems to be a leftover from the old repository. modified: .appveyor.yml modified: .travis.yml modified: packages/setup.py deleted: test/tools/ci-linux.sh modified: tox.ini
2020-06-08 22:38:22 +02:00
-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 fixes (#35) * 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
2020-06-09 23:54:07 +02:00
flake8 {posargs:{env:SSHAUDIT} {toxinidir}/packages/setup.py {toxinidir}/test} --statistics
[testenv:vulture]
2017-03-26 04:39:24 +02:00
deps =
vulture
commands =
python -c "import sys; from subprocess import Popen, PIPE; \
Fix tox and finally make Travis green (#29) * Ignore all flake8 warnings - one by one Without ignoring, there are by far more than 1000 linting issues. Fixing these warnings means possibly changing almost every line of code, as single warnings can effect more than one line. Doing this in one pull request is generally no good idea, and especially not now, as the test suite is currently broken. Instead of just deactivating flake8, or ignoring its exit code, the warnings are ignored one by one. This means, when one wants to work on the linting issues, one can just remove one ignored warning, and fix the problems - which is not too much work at once, and leads to an managable diff. modified: tox.ini * Unpin dependencies for mypy run ... as they could not be installed due to compilation errors. modified: tox.ini * Fix syntax error for mypy When new code was added via https://github.com/jtesta/ssh-audit/commit/af663da83811ad7c40bcd5ca411ad27ceafbc134 the type hint was moved further down and so caused a syntax error, as type hints have to follow the function declaration directly. Now, the the type linter finally works and shows 187 errors. modified: ssh-audit.py * Update .gitignore for mypy modified: .gitignore * Let tox not fail on mypy errors Currently, there are almost 200 typing related errors. Instead of letting the tox run fail, the errors are still shown, but the exit code gets ignored for now. This way one can fix them one by one - if wanted. modified: tox.ini * Let tox not fail on pylint errors Currently, there are more than 100 linting related errors. Most of them will be fixed when flake8 gets fixed. Instead of letting the tox run fail, the errors are still shown, but the exit code gets ignored for now. This way, one can fix them one by one. modified: tox.ini * Let vulture only fail on 100% confidence Vulture is a tool to find dead code. Unlike Flake8, which also finds unused imports and variables, Vulture does some guess work and finally outputs a list of possible dead code with a confidence marker. Already the first result ... "ssh-audit.py:48: unused import 'Dict' (90% confidence)" ... is a false-positive. As Flake8 also does a good job in detecting unused code, it makes not much sense to let tox fail when vulture fails. Instead of deactivating vulture, it was configured in a way to only report results with 100% confidence. modified: tox.ini * Make timeout_set optional When timeout_set was introduced in https://github.com/jtesta/ssh-audit/commit/1ec13c653e5a465d14231f875ad42c23c347b400 the tests were not updated, which instantiated the Socket class. While the commit message read "A timeout can now be specified", the code enforced a `timeout_set`. `timeout_set` now is `False` by default. modified: ssh-audit.py * Set default values for Socket's `ipvo` and `timeout` Commit https://github.com/jtesta/ssh-audit/commit/f44663bfc4a7c70f9a61a8304fd6f16d945403d8 introduced two new arguments to the Socket class, but did not update the tests, which still relied on the socket class to only require two arguments. While for `ipvo`the default of `None` is obvious, as in `__init__` it is checked for it, for `timeout` it was not that obvious. Luckily, in the README a default of 5 (seconds) is mentioned. modified: ssh-audit.py * Un-comment exception handling While working on commit https://github.com/jtesta/ssh-audit/commit/fd3a1f7d4171636f79384bc8c74e1248d9c82a66 possibly it was forgotten to undo the commenting of the exception handling for the case, when the Socket class was instantiated with a missing `host` argument. This broke the `test_invalid_host` test. modified: ssh-audit.py * Skip `test_ssh2_server_simple` temporarily After fixing all the other tests and make tox run again, there is one failing test left, which unfortunately is not super easy to fix without further research (at least not for me). I marked `test_ssh2_server_simple` to be skipped in test runs (temporarily), so at least, when working on new features, there is working test suite, now. modified: test/test_ssh2.py * Do not pin pytest and coverage version ... but do use pytest < 6, as this version will have a breaking change with junit/Jenkins integration Also see https://github.com/jtesta/ssh-audit/issues/34 * Drop unsupported Python versions ... except Python 2.7, as this will need also changes to the source code, and this pull request is already big enough. Also, support for Python 3.8 was added. The Travis configuration was simplified a lot, by leveraging the tox configuration. Also, the mac builds have been dropped, as they all took almost an hour each, they failed and I have no experience on how to fix them. The `appveyor` build only has been updated to reflect the updated Python versions, as I have no access to the status page and no experience with this build environment. Also, removed call to `coveralls`, which seems to be a leftover from the old repository. modified: .appveyor.yml modified: .travis.yml modified: packages/setup.py deleted: test/tools/ci-linux.sh modified: tox.ini
2020-06-08 22:38:22 +02:00
a = ['vulture', '--min-confidence', '100'] + r'{posargs:{env:SSHAUDIT}}'.split(' '); \
o = Popen(a, shell=False, stdout=PIPE).communicate()[0]; \
2017-03-25 07:33:16 +01:00
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]
Re-enable mypy options (#43) * Convert type comments to annotations Notes: - variable annotations are only possible for Python 3.6 and upwards - class names as a result of a function have to be quoted cf https://www.python.org/dev/peps/pep-0563/#enabling-the-future-behavior-in-python-3-7 This is ongoing work for #32 modified: ssh-audit.py * Do not use variable annotation ... as this feature works only for Python 3.6 and above only. modified: ssh-audit.py * Re-enable strict_optional `None` is a valid return type for mypy, even when you specify a certain type. `strict_optional` makes sure that only the annotated return type is actually returned. modified: tox.ini * Re-enable `warn_unused_ignores` Quote from mypy docs: This flag will make mypy report an error whenever your code uses a `# type: ignore` comment on a line that is not actually generating an error message. modified: tox.ini * Re-enable `warn_return_any` Quote from the documenation: "This flag causes mypy to generate a warning when returning a value with type Any from a function declared with a non-Any return type." modified: tox.ini * Re-enable `warn_redundant_casts` Quote from the documentation: "This flag will make mypy report an error whenever your code uses an unnecessary cast that can safely be removed." modified: tox.ini * Remove `warn_incomplete_stub` ... as the documentation says "This flag is mainly intended to be used by people who want contribute to typeshed and would like a convenient way to find gaps and omissions." modified: tox.ini * Re-enable `disallow_subclassing_any` Quote from the documentation: "This flag reports an error whenever a class subclasses a value of type Any." modified: tox.ini * Re-enable `follow_imports` ... and set it to `normal`. For more information, see https://mypy.readthedocs.io/en/latest/running_mypy.html#follow-imports modified: tox.ini * Re-enable `ignore_missing_imports` Quote from the documentation: "This flag makes mypy ignore all missing imports. It is equivalent to adding # type: ignore comments to all unresolved imports within your codebase." modified: tox.ini * Fix arguments for Kex initialization `follows` has to be a boolean, but an int was provided. This worked, as in Python boolean is a subtype of int. modified: ssh-audit.py * Do not uncomment `check_untyped_defs` yet modified: tox.ini * Change KexDH.__ed25519_pubkey's default type It was initialized with 0 (int), and later it gets set with bytes. Now, it gets initialized with None, and thus gets the type Optional[bytes]. Optional means None or the named type. modified: ssh-audit.py * Fix whitespace modified: tox.ini * Add type annotation for main function modified: ssh-audit.py * Add type annotation for KexDH.set_params modified: ssh-audit.py * Add type annotation for Kex.set_rsa_key_size modified: ssh-audit.py * Add type annotation for Kex.rsa_key_sizes modified: ssh-audit.py * Add type annotation for Kex.set_dh_modulus_size modified: ssh-audit.py * Add type annotation to Kex.dh_modulus_sizes modified: ssh-audit.py * Add type annotation for Kex.set_host_key modified: ssh-audit.py * Add type annotation for Kex.host_keys modified: ssh-audit.py * Add type annotation for HostKeyTest.run modified: ssh-audit.py * Add static typing to HostKeyTest.perform_test This revealed a small oversight in the guard protecting the call to perform_test. modified: ssh-audit.py * Add type annotation for GexTest.reconnect modified: ssh-audit.py * Add type annotation for GexTest.run modified: ssh-audit.py * Add type annotation for ReadBuf.reset modified: ssh-audit.py * Add type annoation for WriteBuf.reset modified: ssh-audit.py * Add type annotation to Socket.listen_and_accept modified: ssh-audit.py * Move comment for is_connected into docstring. modified: ssh-audit.py * Add type annotation for Socket.is_connected modified: ssh-audit.py * Add type annotation for Socket.close modified: ssh-audit.py * Do not commit breakpoint modified: ssh-audit.py * Add annotations for KexDH key size handling modified: ssh-audit.py * Add type annotation for KexDH.get_ca_size modified: ssh-audit.py * Add type annotation to output_info modified: ssh-audit.py * Add type annotation for KexDH.__get_bytes modified: ssh-audit.py * Add type annotation to KexGroup14.__init__ modified: ssh-audit.py * Add type annotation for KexGroup14_SHA256.__init__ modified: ssh-audit.py * Add type annotation for KexGroup16_SHA512.__init__ modified: ssh-audit.py * Add type annotation for KexGroup18_SHA512.__init__ modified: ssh-audit.py * Add type annotation for KexCurve25519_SHA256.__init__ modified: ssh-audit.py * Add type annotation for KexNISTP256.__init__ modified: ssh-audit.py * Add type annotations to several init methods modified: ssh-audit.py * Add type annotataion for KexGroupExchange.send_init_gex modified: ssh-audit.py * Add type annotation for KexGroupExchange.__init__ modified: ssh-audit.py * Add type annotation to KexCurve25519_SHA256.send_init modified: ssh-audit.py * Add type annotation for KexNISTP256.sent_init modified: ssh-audit.py * Add type annotation for KexNISTP384.send_init modified: ssh-audit.py * Add type annotation for KexNISTP521.send_init modified: ssh-audit.py * Add type annotation for KexGroupExchange.send_init modified: ssh-audit.py * Add type annotation to KexDH.get_dh_modulus_size modified: ssh-audit.py * Delete unused variables KexDH.__f and f_len __f was initialized as int, then assigned to bytes, but never used. f_len assigned an int, but not all. modified: ssh-audit.py * Delete unused variables KexDH.__h_sig and h_sig_len modified: ssh-audit.py * Add type annotation for KexDH.__hostkey_type modified: ssh-audit.py
2020-06-28 05:54:34 +02:00
ignore_missing_imports = False
follow_imports = normal
Fix typing errors (#39) * Remove obsolete option `strict_boolean` It was removed back in 2018: https://github.com/python/mypy/pull/5740/files modified: tox.ini * Deactivate all mypy options This still leaves 47 errors, which should be fixed one by one. modified: tox.ini * Fix signature for `output` `client_host` is either a str or None. modified: ssh-audit.py * Fix return value for `output_recommendations` It is a bool, not None. modified: ssh-audit.py * Fix type comment for `output_fingerprints` modified: ssh-audit.py * Fix type comment for `output_security` modified: ssh-audit.py * Fix type comment for `output_security_sub` modified: ssh-audit.py * Fix type comment for `output_compatibility` modified: ssh-audit.py * Fix type comment for Socket.__init__ modified: ssh-audit.py * Simplify check for regex result ... which also fixes four typing errors. modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix typing errors by simplifying regex result check modified: ssh-audit.py * Fix typing errors by simplifying regex result check modified: ssh-audit.py * Fix typing errors by simplifying regex result check modified: ssh-audit.py * Fix typing errors by simplifying regex result check modified: ssh-audit.py * Fix typing errors by simplifying regex result check modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix typing errors by simplifying regex result check modified: ssh-audit.py * Fix typing errors by simplifying regex result check modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix typing error by simplifying regex result check modified: ssh-audit.py * Fix type comment for OutputBuffer.flush modified: ssh-audit.py * Fix type comments for `output_algorithms` modified: ssh-audit.py * Fix type comment for `output_algorithm` modified: ssh-audit.py * Fix type comment for KexGroup14's init method modified: ssh-audit.py * Fix type comment for KexDH's send_init modified: ssh-audit.py * Fix type comment for KexDH's init method modified: ssh-audit.py * Add explicit return value of None Now this is odd. Python has an implicit return value of None for `return`, but mypy does not infer that. modified: ssh-audit.py * Fix type error for unknown_algorithms modified: ssh-audit.py * Add type comment for Socket.__sock_map modified: ssh-audit.py * Create type comment for Kex.__host_keys modified: ssh-audit.py * Create type comment for Kex.__dh_modulus_sizes modified: ssh-audit.py * Add type comment for Kex.__rsa_key_sizes modified: ssh-audit.py * Fix type eror by adding type comment to temp variable modified: ssh-audit.py * Fix type comments for Auditconf.__setattr__ modified: ssh-audit.py * Fix type error by simplifying branch logic modified: ssh-audit.py * Do not skip type checks any more Without additional strict options, there are zero type errors (down from 47). modified: tox.ini * Annotate variables before tuple unpacking modified: ssh-audit.py * Annotate variables before unpacking modified: ssh-audit.py * Fix flake8 issues modified: ssh-audit.py
2020-06-17 04:54:39 +02:00
; disallow_untyped_calls = True
; disallow_untyped_defs = True
; check_untyped_defs = True
Re-enable mypy options (#43) * Convert type comments to annotations Notes: - variable annotations are only possible for Python 3.6 and upwards - class names as a result of a function have to be quoted cf https://www.python.org/dev/peps/pep-0563/#enabling-the-future-behavior-in-python-3-7 This is ongoing work for #32 modified: ssh-audit.py * Do not use variable annotation ... as this feature works only for Python 3.6 and above only. modified: ssh-audit.py * Re-enable strict_optional `None` is a valid return type for mypy, even when you specify a certain type. `strict_optional` makes sure that only the annotated return type is actually returned. modified: tox.ini * Re-enable `warn_unused_ignores` Quote from mypy docs: This flag will make mypy report an error whenever your code uses a `# type: ignore` comment on a line that is not actually generating an error message. modified: tox.ini * Re-enable `warn_return_any` Quote from the documenation: "This flag causes mypy to generate a warning when returning a value with type Any from a function declared with a non-Any return type." modified: tox.ini * Re-enable `warn_redundant_casts` Quote from the documentation: "This flag will make mypy report an error whenever your code uses an unnecessary cast that can safely be removed." modified: tox.ini * Remove `warn_incomplete_stub` ... as the documentation says "This flag is mainly intended to be used by people who want contribute to typeshed and would like a convenient way to find gaps and omissions." modified: tox.ini * Re-enable `disallow_subclassing_any` Quote from the documentation: "This flag reports an error whenever a class subclasses a value of type Any." modified: tox.ini * Re-enable `follow_imports` ... and set it to `normal`. For more information, see https://mypy.readthedocs.io/en/latest/running_mypy.html#follow-imports modified: tox.ini * Re-enable `ignore_missing_imports` Quote from the documentation: "This flag makes mypy ignore all missing imports. It is equivalent to adding # type: ignore comments to all unresolved imports within your codebase." modified: tox.ini * Fix arguments for Kex initialization `follows` has to be a boolean, but an int was provided. This worked, as in Python boolean is a subtype of int. modified: ssh-audit.py * Do not uncomment `check_untyped_defs` yet modified: tox.ini * Change KexDH.__ed25519_pubkey's default type It was initialized with 0 (int), and later it gets set with bytes. Now, it gets initialized with None, and thus gets the type Optional[bytes]. Optional means None or the named type. modified: ssh-audit.py * Fix whitespace modified: tox.ini * Add type annotation for main function modified: ssh-audit.py * Add type annotation for KexDH.set_params modified: ssh-audit.py * Add type annotation for Kex.set_rsa_key_size modified: ssh-audit.py * Add type annotation for Kex.rsa_key_sizes modified: ssh-audit.py * Add type annotation for Kex.set_dh_modulus_size modified: ssh-audit.py * Add type annotation to Kex.dh_modulus_sizes modified: ssh-audit.py * Add type annotation for Kex.set_host_key modified: ssh-audit.py * Add type annotation for Kex.host_keys modified: ssh-audit.py * Add type annotation for HostKeyTest.run modified: ssh-audit.py * Add static typing to HostKeyTest.perform_test This revealed a small oversight in the guard protecting the call to perform_test. modified: ssh-audit.py * Add type annotation for GexTest.reconnect modified: ssh-audit.py * Add type annotation for GexTest.run modified: ssh-audit.py * Add type annotation for ReadBuf.reset modified: ssh-audit.py * Add type annoation for WriteBuf.reset modified: ssh-audit.py * Add type annotation to Socket.listen_and_accept modified: ssh-audit.py * Move comment for is_connected into docstring. modified: ssh-audit.py * Add type annotation for Socket.is_connected modified: ssh-audit.py * Add type annotation for Socket.close modified: ssh-audit.py * Do not commit breakpoint modified: ssh-audit.py * Add annotations for KexDH key size handling modified: ssh-audit.py * Add type annotation for KexDH.get_ca_size modified: ssh-audit.py * Add type annotation to output_info modified: ssh-audit.py * Add type annotation for KexDH.__get_bytes modified: ssh-audit.py * Add type annotation to KexGroup14.__init__ modified: ssh-audit.py * Add type annotation for KexGroup14_SHA256.__init__ modified: ssh-audit.py * Add type annotation for KexGroup16_SHA512.__init__ modified: ssh-audit.py * Add type annotation for KexGroup18_SHA512.__init__ modified: ssh-audit.py * Add type annotation for KexCurve25519_SHA256.__init__ modified: ssh-audit.py * Add type annotation for KexNISTP256.__init__ modified: ssh-audit.py * Add type annotations to several init methods modified: ssh-audit.py * Add type annotataion for KexGroupExchange.send_init_gex modified: ssh-audit.py * Add type annotation for KexGroupExchange.__init__ modified: ssh-audit.py * Add type annotation to KexCurve25519_SHA256.send_init modified: ssh-audit.py * Add type annotation for KexNISTP256.sent_init modified: ssh-audit.py * Add type annotation for KexNISTP384.send_init modified: ssh-audit.py * Add type annotation for KexNISTP521.send_init modified: ssh-audit.py * Add type annotation for KexGroupExchange.send_init modified: ssh-audit.py * Add type annotation to KexDH.get_dh_modulus_size modified: ssh-audit.py * Delete unused variables KexDH.__f and f_len __f was initialized as int, then assigned to bytes, but never used. f_len assigned an int, but not all. modified: ssh-audit.py * Delete unused variables KexDH.__h_sig and h_sig_len modified: ssh-audit.py * Add type annotation for KexDH.__hostkey_type modified: ssh-audit.py
2020-06-28 05:54:34 +02:00
disallow_subclassing_any = True
warn_redundant_casts = True
warn_return_any = True
warn_unused_ignores = True
strict_optional = True
[pylint]
reports = no
#output-format = colorized
indent-string = \t
disable =
bad-continuation,
broad-except,
fixme,
invalid-name,
line-too-long,
missing-docstring,
mixed-indentation,
no-else-return,
too-complex,
too-many-branches,
too-many-instance-attributes,
too-many-lines,
too-many-locals,
too-many-boolean-expressions
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
2017-04-10 12:20:02 +02:00
ignore-long-lines = ^\s*(#\s+type:\s+.*|[A-Z0-9_]+\s+=\s+.*|('.*':\s+)?\[.*\],?|assert\s+.*)$
max-module-lines = 2500
[flake8]
ignore =
Flake8 fixes (#35) * 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
2020-06-09 23:54:07 +02:00
E241, # multiple spaces after operator; should be kept for tabular data
E501, # line too long