[ADD] make test

This commit is contained in:
Mathieu Benoit 2021-06-27 00:22:22 -04:00
parent 1aa967fb6f
commit 76a9a61b1e
15 changed files with 244 additions and 43 deletions

102
Makefile
View file

@ -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
./.venv/multilang_md.py $(shell pwd)/doc/CODE_GENERATOR.base.md

View file

@ -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
```

View file

@ -1,3 +0,0 @@
#!/usr/bin/env bash
./run.sh --no-http --stop-after-init -d $1 -i $2 -u $2
echo ""

View file

@ -1,3 +0,0 @@
#!/usr/bin/env bash
./uninstall_addon.sh $1 $2
./install_addon.sh $1 $2

5
run.sh
View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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