[ADD] test for generate-module-analysis command

This commit is contained in:
Sylvain LE GAL 2022-05-06 20:59:16 +02:00
parent 8963b3ec59
commit c7bf8bffc3
4 changed files with 63 additions and 3 deletions

View File

@ -12,8 +12,13 @@ from odoo_openupgrade_wizard.configuration_version_dependant import (
get_installable_odoo_modules,
get_upgrade_analysis_module,
)
from odoo_openupgrade_wizard.tools_odoo import kill_odoo, run_odoo
from odoo_openupgrade_wizard.tools_odoo import (
get_odoo_env_path,
kill_odoo,
run_odoo,
)
from odoo_openupgrade_wizard.tools_odoo_instance import OdooInstance
from odoo_openupgrade_wizard.tools_system import ensure_folder_writable
@click.command()
@ -121,6 +126,13 @@ def generate_module_analysis(ctx, step, database, modules):
final_instance.install_modules(final_modules)
generate_records(final_instance, final_step)
# Make writable files and directories for "other"
# group to make possible to write analysis files
# for docker container user
ensure_folder_writable(
get_odoo_env_path(ctx, {"release": final_step["release"]}) / "src"
)
generate_analysis_files(
final_instance,
final_step,

View File

@ -200,7 +200,6 @@ def generate_analysis_files(
)
logger.info("> Create wizard ...")
wizard = final_odoo_instance.browse_by_create(
"openupgrade.analysis.wizard",
{
@ -216,6 +215,7 @@ def generate_analysis_files(
proxy = final_odoo_instance.browse_by_create(
"upgrade.comparison.config", proxy_vals
)
logger.info("> Create wizard ...")
analysis = final_odoo_instance.browse_by_create(
"upgrade.analysis",
@ -223,5 +223,6 @@ def generate_analysis_files(
"config_id": proxy.id,
},
)
logger.info("> Launch analysis. This can take a while ...")
analysis.analyze()

View File

@ -6,7 +6,8 @@ from git_aggregator import main as gitaggregate_cmd
from git_aggregator.utils import working_directory_keeper
from jinja2 import Template
from loguru import logger
from plumbum.cmd import mkdir
from plumbum.cmd import chmod, mkdir
from plumbum.commands.processes import ProcessExecutionError
from odoo_openupgrade_wizard import templates
@ -15,6 +16,14 @@ def get_script_folder(ctx, migration_step: dict) -> Path:
return ctx.obj["script_folder_path"] / migration_step["complete_name"]
def ensure_folder_writable(folder_path: Path):
logger.info("Make writable the folder '%s'" % folder_path)
try:
chmod(["--silent", "--recursive", "o+w", str(folder_path)])
except ProcessExecutionError:
pass
def ensure_folder_exists(
folder_path: Path, mode: str = "755", git_ignore_content: bool = False
):

View File

@ -0,0 +1,38 @@
from pathlib import Path
from odoo_openupgrade_wizard.tools_odoo import get_odoo_env_path
from . import build_ctx_from_config_file, cli_runner_invoke
def test_cli_generate_module_analysis():
output_folder_path = Path("./tests/output_B").absolute()
db_name = "database_test_cli_cli_generate_module_analysis"
ctx = build_ctx_from_config_file(output_folder_path)
# identify main analysis file of openupgrade
analysis_file_path = get_odoo_env_path(ctx, {"release": 14.0}) / Path(
"src/openupgrade/openupgrade_scripts/scripts"
"/base/14.0.1.3/upgrade_general_log.txt"
)
# This file should exist
assert analysis_file_path.exists()
# We remove this file and run the analysis
analysis_file_path.unlink()
analysis_file_path
cli_runner_invoke(
[
"--log-level=DEBUG",
"--env-folder=%s" % output_folder_path,
"generate-module-analysis",
"--step=2",
"--database=%s" % db_name,
"--modules=base",
]
)
# The file should has been recreated by the analysis command
assert analysis_file_path.exists()