diff options
Diffstat (limited to 'utils')
| -rwxr-xr-x | utils/lib_sxng_test.sh | 69 | ||||
| -rwxr-xr-x | utils/lib_sxng_themes.sh | 16 |
2 files changed, 63 insertions, 22 deletions
diff --git a/utils/lib_sxng_test.sh b/utils/lib_sxng_test.sh index 895a338fa..b84852c1f 100755 --- a/utils/lib_sxng_test.sh +++ b/utils/lib_sxng_test.sh @@ -6,7 +6,7 @@ test.help(){ test.: yamllint : lint YAML files (YAMLLINT_FILES) pylint : lint ./searx, ./searxng_extra and ./tests - pyright : static type check of python sources + pyright : static type check of python sources (.dev or .ci) black : check black code format unit : run unit tests coverage : run unit tests with coverage @@ -16,6 +16,10 @@ test.: EOF } +if [ "$VERBOSE" = "1" ]; then + TEST_NOSE2_VERBOSE="-vvv" +fi + test.yamllint() { build_msg TEST "[yamllint] \$YAMLLINT_FILES" pyenv.cmd yamllint --strict --format parsable "${YAMLLINT_FILES[@]}" @@ -23,40 +27,76 @@ test.yamllint() { } test.pylint() { - # shellcheck disable=SC2086 ( set -e pyenv.activate PYLINT_OPTIONS="--rcfile .pylintrc" build_msg TEST "[pylint] ./searx/engines" + # shellcheck disable=SC2086 pylint ${PYLINT_OPTIONS} ${PYLINT_VERBOSE} \ --additional-builtins="traits,supported_languages,language_aliases,logger,categories" \ searx/engines build_msg TEST "[pylint] ./searx ./searxng_extra ./tests" + # shellcheck disable=SC2086 pylint ${PYLINT_OPTIONS} ${PYLINT_VERBOSE} \ - --ignore=searx/engines \ - searx searx/searxng.msg \ - searxng_extra searxng_extra/docs_prebuild \ - tests + --ignore=searx/engines \ + searx searx/searxng.msg \ + searxng_extra searxng_extra/docs_prebuild \ + tests ) dump_return $? } -test.pyright() { +test.types.dev() { + # use this pyright test for local tests in development / it suppress + # warnings related to intentional monkey patching but gives good hints where + # we need to work on SearXNG's typification. + # + # --> pyrightconfig.json + + build_msg TEST "[pyright/types] static type check of python sources" + build_msg TEST " --> typeCheckingMode: on" + node.env.dev + + build_msg TEST "[pyright/types] suppress warnings related to intentional monkey patching" + # We run Pyright in the virtual environment because pyright executes + # "python" to determine the Python version. + pyenv.cmd npx --no-install pyright -p pyrightconfig.json \ + | grep -E '\.py:[0-9]+:[0-9]+'\ + | grep -v '/engines/.*.py.* - warning: "logger" is not defined'\ + | grep -v '/plugins/.*.py.* - error: "logger" is not defined'\ + | grep -v '/engines/.*.py.* - warning: "supported_languages" is not defined' \ + | grep -v '/engines/.*.py.* - warning: "language_aliases" is not defined' \ + | grep -v '/engines/.*.py.* - warning: "categories" is not defined' + # ignore exit value from pyright + # dump_return ${PIPESTATUS[0]} + return 0 +} + +test.types.ci() { + # use this pyright test for CI / disables typeCheckingMode, needed as long + # we do not have fixed all typification issues. + # + # --> pyrightconfig-ci.json + build_msg TEST "[pyright] static type check of python sources" + build_msg TEST " --> typeCheckingMode: off !!!" node.env.dev - # We run Pyright in the virtual environment because Pyright - # executes "python" to determine the Python version. + build_msg TEST "[pyright] suppress warnings related to intentional monkey patching" + # We run Pyright in the virtual environment because pyright executes + # "python" to determine the Python version. pyenv.cmd npx --no-install pyright -p pyrightconfig-ci.json \ - | grep -v ".py$" \ + | grep -E '\.py:[0-9]+:[0-9]+'\ | grep -v '/engines/.*.py.* - warning: "logger" is not defined'\ | grep -v '/plugins/.*.py.* - error: "logger" is not defined'\ | grep -v '/engines/.*.py.* - warning: "supported_languages" is not defined' \ | grep -v '/engines/.*.py.* - warning: "language_aliases" is not defined' \ | grep -v '/engines/.*.py.* - warning: "categories" is not defined' - dump_return $? + # ignore exit value from pyright + # dump_return ${PIPESTATUS[0]} + return 0 } test.black() { @@ -67,7 +107,8 @@ test.black() { test.unit() { build_msg TEST 'tests/unit' - pyenv.cmd python -m nose2 -s tests/unit + # shellcheck disable=SC2086 + pyenv.cmd python -m nose2 ${TEST_NOSE2_VERBOSE} -s tests/unit dump_return $? } @@ -75,7 +116,8 @@ test.coverage() { build_msg TEST 'unit test coverage' ( set -e pyenv.activate - python -m nose2 -C --log-capture --with-coverage --coverage searx -s tests/unit + # shellcheck disable=SC2086 + python -m nose2 ${TEST_NOSE2_VERBOSE} -C --log-capture --with-coverage --coverage searx -s tests/unit coverage report coverage html ) @@ -115,4 +157,3 @@ test.clean() { rm -rf geckodriver.log .coverage coverage/ dump_return $? } - diff --git a/utils/lib_sxng_themes.sh b/utils/lib_sxng_themes.sh index 95d38ae8d..059f9c86f 100755 --- a/utils/lib_sxng_themes.sh +++ b/utils/lib_sxng_themes.sh @@ -20,7 +20,7 @@ EOF themes.all() { ( set -e - node.env + node.env themes.simple ) dump_return $? @@ -28,7 +28,7 @@ themes.all() { themes.fix() { ( set -e - node.env + node.env themes.simple.fix ) dump_return $? @@ -36,7 +36,7 @@ themes.fix() { themes.test() { ( set -e - node.env + node.env themes.simple.test ) dump_return $? @@ -68,10 +68,10 @@ themes.live() { themes.simple() { ( set -e - themes.simple.pygments - build_msg SIMPLE "theme: run build" - # "run build" includes tests from eslint and stylelint - npm --prefix searx/static/themes/simple run build + themes.simple.pygments + build_msg SIMPLE "theme: run build" + # "run build" includes tests from eslint and stylelint + npm --prefix searx/static/themes/simple run build ) dump_return $? } @@ -79,7 +79,7 @@ themes.simple() { themes.simple.pygments() { build_msg PYGMENTS "searxng_extra/update/update_pygments.py" pyenv.cmd python searxng_extra/update/update_pygments.py \ - | prefix_stdout "${_Blue}PYGMENTS ${_creset} " + | prefix_stdout "${_Blue}PYGMENTS ${_creset} " if [ "${PIPESTATUS[0]}" -ne "0" ]; then build_msg PYGMENTS "building LESS files for pygments failed" return 1 |