diff --git a/tests/__init__.py b/tests/__init__.py index 0765cbc..b1fe69d 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -7,6 +7,7 @@ from click.testing import CliRunner from plumbum.cmd import mkdir from odoo_openupgrade_wizard.cli.cli import main +from odoo_openupgrade_wizard.tools.tools_postgres import execute_sql_request _logger = logging.getLogger() @@ -91,3 +92,12 @@ def mock_odoo_rpc_url(mocker): "odoo_openupgrade_wizard.tools.tools_odoo_instance._ODOO_RPC_URL", odoo_rpc_url, ) + + +def assert_database(ctx, db_name, state): + request = "select datname FROM pg_database WHERE datistemplate = false;" + results = execute_sql_request(ctx, request) + if state == "present": + assert [db_name] in results + else: + assert [db_name] not in results diff --git a/tests/cli_23_restoredb_test.py b/tests/cli_23_restoredb_test.py index 24c3b5b..c1e4f91 100644 --- a/tests/cli_23_restoredb_test.py +++ b/tests/cli_23_restoredb_test.py @@ -4,6 +4,7 @@ import shutil from odoo_openupgrade_wizard.tools.tools_postgres import ensure_database from . import ( + assert_database, build_ctx_from_config_file, cli_runner_invoke, mock_odoo_rpc_url, @@ -45,5 +46,9 @@ def test_cli_restoredb(mocker): # check filestore exists assert dest_filestore_path.exists() - # Delete filestore + # Check database exists + assert_database(ctx, db_name, "present") + + # Delete filestore and database shutil.rmtree(dest_filestore_path) + ensure_database(ctx, db_name, state="absent") diff --git a/tests/cli_31_copydb_test.py b/tests/cli_31_copydb_test.py index 025c704..29db47a 100644 --- a/tests/cli_31_copydb_test.py +++ b/tests/cli_31_copydb_test.py @@ -4,6 +4,7 @@ import shutil from odoo_openupgrade_wizard.tools.tools_postgres import ensure_database from . import ( + assert_database, build_ctx_from_config_file, cli_runner_invoke, mock_odoo_rpc_url, @@ -46,5 +47,9 @@ def test_cli_copydb(mocker): # check filestore exists assert dest_filestore_path.exists() - # Delete filestore + # Check database exists + assert_database(ctx, db_dest_name, "present") + + # Delete filestore and database shutil.rmtree(dest_filestore_path) + ensure_database(ctx, db_dest_name, state="absent") diff --git a/tests/cli_32_dropdb_test.py b/tests/cli_32_dropdb_test.py index 631cba4..671edb4 100644 --- a/tests/cli_32_dropdb_test.py +++ b/tests/cli_32_dropdb_test.py @@ -1,12 +1,10 @@ import pathlib import shutil -from odoo_openupgrade_wizard.tools.tools_postgres import ( - ensure_database, - execute_sql_request, -) +from odoo_openupgrade_wizard.tools.tools_postgres import ensure_database from . import ( + assert_database, build_ctx_from_config_file, cli_runner_invoke, mock_odoo_rpc_url, @@ -45,9 +43,7 @@ def test_cli_dropdb(mocker): ) # Check database does not exists - request = "select datname FROM pg_database WHERE datistemplate = false;" - results = execute_sql_request(ctx, request) - assert [db_name] not in results + assert_database(ctx, db_name, "absent") # Check filestore does not exists assert not filestore_path.exists()