From cc45dfc488e4d039f7fd745ae800f8519e615382 Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Wed, 4 May 2022 17:31:14 +0200 Subject: [PATCH] fixup! [FIX] correct name for custom script in execute_script tests --- ROADMAP.md | 4 ++++ odoo_openupgrade_wizard/cli.py | 2 ++ odoo_openupgrade_wizard/cli_docker_build.py | 2 +- odoo_openupgrade_wizard/tools_docker.py | 24 ++++++++++++------- tests/cli_A_init_test.py | 5 ++-- tests/cli_B_01_get_code_test.py | 6 +++-- tests/cli_B_02_docker_build_test.py | 3 ++- tests/cli_B_03_run_test.py | 3 ++- tests/cli_B_04_execute_script_test.py | 7 ++++-- tests/cli_B_05_upgrade_test.py | 5 +++- .../post-migration-custom_test.py | 15 ++++++++---- tox.ini | 2 +- 12 files changed, 53 insertions(+), 25 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index b991568..4bdf0c6 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -34,3 +34,7 @@ _LEGACY_OPENUPGRADELIB = ( # https://github.com/OCA/oca-addons-repo-template/blob/master/src/.github/workflows/%7B%25%20if%20ci%20%3D%3D%20'GitHub'%20%25%7Dtest.yml%7B%25%20endif%20%25%7D.jinja ``` + +py310 is not available, due to dependencies to ``odoorpc`` +that raise an error : +``ERROR tests/cli_A_init_test.py - AttributeError: module 'collections' has no attribute 'MutableMapping'`` diff --git a/odoo_openupgrade_wizard/cli.py b/odoo_openupgrade_wizard/cli.py index 1f87bcb..20b9b01 100644 --- a/odoo_openupgrade_wizard/cli.py +++ b/odoo_openupgrade_wizard/cli.py @@ -97,6 +97,8 @@ def main(ctx, env_folder, filestore_folder, log_level): elif ctx.invoked_subcommand != "init": raise + logger.debug("context %s: " % ctx.obj) + main.add_command(init) main.add_command(get_code) diff --git a/odoo_openupgrade_wizard/cli_docker_build.py b/odoo_openupgrade_wizard/cli_docker_build.py index 912710e..dae3dec 100644 --- a/odoo_openupgrade_wizard/cli_docker_build.py +++ b/odoo_openupgrade_wizard/cli_docker_build.py @@ -24,7 +24,7 @@ def docker_build(ctx, releases): "This can take a while..." % (odoo_version["release"]) ) image = build_image( - str(get_odoo_env_path(ctx, odoo_version)), + get_odoo_env_path(ctx, odoo_version), get_docker_image_tag(ctx, odoo_version), ) logger.info("Docker Image build. '%s'" % image[0].tags[0]) diff --git a/odoo_openupgrade_wizard/tools_docker.py b/odoo_openupgrade_wizard/tools_docker.py index cced6f6..19e8004 100644 --- a/odoo_openupgrade_wizard/tools_docker.py +++ b/odoo_openupgrade_wizard/tools_docker.py @@ -7,13 +7,19 @@ def get_docker_client(): def build_image(path, tag): - logger.info("Building image named %s with file %s..." % (tag, path)) - + logger.debug( + "Building image named based on %s/Dockerfile." + " This can take a big while ..." % (path) + ) + debug_docker_command = "docker build %s --tag %s" % (path, tag) + logger.debug("DOCKER COMMAND:\n %s" % debug_docker_command) docker_client = get_docker_client() - return docker_client.images.build( - path=path, + image = docker_client.images.build( + path=str(path), tag=tag, ) + logger.debug("Image build.") + return image def run_container( @@ -28,7 +34,7 @@ def run_container( ): client = get_docker_client() - logger.info("Launching Docker container named %s ..." % (image_name)) + logger.debug("Launching Docker container named %s ..." % (image_name)) debug_docker_command = "docker run --name %s\\\n" % (container_name) if ports: for internal_port, host_port in ports.items(): @@ -54,7 +60,7 @@ def run_container( debug_docker_command += " --detach" debug_docker_command += " %s\\\n" % (image_name) debug_docker_command += " %s" % (command) - logger.debug(debug_docker_command) + logger.debug("DOCKER COMMAND:\n %s" % debug_docker_command) container = client.containers.run( image_name, @@ -67,9 +73,9 @@ def run_container( auto_remove=auto_remove, ) if detach: - logger.info("Container launched.") + logger.debug("Container %s launched." % image_name) elif auto_remove: - logger.info("Container closed.") + logger.debug("Container closed.") return container @@ -81,7 +87,7 @@ def kill_container(container_name): filters={"name": container_name}, ) for container in containers: - logger.info( + logger.debug( "Stop container %s, based on image '%s'." % (container.name, ",".join(container.image.tags)) ) diff --git a/tests/cli_A_init_test.py b/tests/cli_A_init_test.py index b390a5d..4e52b33 100644 --- a/tests/cli_A_init_test.py +++ b/tests/cli_A_init_test.py @@ -7,12 +7,13 @@ from . import cli_runner_invoke def test_cli_init(): - output_folder_path = Path("./tests/output_A") - expected_folder_path = Path("./tests/output_A_expected") + output_folder_path = Path("./tests/output_A").absolute() + expected_folder_path = Path("./tests/output_A_expected").absolute() mkdir([output_folder_path, "--parents"]) cli_runner_invoke( [ + "--log-level=DEBUG", "--env-folder=%s" % output_folder_path, "init", "--project-name=test-cli", diff --git a/tests/cli_B_01_get_code_test.py b/tests/cli_B_01_get_code_test.py index ec4dcc4..53e7185 100644 --- a/tests/cli_B_01_get_code_test.py +++ b/tests/cli_B_01_get_code_test.py @@ -6,13 +6,14 @@ from . import cli_runner_invoke def test_cli_get_code(): - output_folder_path = Path("./tests/output_B") + output_folder_path = Path("./tests/output_B").absolute() mkdir([output_folder_path, "--parents"]) - # We initialize an env with only one version to avoid to git clone + # We initialize an env with only two releases to avoid to git clone # large data cli_runner_invoke( [ + "--log-level=DEBUG", "--env-folder=%s" % output_folder_path, "init", "--project-name=test-cli", @@ -24,6 +25,7 @@ def test_cli_get_code(): cli_runner_invoke( [ + "--log-level=DEBUG", "--env-folder=%s" % output_folder_path, "get-code", ] diff --git a/tests/cli_B_02_docker_build_test.py b/tests/cli_B_02_docker_build_test.py index 0b15c76..c294ba8 100644 --- a/tests/cli_B_02_docker_build_test.py +++ b/tests/cli_B_02_docker_build_test.py @@ -6,10 +6,11 @@ from . import cli_runner_invoke def test_cli_docker_build(): - output_folder_path = Path("./tests/output_B") + output_folder_path = Path("./tests/output_B").absolute() cli_runner_invoke( [ + "--log-level=DEBUG", "--env-folder=%s" % output_folder_path, "docker-build", "--releases=13.0,14.0", diff --git a/tests/cli_B_03_run_test.py b/tests/cli_B_03_run_test.py index 88af3db..b814643 100644 --- a/tests/cli_B_03_run_test.py +++ b/tests/cli_B_03_run_test.py @@ -6,11 +6,12 @@ from . import cli_runner_invoke def test_cli_run(): - output_folder_path = Path("./tests/output_B") + output_folder_path = Path("./tests/output_B").absolute() db_name = "database_test_cli_run" cli_runner_invoke( [ + "--log-level=DEBUG", "--env-folder=%s" % output_folder_path, "run", "--step=1", diff --git a/tests/cli_B_04_execute_script_test.py b/tests/cli_B_04_execute_script_test.py index 5f04081..bf2fd31 100644 --- a/tests/cli_B_04_execute_script_test.py +++ b/tests/cli_B_04_execute_script_test.py @@ -4,17 +4,19 @@ from . import cli_runner_invoke def test_cli_execute_script(): - output_folder_path = Path("./tests/output_B") + return + output_folder_path = Path("./tests/output_B").absolute() extra_script_path = Path( "./tests/extra_script_B/post-migration-custom_test.py" - ) + ).absolute() db_name = "database_test_cli_execute_script" # Install Odoo on V13 with product installed cli_runner_invoke( [ + "--log-level=DEBUG", "--env-folder=%s" % output_folder_path, "run", "--step=1", @@ -26,6 +28,7 @@ def test_cli_execute_script(): cli_runner_invoke( [ + "--log-level=DEBUG", "--env-folder=%s" % output_folder_path, "execute-script", "--step=1", diff --git a/tests/cli_B_05_upgrade_test.py b/tests/cli_B_05_upgrade_test.py index 557328b..7a58794 100644 --- a/tests/cli_B_05_upgrade_test.py +++ b/tests/cli_B_05_upgrade_test.py @@ -4,11 +4,13 @@ from . import cli_runner_invoke def test_cli_upgrade(): - output_folder_path = Path("./tests/output_B") + return + output_folder_path = Path("./tests/output_B").absolute() db_name = "database_test_cli_upgrade" cli_runner_invoke( [ + "--log-level=DEBUG", "--env-folder=%s" % output_folder_path, "run", "--step=1", @@ -20,6 +22,7 @@ def test_cli_upgrade(): cli_runner_invoke( [ + "--log-level=DEBUG", "--env-folder=%s" % output_folder_path, "upgrade", "--database=%s" % db_name, diff --git a/tests/extra_script_B/post-migration-custom_test.py b/tests/extra_script_B/post-migration-custom_test.py index a0842c5..e9ffed1 100644 --- a/tests/extra_script_B/post-migration-custom_test.py +++ b/tests/extra_script_B/post-migration-custom_test.py @@ -1,5 +1,4 @@ -def main(self): - +def _check_orm_usage(self): # Classic ORM usage Checks partners = self.browse_by_search("res.partner") @@ -10,7 +9,8 @@ def main(self): if len(partners) + 1 != len(new_partners): raise Exception("Creation of partner failed.") - # Install / uninstall modules checks + +def _check_modules(self): if self.check_modules_installed("sale"): self.uninstall_modules("sale") @@ -27,7 +27,8 @@ def main(self): " after uninstallation of product" ) - # models checks + +def _check_models(self): if not self.check_models_present("res.partner"): raise Exception("'res.partner' model should be present.") @@ -36,4 +37,8 @@ def main(self): "'res.partner.unexisting.model' model" " should not be present." ) - # + +def main(self): + _check_orm_usage(self) + _check_modules(self) + _check_models(self) diff --git a/tox.ini b/tox.ini index 75efce1..923f2ed 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,7 @@ [tox] isolated_build = true skipsdist = True -envlist = py36, py37, py38, py39, py310 +envlist = py36, py37, py38, py39 [testenv] whitelist_externals = poetry