mirror of
				https://github.com/arcan1s/ahriman.git
				synced 2025-11-04 07:43:42 +00:00 
			
		
		
		
	make configuration object arch-specific
This commit is contained in:
		@ -3,25 +3,27 @@ import argparse
 | 
			
		||||
from pytest_mock import MockerFixture
 | 
			
		||||
 | 
			
		||||
from ahriman.application.handlers import Handler
 | 
			
		||||
from ahriman.core.configuration import Configuration
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def test_call(args: argparse.Namespace, configuration: Configuration, mocker: MockerFixture) -> None:
 | 
			
		||||
def test_call(args: argparse.Namespace, mocker: MockerFixture) -> None:
 | 
			
		||||
    """
 | 
			
		||||
    must call inside lock
 | 
			
		||||
    """
 | 
			
		||||
    args.configuration = ""
 | 
			
		||||
    args.no_log = False
 | 
			
		||||
    mocker.patch("ahriman.application.handlers.Handler.run")
 | 
			
		||||
    mocker.patch("ahriman.core.configuration.Configuration.from_path")
 | 
			
		||||
    enter_mock = mocker.patch("ahriman.application.lock.Lock.__enter__")
 | 
			
		||||
    exit_mock = mocker.patch("ahriman.application.lock.Lock.__exit__")
 | 
			
		||||
 | 
			
		||||
    assert Handler._call(args, "x86_64", configuration)
 | 
			
		||||
    assert Handler._call(args, "x86_64")
 | 
			
		||||
    enter_mock.assert_called_once()
 | 
			
		||||
    exit_mock.assert_called_once()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def test_call_exception(args: argparse.Namespace, configuration: Configuration, mocker: MockerFixture) -> None:
 | 
			
		||||
def test_call_exception(args: argparse.Namespace, mocker: MockerFixture) -> None:
 | 
			
		||||
    """
 | 
			
		||||
    must process exception
 | 
			
		||||
    """
 | 
			
		||||
    mocker.patch("ahriman.application.lock.Lock.__enter__", side_effect=Exception())
 | 
			
		||||
    assert not Handler._call(args, "x86_64", configuration)
 | 
			
		||||
    assert not Handler._call(args, "x86_64")
 | 
			
		||||
 | 
			
		||||
@ -13,7 +13,7 @@ def test_run(args: argparse.Namespace, configuration: Configuration, mocker: Moc
 | 
			
		||||
    mocker.patch("pathlib.Path.mkdir")
 | 
			
		||||
    print_mock = mocker.patch("ahriman.application.handlers.dump.Dump._print")
 | 
			
		||||
    application_mock = mocker.patch("ahriman.core.configuration.Configuration.dump",
 | 
			
		||||
                                    return_value=configuration.dump("x86_64"))
 | 
			
		||||
                                    return_value=configuration.dump())
 | 
			
		||||
 | 
			
		||||
    Dump.run(args, "x86_64", configuration)
 | 
			
		||||
    application_mock.assert_called_once()
 | 
			
		||||
 | 
			
		||||
@ -27,7 +27,7 @@ def anyvar(cls: Type[T], strict: bool = False) -> T:
 | 
			
		||||
@pytest.fixture
 | 
			
		||||
def configuration(resource_path_root: Path) -> Configuration:
 | 
			
		||||
    path = resource_path_root / "core" / "ahriman.ini"
 | 
			
		||||
    return Configuration.from_path(path=path, logfile=False)
 | 
			
		||||
    return Configuration.from_path(path=path, architecture="x86_64", logfile=False)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.fixture
 | 
			
		||||
 | 
			
		||||
@ -31,4 +31,4 @@ def repo(configuration: Configuration, repository_paths: RepositoryPaths) -> Rep
 | 
			
		||||
 | 
			
		||||
@pytest.fixture
 | 
			
		||||
def task_ahriman(package_ahriman: Package, configuration: Configuration, repository_paths: RepositoryPaths) -> Task:
 | 
			
		||||
    return Task(package_ahriman, "x86_64", configuration, repository_paths)
 | 
			
		||||
    return Task(package_ahriman, configuration, repository_paths)
 | 
			
		||||
 | 
			
		||||
@ -104,7 +104,7 @@ def test_load_dummy_client(configuration: Configuration) -> None:
 | 
			
		||||
    """
 | 
			
		||||
    must load dummy client if no settings set
 | 
			
		||||
    """
 | 
			
		||||
    assert isinstance(Client.load("x86_64", configuration), Client)
 | 
			
		||||
    assert isinstance(Client.load(configuration), Client)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def test_load_full_client(configuration: Configuration) -> None:
 | 
			
		||||
@ -113,4 +113,4 @@ def test_load_full_client(configuration: Configuration) -> None:
 | 
			
		||||
    """
 | 
			
		||||
    configuration.set("web", "host", "localhost")
 | 
			
		||||
    configuration.set("web", "port", "8080")
 | 
			
		||||
    assert isinstance(Client.load("x86_64", configuration), WebClient)
 | 
			
		||||
    assert isinstance(Client.load(configuration), WebClient)
 | 
			
		||||
 | 
			
		||||
@ -14,7 +14,7 @@ def test_from_path(mocker: MockerFixture) -> None:
 | 
			
		||||
    load_logging_mock = mocker.patch("ahriman.core.configuration.Configuration.load_logging")
 | 
			
		||||
    path = Path("path")
 | 
			
		||||
 | 
			
		||||
    config = Configuration.from_path(path, True)
 | 
			
		||||
    config = Configuration.from_path(path, "x86_64", True)
 | 
			
		||||
    assert config.path == path
 | 
			
		||||
    read_mock.assert_called_with(path)
 | 
			
		||||
    load_includes_mock.assert_called_once()
 | 
			
		||||
@ -53,7 +53,7 @@ def test_dump(configuration: Configuration) -> None:
 | 
			
		||||
    """
 | 
			
		||||
    dump must not be empty
 | 
			
		||||
    """
 | 
			
		||||
    assert configuration.dump("x86_64")
 | 
			
		||||
    assert configuration.dump()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def test_dump_architecture_specific(configuration: Configuration) -> None:
 | 
			
		||||
@ -62,8 +62,9 @@ def test_dump_architecture_specific(configuration: Configuration) -> None:
 | 
			
		||||
    """
 | 
			
		||||
    configuration.add_section("build_x86_64")
 | 
			
		||||
    configuration.set("build_x86_64", "archbuild_flags", "hello flag")
 | 
			
		||||
    configuration.merge_sections("x86_64")
 | 
			
		||||
 | 
			
		||||
    dump = configuration.dump("x86_64")
 | 
			
		||||
    dump = configuration.dump()
 | 
			
		||||
    assert dump
 | 
			
		||||
    assert "build" in dump
 | 
			
		||||
    assert "build_x86_64" not in dump
 | 
			
		||||
@ -118,3 +119,15 @@ def test_load_logging_stderr(configuration: Configuration, mocker: MockerFixture
 | 
			
		||||
    logging_mock = mocker.patch("logging.config.fileConfig")
 | 
			
		||||
    configuration.load_logging(False)
 | 
			
		||||
    logging_mock.assert_not_called()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def test_merge_sections_missing(configuration: Configuration) -> None:
 | 
			
		||||
    """
 | 
			
		||||
    must merge create section if not exists
 | 
			
		||||
    """
 | 
			
		||||
    configuration.remove_section("build")
 | 
			
		||||
    configuration.add_section("build_x86_64")
 | 
			
		||||
    configuration.set("build_x86_64", "key", "value")
 | 
			
		||||
 | 
			
		||||
    configuration.merge_sections("x86_64")
 | 
			
		||||
    assert configuration.get("build", "key") == "value"
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user