From 76a9a61b1e6b5994805b62dba9481b818749753f Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sun, 27 Jun 2021 00:22:22 -0400 Subject: [PATCH] [ADD] make test --- Makefile | 102 +++++++++++------- README.md | 6 ++ install_addon.sh | 3 - reinstall_addon.sh | 3 - run.sh | 5 + script/addons/install_addons.sh | 7 ++ script/addons/reinstall_addons.sh | 8 ++ .../addons/uninstall_addons.sh | 0 .../check_git_change_code_generator.sh | 100 +++++++++++++++++ .../install_and_test_code_generator.sh | 25 +++++ script/maintenance/autopep8.sh | 7 +- script/maintenance/black.sh | 5 + script/maintenance/prettier.sh | 5 + script/maintenance/prettier_xml.sh | 5 + script/poetry_add_build_dependency.sh | 6 ++ 15 files changed, 244 insertions(+), 43 deletions(-) delete mode 100755 install_addon.sh delete mode 100755 reinstall_addon.sh create mode 100755 script/addons/install_addons.sh create mode 100755 script/addons/reinstall_addons.sh rename uninstall_addon.sh => script/addons/uninstall_addons.sh (100%) create mode 100755 script/code_generator/check_git_change_code_generator.sh create mode 100755 script/code_generator/install_and_test_code_generator.sh diff --git a/Makefile b/Makefile index 5cafcd7..d9f2062 100644 --- a/Makefile +++ b/Makefile @@ -46,6 +46,7 @@ run_test: .PHONY: run_code_generator run_code_generator: echo http://localhost:8069 + # -$(BROWSER) http://localhost:8069 ./run.sh --database code_generator ############# @@ -141,69 +142,98 @@ db_restore_erplibre_base_db_template: ######################### # Addons installation # ######################### +.PHONY: addons_install_code_generator_basic +addons_install_code_generator_basic: db_restore_erplibre_base_db_code_generator + ./script/addons/install_addons.sh code_generator code_generator + +.PHONY: addons_install_code_generator_featured +addons_install_code_generator_featured: addons_install_code_generator_basic + ./script/addons/install_addons.sh code_generator code_generator_cron,code_generator_hook,code_generator_portal + +.PHONY: addons_install_code_generator_full +addons_install_code_generator_full: addons_install_code_generator_featured + ./script/addons/install_addons.sh code_generator code_generator_db_servers,code_generator_website_snippet,code_generator_geoengine,code_generator_theme_website,code_generator_website_leaflet + .PHONY: addons_install_code_generator_demo addons_install_code_generator_demo: - ./install_addon.sh code_generator code_generator_demo + ./script/addons/install_addons.sh code_generator code_generator_demo .PHONY: addons_uninstall_code_generator_demo addons_uninstall_code_generator_demo: - ./uninstall_addon.sh code_generator code_generator_demo + ./script/addons/uninstall_addons.sh code_generator code_generator_demo .PHONY: addons_reinstall_code_generator_demo addons_reinstall_code_generator_demo: addons_uninstall_code_generator_demo addons_install_code_generator_demo .PHONY: addons_install_all_code_generator_demo -addons_install_all_code_generator_demo: - ./install_addon.sh code_generator code_generator_demo - ./install_addon.sh code_generator code_generator_demo_export_helpdesk - ./install_addon.sh code_generator code_generator_demo_internal - ./install_addon.sh code_generator code_generator_demo_portal - ./install_addon.sh code_generator code_generator_demo_theme_website - ./install_addon.sh code_generator code_generator_demo_website_leaflet - ./install_addon.sh code_generator code_generator_demo_website_snippet +addons_install_all_code_generator_demo: db_restore_erplibre_base_db_code_generator + ./script/addons/install_addons.sh code_generator code_generator_demo + ./script/addons/install_addons.sh code_generator code_generator_demo_export_helpdesk + ./script/addons/install_addons.sh code_generator code_generator_demo_internal + ./script/addons/install_addons.sh code_generator code_generator_demo_portal + ./script/addons/install_addons.sh code_generator code_generator_demo_theme_website + ./script/addons/install_addons.sh code_generator code_generator_demo_website_leaflet + ./script/addons/install_addons.sh code_generator code_generator_demo_website_snippet .PHONY: addons_install_all_code_generator_template addons_install_all_code_generator_template: - ./install_addon.sh template demo_portal,auto_backup - ./install_addon.sh template code_generator_template_demo_portal - ./install_addon.sh template code_generator_template_demo_sysadmin_cron + ./script/addons/install_addons.sh template demo_portal,auto_backup + ./script/addons/install_addons.sh template code_generator_template_demo_portal code_generator_template_demo_sysadmin_cron .PHONY: addons_install_all_generated_demo addons_install_all_generated_demo: - ./install_addon.sh template demo_export_helpdesk,demo_internal,demo_portal,demo_website_leaflet,demo_website_snippet + ./script/addons/install_addons.sh template demo_export_helpdesk,demo_internal,demo_portal,demo_website_leaflet,demo_website_snippet # TODO support installation theme with cli - #./install_addon.sh template theme_website_demo_code_generator + #./script/addons/install_addons.sh template theme_website_demo_code_generator .PHONY: addons_install_all_code_generator addons_install_all_code_generator: - ./install_addon.sh code_generator code_generator_auto_backup + ./script/addons/install_addons.sh code_generator code_generator_auto_backup ########## # test # ########## +.PHONY: test +test: test_format test_code_generator_generation test_code_generator_generation_extra test_code_generator_code_i18n test_code_generator_code_i18n_extra + +.PHONY: test_format +test_format: + ./script/maintenance/black.sh --check ./addons/TechnoLibre_odoo-code-generator/ + ./script/maintenance/black.sh --check ./addons/TechnoLibre_odoo-code-generator-template/ + .PHONY: test_code_generator_generation -test_code_generator_generation: db_restore_erplibre_base_db_code_generator addons_install_all_code_generator_demo clean_code_generator_template - ./script/maintenance/black.sh ./addons/TechnoLibre_odoo-code-generator-template/ +test_code_generator_generation: + ./script/code_generator/check_git_change_code_generator.sh ./addons/TechnoLibre_odoo-code-generator-template + time ./script/db_restore.py --database code_generator + ./script/code_generator/install_and_test_code_generator.sh code_generator code_generator_demo ./addons/TechnoLibre_odoo-code-generator-template + ./script/code_generator/install_and_test_code_generator.sh code_generator code_generator_demo_export_helpdesk ./addons/TechnoLibre_odoo-code-generator-template + ./script/code_generator/install_and_test_code_generator.sh code_generator code_generator_demo_internal ./addons/TechnoLibre_odoo-code-generator-template + ./script/code_generator/install_and_test_code_generator.sh code_generator code_generator_demo_portal ./addons/TechnoLibre_odoo-code-generator-template + ./script/code_generator/install_and_test_code_generator.sh code_generator code_generator_demo_theme_website ./addons/TechnoLibre_odoo-code-generator-template + ./script/code_generator/install_and_test_code_generator.sh code_generator code_generator_demo_website_leaflet ./addons/TechnoLibre_odoo-code-generator-template + ./script/code_generator/install_and_test_code_generator.sh code_generator code_generator_demo_website_snippet ./addons/TechnoLibre_odoo-code-generator-template -.PHONY: test_code_generator_generation_other -test_code_generator_generation_other: db_restore_erplibre_base_db_code_generator addons_install_all_code_generator clean_code_generator_template - -.PHONY: test_code_generator_template -test_code_generator_template: db_restore_erplibre_base_db_template addons_install_all_code_generator_template clean_code_generator_template - ./script/maintenance/black.sh ./addons/TechnoLibre_odoo-code-generator-template/ - -.PHONY: test_code_generator_demo -test_code_generator_demo: db_restore_erplibre_base_db_template addons_install_all_generated_demo clean_code_generator_template - -.PHONY: test_code_generator_code -test_code_generator_code: clean_test - ./script/make.sh test_code_generator_template - ./script/make.sh test_code_generator_generation_other +.PHONY: test_code_generator_generation_extra +test_code_generator_generation_extra: + ./script/code_generator/check_git_change_code_generator.sh ./addons/OCA_server-tools/auto_backup + time ./script/db_restore.py --database code_generator + ./script/code_generator/install_and_test_code_generator.sh code_generator code_generator_auto_backup ./addons/OCA_server-tools/auto_backup .PHONY: test_code_generator_code_i18n -test_code_generator_code_i18n: test_code_generator_code - ./script/make.sh test_code_generator_template - ./script/make.sh clean_code_generator_template +test_code_generator_code_i18n: + ./script/code_generator/check_git_change_code_generator.sh ./addons/TechnoLibre_odoo-code-generator-template + time ./script/db_restore.py --database template + ./script/addons/install_addons.sh template demo_portal + ./script/code_generator/install_and_test_code_generator.sh template code_generator_template_demo_portal ./addons/TechnoLibre_odoo-code-generator-template + +.PHONY: test_code_generator_code_i18n_extra +test_code_generator_code_i18n_extra: + ./script/code_generator/check_git_change_code_generator.sh ./addons/OCA_server-tools/auto_backup + time ./script/db_restore.py --database template + ./script/addons/install_addons.sh template auto_backup + ./script/code_generator/install_and_test_code_generator.sh template code_generator_template_demo_sysadmin_cron ./addons/TechnoLibre_odoo-code-generator-template + # To support i18n in auto_backup + ./script/code_generator/check_git_change_code_generator.sh ./addons/OCA_server-tools/auto_backup ############## # terminal # @@ -393,4 +423,4 @@ doc_clean_user: # documentation markdown .PHONY: doc_markdown doc_markdown: - ./.venv/multilang_md.py $(shell pwd)/doc/CODE_GENERATOR.base.md \ No newline at end of file + ./.venv/multilang_md.py $(shell pwd)/doc/CODE_GENERATOR.base.md diff --git a/README.md b/README.md index 3c25608..747d535 100644 --- a/README.md +++ b/README.md @@ -35,3 +35,9 @@ make run # git-repo To change repository like addons, see [GIT_REPO.md](doc/GIT_REPO.md) + +# Test +Execute ERPLibre test with his code generator. +```bash +time make test +``` diff --git a/install_addon.sh b/install_addon.sh deleted file mode 100755 index 697e520..0000000 --- a/install_addon.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash -./run.sh --no-http --stop-after-init -d $1 -i $2 -u $2 -echo "" diff --git a/reinstall_addon.sh b/reinstall_addon.sh deleted file mode 100755 index 8e420d4..0000000 --- a/reinstall_addon.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash -./uninstall_addon.sh $1 $2 -./install_addon.sh $1 $2 diff --git a/run.sh b/run.sh index 962ef3e..67d8bb3 100755 --- a/run.sh +++ b/run.sh @@ -1,3 +1,8 @@ #!/usr/bin/env bash source ./.venv/bin/activate python3 ./odoo/odoo-bin -c ./config.conf --limit-time-real 99999 --limit-time-cpu 99999 $@ +retVal=$? +if [[ $retVal -ne 0 ]]; then + echo "Error run.sh" + exit 1 +fi diff --git a/script/addons/install_addons.sh b/script/addons/install_addons.sh new file mode 100755 index 0000000..5c684c2 --- /dev/null +++ b/script/addons/install_addons.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +./run.sh --no-http --stop-after-init -d $1 -i $2 -u $2 +retVal=$? +if [[ $retVal -ne 0 ]]; then + echo "Error install_addons.sh" + exit 1 +fi diff --git a/script/addons/reinstall_addons.sh b/script/addons/reinstall_addons.sh new file mode 100755 index 0000000..4035d72 --- /dev/null +++ b/script/addons/reinstall_addons.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +./script/addons/uninstall_addons.sh $1 $2 +./script/addons/install_addons.sh $1 $2 +retVal=$? +if [[ $retVal -ne 0 ]]; then + echo "Error reinstall_addons.sh" + exit 1 +fi diff --git a/uninstall_addon.sh b/script/addons/uninstall_addons.sh similarity index 100% rename from uninstall_addon.sh rename to script/addons/uninstall_addons.sh diff --git a/script/code_generator/check_git_change_code_generator.sh b/script/code_generator/check_git_change_code_generator.sh new file mode 100755 index 0000000..f0c5e69 --- /dev/null +++ b/script/code_generator/check_git_change_code_generator.sh @@ -0,0 +1,100 @@ +#!/usr/bin/env bash +# REF: https://stackoverflow.com/a/28938235 +# Reset +Color_Off='\033[0m' # Text Reset + +# Regular Colors +Black='\033[0;30m' # Black +Red='\033[0;31m' # Red +Green='\033[0;32m' # Green +Yellow='\033[0;33m' # Yellow +Blue='\033[0;34m' # Blue +Purple='\033[0;35m' # Purple +Cyan='\033[0;36m' # Cyan +White='\033[0;37m' # White + +# Bold +BBlack='\033[1;30m' # Black +BRed='\033[1;31m' # Red +BGreen='\033[1;32m' # Green +BYellow='\033[1;33m' # Yellow +BBlue='\033[1;34m' # Blue +BPurple='\033[1;35m' # Purple +BCyan='\033[1;36m' # Cyan +BWhite='\033[1;37m' # White + +# Underline +UBlack='\033[4;30m' # Black +URed='\033[4;31m' # Red +UGreen='\033[4;32m' # Green +UYellow='\033[4;33m' # Yellow +UBlue='\033[4;34m' # Blue +UPurple='\033[4;35m' # Purple +UCyan='\033[4;36m' # Cyan +UWhite='\033[4;37m' # White + +# Background +On_Black='\033[40m' # Black +On_Red='\033[41m' # Red +On_Green='\033[42m' # Green +On_Yellow='\033[43m' # Yellow +On_Blue='\033[44m' # Blue +On_Purple='\033[45m' # Purple +On_Cyan='\033[46m' # Cyan +On_White='\033[47m' # White + +# High Intensity +IBlack='\033[0;90m' # Black +IRed='\033[0;91m' # Red +IGreen='\033[0;92m' # Green +IYellow='\033[0;93m' # Yellow +IBlue='\033[0;94m' # Blue +IPurple='\033[0;95m' # Purple +ICyan='\033[0;96m' # Cyan +IWhite='\033[0;97m' # White + +# Bold High Intensity +BIBlack='\033[1;90m' # Black +BIRed='\033[1;91m' # Red +BIGreen='\033[1;92m' # Green +BIYellow='\033[1;93m' # Yellow +BIBlue='\033[1;94m' # Blue +BIPurple='\033[1;95m' # Purple +BICyan='\033[1;96m' # Cyan +BIWhite='\033[1;97m' # White + +# High Intensity backgrounds +On_IBlack='\033[0;100m' # Black +On_IRed='\033[0;101m' # Red +On_IGreen='\033[0;102m' # Green +On_IYellow='\033[0;103m' # Yellow +On_IBlue='\033[0;104m' # Blue +On_IPurple='\033[0;105m' # Purple +On_ICyan='\033[0;106m' # Cyan +On_IWhite='\033[0;107m' # White + +# TODO support argument to test only specified path + +check_git() { + REP=$1 + cd ${REP} + + output=$(git status --porcelain) + if [ -z "$output" ]; then + echo "PASS - ${REP}" + else + echo -e "${Red}FAIL - ${REP}${Color_Off}" + echo -e "${BRed}${output}${Color_Off}" + cd - >/dev/null + exit 1 + fi + + cd - >/dev/null +} + +if [ $# -gt 0 ]; then + check_git "$1" +else + # check_git "./addons/TechnoLibre_odoo-code-generator" + check_git "./addons/TechnoLibre_odoo-code-generator-template" +fi diff --git a/script/code_generator/install_and_test_code_generator.sh b/script/code_generator/install_and_test_code_generator.sh new file mode 100755 index 0000000..9290906 --- /dev/null +++ b/script/code_generator/install_and_test_code_generator.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +# $1 is database name +# $2 is module name +# $3 is directory path to check + +./script/addons/install_addons.sh $1 $2 +retVal=$? +if [[ $retVal -ne 0 ]]; then + echo "Error ./script/addons/install_addons.sh ${1} ${2}" + exit 1 +fi +./script/repo_revert_git_diff_date_from_code_generator.py +# Remove pot and po diff +cd $3 +BRANCH=$(git branch --show-current) +git restore --source="${BRANCH}" "*.po*" +cd - +./script/maintenance/black.sh $3 +echo "TEST ${2}" +./script/code_generator/check_git_change_code_generator.sh $3 +retVal=$? +if [[ $retVal -ne 0 ]]; then + echo "Error ./script/code_generator/check_git_change_code_generator.sh" + exit 1 +fi diff --git a/script/maintenance/autopep8.sh b/script/maintenance/autopep8.sh index 9a3d506..7042148 100755 --- a/script/maintenance/autopep8.sh +++ b/script/maintenance/autopep8.sh @@ -3,4 +3,9 @@ # argument 1: directory or file to format NPROC=$(nproc) source ./script/OCA_maintainer-tools/env/bin/activate -oca-autopep8 -j ${NPROC} --max-line-length 100 -ari $@ +oca-autopep8 -j ${NPROC} --max-line-length 79 -ari $@ +retVal=$? +if [[ $retVal -ne 0 ]]; then + echo "Error oca-autopep8 format" + exit 1 +fi diff --git a/script/maintenance/black.sh b/script/maintenance/black.sh index d0811c1..357531b 100755 --- a/script/maintenance/black.sh +++ b/script/maintenance/black.sh @@ -3,3 +3,8 @@ # argument 1: directory or file to format source ./.venv/bin/activate black -l 79 --experimental-string-processing -t py37 $@ +retVal=$? +if [[ $retVal -ne 0 ]]; then + echo "Error black format" + exit 1 +fi diff --git a/script/maintenance/prettier.sh b/script/maintenance/prettier.sh index 38c5fbe..b7f22c3 100755 --- a/script/maintenance/prettier.sh +++ b/script/maintenance/prettier.sh @@ -2,3 +2,8 @@ # This will format all js,css,html # argument 1: directory or file to format prettier --write $@ +retVal=$? +if [[ $retVal -ne 0 ]]; then + echo "Error prettier format" + exit 1 +fi diff --git a/script/maintenance/prettier_xml.sh b/script/maintenance/prettier_xml.sh index d29771b..85237e8 100755 --- a/script/maintenance/prettier_xml.sh +++ b/script/maintenance/prettier_xml.sh @@ -2,3 +2,8 @@ # This will format all xml # argument 1: directory or file to format prettier --xml-whitespace-sensitivity "ignore" --prose-wrap always --tab-width 4 --no-bracket-spacing --print-width 120 --write $@ +retVal=$? +if [[ $retVal -ne 0 ]]; then + echo "Error prettier format" + exit 1 +fi diff --git a/script/poetry_add_build_dependency.sh b/script/poetry_add_build_dependency.sh index ed6c928..163820a 100755 --- a/script/poetry_add_build_dependency.sh +++ b/script/poetry_add_build_dependency.sh @@ -3,3 +3,9 @@ source $HOME/.poetry/env poetry add -vv $(grep -v ";" ./.venv/build_dependency.txt | grep -v "*" ) # poetry add -vv $(grep -v ";" ./.venv/build_dependency.txt | grep -v "*" | sed 's/==/@^/' ) # poetry export -f ./.venv/build_dependency.txt --dev | poetry run -- pip install -r /dev/stdin +retVal=$? +if [[ $retVal -ne 0 ]]; then + echo "Error ./script/poetry_add_build_dependency.sh" + cat ./.venv/build_dependency.txt + exit 1 +fi