odoo-openupgrade-wizard/tests/cli_07_upgrade_test.py
2024-08-21 16:02:00 +02:00

95 lines
2.3 KiB
Python

from pathlib import Path
from shutil import copy
from odoo_openupgrade_wizard.tools.tools_postgres import (
ensure_database,
execute_sql_request,
)
from . import (
build_ctx_from_config_file,
cli_runner_invoke,
move_to_test_folder,
)
def test_cli_upgrade():
move_to_test_folder()
ctx = build_ctx_from_config_file()
for n in ["01", "02"]:
copy(
Path(
f"../extra_script/{n}-post-migration-custom_test.py"
).absolute(),
Path(
"scripts/step_01__regular__14.0/"
f"{n}-post-migration-custom_test.py"
),
)
# Initialize database
db_name = "database_test_cli___upgrade"
ensure_database(ctx, db_name, state="absent")
cli_runner_invoke(
[
"run",
"--step=1",
f"--database={db_name}",
"--init-modules=base",
"--stop-after-init",
],
)
# Ensure that 'base' module is installed at 14.0
request = (
"SELECT latest_version"
" FROM ir_module_module"
" WHERE state ='installed'"
" AND name='base';"
)
latest_version = execute_sql_request(ctx, request, database=db_name)
assert latest_version[0][0].startswith("14.")
cli_runner_invoke(
[
"upgrade",
f"--database={db_name}",
"--first-step=1",
"--last-step=3",
],
)
# Ensure that 'base' module is installed at 15.0
request = (
"SELECT latest_version"
" FROM ir_module_module"
" WHERE state ='installed'"
" AND name='base';"
)
latest_version = execute_sql_request(ctx, request, database=db_name)
assert latest_version[0][0].startswith("15.")
# ensure the first post-migration-custom scripts have been executed
request = (
"SELECT name"
" FROM res_partner"
" WHERE name like 'Post Script 1 - Partner #%';"
)
result = execute_sql_request(ctx, request, database=db_name)
assert len(result) == 10
# ensure the second post-migration-custom scripts have been executed
request = (
"SELECT name"
" FROM res_partner"
" WHERE name = 'Post Script 2 - Partner #1';"
)
result = execute_sql_request(ctx, request, database=db_name)
assert len(result) == 1