mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
66 lines
2.1 KiB
Python
66 lines
2.1 KiB
Python
import random
|
|
|
|
import pytest
|
|
|
|
from galaxy.model.migrations.exceptions import (
|
|
DatabaseDoesNotExistError,
|
|
DatabaseNotInitializedError,
|
|
)
|
|
from galaxy.model.migrations.scripts import (
|
|
LegacyManageDb,
|
|
verify_database_is_initialized,
|
|
)
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def set_db_urls(monkeypatch):
|
|
# Do not try to access galaxy config; values not needed.
|
|
def no_config_call(self):
|
|
self.gxy_url = "a string"
|
|
self.tsi_url = "a string"
|
|
|
|
monkeypatch.setattr(LegacyManageDb, "_load_db_urls", no_config_call)
|
|
|
|
|
|
class TestLegacyManageDb:
|
|
@pytest.mark.parametrize("arg_name", LegacyManageDb.LEGACY_CONFIG_FILE_ARG_NAMES)
|
|
def test_rename_config_arg(self, arg_name):
|
|
# `-c|--config|__config-file` should be renamed to `--galaxy-config`
|
|
argv = ["caller", "--alembic-config", "path-to-alembic", arg_name, "path-to-galaxy", "upgrade", "--version=abc"]
|
|
LegacyManageDb().rename_config_argument(argv)
|
|
assert argv == [
|
|
"caller",
|
|
"--alembic-config",
|
|
"path-to-alembic",
|
|
"--galaxy-config",
|
|
"path-to-galaxy",
|
|
"upgrade",
|
|
"--version=abc",
|
|
]
|
|
|
|
def test_rename_config_arg_reordered_args(self):
|
|
# `-c|--config|__config-file` should be renamed to `--galaxy-config`
|
|
argv = ["caller", "--alembic-config", "path-to-alembic", "upgrade", "--version=abc", "-c", "path-to-galaxy"]
|
|
LegacyManageDb().rename_config_argument(argv)
|
|
assert argv == [
|
|
"caller",
|
|
"--alembic-config",
|
|
"path-to-alembic",
|
|
"upgrade",
|
|
"--version=abc",
|
|
"--galaxy-config",
|
|
"path-to-galaxy",
|
|
]
|
|
|
|
|
|
def test_verify_database_is_init_raises_error_if_no_database():
|
|
nonexistant_path = str(random.random())[2:]
|
|
db_url = f"sqlite:////{nonexistant_path}"
|
|
with pytest.raises(DatabaseDoesNotExistError):
|
|
verify_database_is_initialized(db_url)
|
|
|
|
|
|
def test_verify_database_is_init_raises_error_if_database_not_initialized(sqlite_memory_url):
|
|
with pytest.raises(DatabaseNotInitializedError):
|
|
verify_database_is_initialized(sqlite_memory_url)
|