95 lines
2.3 KiB
Python
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
|