mirror of
https://github.com/rommapp/romm.git
synced 2026-02-18 00:27:41 +01:00
Merge pull request #3007 from rommapp/romm-2927
[ROMM-2927] Add default folders to config manager
This commit is contained in:
@@ -28,6 +28,34 @@ from logger.logger import log
|
||||
ROMM_USER_CONFIG_PATH: Final = f"{ROMM_BASE_PATH}/config"
|
||||
ROMM_USER_CONFIG_FILE: Final = f"{ROMM_USER_CONFIG_PATH}/config.yml"
|
||||
SQLITE_DB_BASE_PATH: Final = f"{ROMM_BASE_PATH}/database"
|
||||
DEFAULT_EXCLUDED_EXTENSIONS: Final = [
|
||||
"db",
|
||||
"ini",
|
||||
"tmp",
|
||||
"bak",
|
||||
"lock",
|
||||
"log",
|
||||
"cache",
|
||||
"crdownload",
|
||||
]
|
||||
DEFAULT_EXCLUDED_FILES: Final = [
|
||||
".DS_Store",
|
||||
".localized",
|
||||
".Trashes",
|
||||
".stfolder",
|
||||
"@SynoResource",
|
||||
]
|
||||
DEFAULT_EXCLUDED_DIRS: Final = [
|
||||
"@eaDir",
|
||||
"__MACOSX",
|
||||
"$RECYCLE.BIN",
|
||||
".Trash-*",
|
||||
".stfolder",
|
||||
".Spotlight-V100",
|
||||
".fseventsd",
|
||||
".DocumentRevisions-V100",
|
||||
"System Volume Information",
|
||||
]
|
||||
|
||||
|
||||
class EjsControlsButton(TypedDict):
|
||||
@@ -194,27 +222,39 @@ class ConfigManager:
|
||||
self.config = Config(
|
||||
CONFIG_FILE_MOUNTED=self._config_file_mounted,
|
||||
CONFIG_FILE_WRITABLE=self._config_file_writable,
|
||||
EXCLUDED_PLATFORMS=pydash.get(self._raw_config, "exclude.platforms", []),
|
||||
EXCLUDED_PLATFORMS=pydash.get(
|
||||
self._raw_config, "exclude.platforms", DEFAULT_EXCLUDED_DIRS
|
||||
),
|
||||
EXCLUDED_SINGLE_EXT=[
|
||||
e.lower()
|
||||
for e in pydash.get(
|
||||
self._raw_config, "exclude.roms.single_file.extensions", []
|
||||
self._raw_config,
|
||||
"exclude.roms.single_file.extensions",
|
||||
DEFAULT_EXCLUDED_EXTENSIONS,
|
||||
)
|
||||
],
|
||||
EXCLUDED_SINGLE_FILES=pydash.get(
|
||||
self._raw_config, "exclude.roms.single_file.names", []
|
||||
self._raw_config,
|
||||
"exclude.roms.single_file.names",
|
||||
DEFAULT_EXCLUDED_FILES,
|
||||
),
|
||||
EXCLUDED_MULTI_FILES=pydash.get(
|
||||
self._raw_config, "exclude.roms.multi_file.names", []
|
||||
self._raw_config,
|
||||
"exclude.roms.multi_file.names",
|
||||
DEFAULT_EXCLUDED_DIRS,
|
||||
),
|
||||
EXCLUDED_MULTI_PARTS_EXT=[
|
||||
e.lower()
|
||||
for e in pydash.get(
|
||||
self._raw_config, "exclude.roms.multi_file.parts.extensions", []
|
||||
self._raw_config,
|
||||
"exclude.roms.multi_file.parts.extensions",
|
||||
DEFAULT_EXCLUDED_EXTENSIONS,
|
||||
)
|
||||
],
|
||||
EXCLUDED_MULTI_PARTS_FILES=pydash.get(
|
||||
self._raw_config, "exclude.roms.multi_file.parts.names", []
|
||||
self._raw_config,
|
||||
"exclude.roms.multi_file.parts.names",
|
||||
DEFAULT_EXCLUDED_FILES,
|
||||
),
|
||||
PLATFORMS_BINDING=pydash.get(self._raw_config, "system.platforms", {}),
|
||||
PLATFORMS_VERSIONS=pydash.get(self._raw_config, "system.versions", {}),
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
from config.config_manager import ConfigManager
|
||||
from config.config_manager import (
|
||||
DEFAULT_EXCLUDED_DIRS,
|
||||
DEFAULT_EXCLUDED_EXTENSIONS,
|
||||
DEFAULT_EXCLUDED_FILES,
|
||||
ConfigManager,
|
||||
)
|
||||
|
||||
|
||||
def test_config_loader():
|
||||
@@ -58,12 +63,16 @@ def test_empty_config_loader():
|
||||
)
|
||||
)
|
||||
|
||||
assert loader.config.EXCLUDED_PLATFORMS == []
|
||||
assert loader.config.EXCLUDED_SINGLE_EXT == []
|
||||
assert loader.config.EXCLUDED_SINGLE_FILES == []
|
||||
assert loader.config.EXCLUDED_MULTI_FILES == []
|
||||
assert loader.config.EXCLUDED_MULTI_PARTS_EXT == []
|
||||
assert loader.config.EXCLUDED_MULTI_PARTS_FILES == []
|
||||
assert loader.config.EXCLUDED_PLATFORMS == DEFAULT_EXCLUDED_DIRS
|
||||
assert loader.config.EXCLUDED_SINGLE_EXT == [
|
||||
e.lower() for e in DEFAULT_EXCLUDED_EXTENSIONS
|
||||
]
|
||||
assert loader.config.EXCLUDED_SINGLE_FILES == DEFAULT_EXCLUDED_FILES
|
||||
assert loader.config.EXCLUDED_MULTI_FILES == DEFAULT_EXCLUDED_DIRS
|
||||
assert loader.config.EXCLUDED_MULTI_PARTS_EXT == [
|
||||
e.lower() for e in DEFAULT_EXCLUDED_EXTENSIONS
|
||||
]
|
||||
assert loader.config.EXCLUDED_MULTI_PARTS_FILES == DEFAULT_EXCLUDED_FILES
|
||||
assert loader.config.PLATFORMS_BINDING == {}
|
||||
assert loader.config.PLATFORMS_VERSIONS == {}
|
||||
assert loader.config.ROMS_FOLDER_NAME == "roms"
|
||||
|
||||
@@ -3,6 +3,12 @@ from fastapi import status
|
||||
from fastapi.testclient import TestClient
|
||||
from main import app
|
||||
|
||||
from config.config_manager import (
|
||||
DEFAULT_EXCLUDED_DIRS,
|
||||
DEFAULT_EXCLUDED_EXTENSIONS,
|
||||
DEFAULT_EXCLUDED_FILES,
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def client():
|
||||
@@ -15,11 +21,15 @@ def test_config(client):
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
|
||||
config = response.json()
|
||||
assert config.get("EXCLUDED_PLATFORMS") == []
|
||||
assert config.get("EXCLUDED_SINGLE_EXT") == []
|
||||
assert config.get("EXCLUDED_SINGLE_FILES") == []
|
||||
assert config.get("EXCLUDED_MULTI_FILES") == []
|
||||
assert config.get("EXCLUDED_MULTI_PARTS_EXT") == []
|
||||
assert config.get("EXCLUDED_MULTI_PARTS_FILES") == []
|
||||
assert config.get("EXCLUDED_PLATFORMS") == DEFAULT_EXCLUDED_DIRS
|
||||
assert config.get("EXCLUDED_SINGLE_EXT") == [
|
||||
e.lower() for e in DEFAULT_EXCLUDED_EXTENSIONS
|
||||
]
|
||||
assert config.get("EXCLUDED_SINGLE_FILES") == DEFAULT_EXCLUDED_FILES
|
||||
assert config.get("EXCLUDED_MULTI_FILES") == DEFAULT_EXCLUDED_DIRS
|
||||
assert config.get("EXCLUDED_MULTI_PARTS_EXT") == [
|
||||
e.lower() for e in DEFAULT_EXCLUDED_EXTENSIONS
|
||||
]
|
||||
assert config.get("EXCLUDED_MULTI_PARTS_FILES") == DEFAULT_EXCLUDED_FILES
|
||||
assert config.get("PLATFORMS_BINDING") == {}
|
||||
assert not config.get("SKIP_HASH_CALCULATION")
|
||||
|
||||
Reference in New Issue
Block a user