summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rwxr-xr-xutils/lib_sxng_test.sh69
-rwxr-xr-xutils/lib_sxng_themes.sh16
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