refactor: rename fragments directory to ingredients and update all references
- Directory rename: fragments/ → ingredients/ (54 .ks files) - Updated all Python scripts: * tests/integration/conftest.py - fixture renames * tests/integration/test_integration.py - constant and path updates * tests/test_recipe_generator.py - updated test assertions * recipe-generator/validators.py - updated comments and error messages * recipe-generator/recipe_generator.py - updated comment - Updated all YAML files: * recipe-generator/recipe_templates.yaml - 66 path references * .gitea/workflows/validate-fragments.yaml → validate-ingredients.yaml * .gitea/workflows/test-generation.yaml - path patterns - Updated scripts: * bin/ksflatten-relative - updated path detection - Updated test file: * tests/integration/test_fragments.py → test_ingredients.py - Updated documentation: * DEVELOPMENT.md - simplified references * DEVELOPMENT_QUICK.md - updated examples * tests/container/README.md - test references - Regenerated all recipes (16 files) with ingredient paths - Updated test fixtures (7 files) - All integration tests pass (5/5) - All unit tests pass (29/31 - 2 pre-existing failures unrelated)
This commit is contained in:
Binary file not shown.
@@ -18,7 +18,7 @@ podman build -t phyllo/test-runner tests/container/
|
||||
podman run --rm -v .:/phyllomeos:ro phyllo/test-runner
|
||||
|
||||
# Run specific test file
|
||||
podman run --rm -v .:/phyllomeos:ro phyllo/test-runner pytest tests/integration/test_fragments.py -v
|
||||
podman run --rm -v .:/phyllomeos:ro phyllo/test-runner pytest tests/integration/test_ingredients.py -v
|
||||
|
||||
# Interactive mode for debugging
|
||||
podman run -it --rm -v .:/phyllomeos phyllo/test-runner bash
|
||||
@@ -32,9 +32,9 @@ podman run -it --rm -v .:/phyllomeos phyllo/test-runner bash
|
||||
- **Description:** Tests for recipe generator functionality (template loading, validation, version extraction)
|
||||
|
||||
### Fragment Validation Tests
|
||||
- **Location:** `tests/integration/test_fragments.py`
|
||||
- **Location:** `tests/integration/test_ingredients.py`
|
||||
- **Count:** ~15 tests
|
||||
- **Description:** Validates all 54 fragments with pykickstart, checks section structure
|
||||
- **Description:** Validates all 54 ingredients with pykickstart, checks section structure
|
||||
|
||||
### Recipe Composition Tests
|
||||
- **Location:** `tests/integration/test_recipe_composition.py`
|
||||
@@ -57,14 +57,14 @@ podman run -it --rm -v .:/phyllomeos phyllo/test-runner bash
|
||||
tests/
|
||||
├── test_recipe_generator.py # Unit tests (36 tests)
|
||||
├── integration/
|
||||
│ ├── test_fragments.py # Fragment validation (~15 tests)
|
||||
│ ├── test_ingredients.py # Fragment validation (~15 tests)
|
||||
│ ├── test_recipe_composition.py # Recipe generation (~10 tests)
|
||||
│ ├── test_semantic_validation.py # pykickstart semantic (~10 tests)
|
||||
│ ├── test_golden_masters.py # Regression tests (~5 tests)
|
||||
│ └── conftest.py # Pytest fixtures
|
||||
├── fixtures/
|
||||
│ ├── expected_recipes/ # 5 golden master files
|
||||
│ └── sample_fragments/ # Test fragment samples
|
||||
│ └── sample_ingredients/ # Test fragment samples
|
||||
└── container/
|
||||
├── Containerfile # Test runner container definition
|
||||
├── run-tests.sh # Test entrypoint script
|
||||
@@ -110,7 +110,7 @@ podman run -it --rm -v .:/phyllomeos phyllo/test-runner bash
|
||||
|
||||
# Run tests manually
|
||||
cd /phyllomeos
|
||||
pytest tests/integration/test_fragments.py -v
|
||||
pytest tests/integration/test_ingredients.py -v
|
||||
```
|
||||
|
||||
### Permission denied errors
|
||||
|
||||
@@ -7,18 +7,18 @@
|
||||
|
||||
# A recipe for a desktop hypervisor
|
||||
|
||||
%include fragments/core/base.ks
|
||||
%include fragments/storage/standard.ks
|
||||
%include fragments/bootloader/grub.ks
|
||||
%include fragments/core/locale.ks
|
||||
%include fragments/core/services.ks
|
||||
%include fragments/core/network.ks
|
||||
%include fragments/packages/core-group.ks
|
||||
%include fragments/packages/fedora-remix.ks
|
||||
%include fragments/packages/hand-picked.ks
|
||||
%include fragments/core/security/enabled.ks
|
||||
%include fragments/packages/virtual-machine-manager/packages.ks
|
||||
%include fragments/packages/virtual-machine-manager/post-scripts.ks
|
||||
%include fragments/initial-setup/server/config.ks
|
||||
%include fragments/hypervisor/intelcpu.ks
|
||||
%include fragments/repo/rawhide-mirrors.ks
|
||||
%include ingredients/core/base.ks
|
||||
%include ingredients/storage/standard.ks
|
||||
%include ingredients/bootloader/grub.ks
|
||||
%include ingredients/core/locale.ks
|
||||
%include ingredients/core/services.ks
|
||||
%include ingredients/core/network.ks
|
||||
%include ingredients/packages/core-group.ks
|
||||
%include ingredients/packages/fedora-remix.ks
|
||||
%include ingredients/packages/hand-picked.ks
|
||||
%include ingredients/core/security/enabled.ks
|
||||
%include ingredients/packages/virtual-machine-manager/packages.ks
|
||||
%include ingredients/packages/virtual-machine-manager/post-scripts.ks
|
||||
%include ingredients/initial-setup/server/config.ks
|
||||
%include ingredients/hypervisor/intelcpu.ks
|
||||
%include ingredients/repo/rawhide-mirrors.ks
|
||||
|
||||
@@ -7,18 +7,18 @@
|
||||
|
||||
# A recipe for a desktop hypervisor
|
||||
|
||||
%include fragments/core/base.ks
|
||||
%include fragments/storage/standard.ks
|
||||
%include fragments/bootloader/grub.ks
|
||||
%include fragments/core/locale.ks
|
||||
%include fragments/core/services.ks
|
||||
%include fragments/core/network.ks
|
||||
%include fragments/packages/core-group.ks
|
||||
%include fragments/packages/fedora-remix.ks
|
||||
%include fragments/packages/hand-picked.ks
|
||||
%include fragments/core/security/enabled.ks
|
||||
%include fragments/packages/virtual-machine-manager/packages.ks
|
||||
%include fragments/packages/virtual-machine-manager/post-scripts.ks
|
||||
%include fragments/initial-setup/server/config.ks
|
||||
%include fragments/hypervisor/intelcpu.ks
|
||||
%include fragments/repo/rawhide-mirrors.ks
|
||||
%include ingredients/core/base.ks
|
||||
%include ingredients/storage/standard.ks
|
||||
%include ingredients/bootloader/grub.ks
|
||||
%include ingredients/core/locale.ks
|
||||
%include ingredients/core/services.ks
|
||||
%include ingredients/core/network.ks
|
||||
%include ingredients/packages/core-group.ks
|
||||
%include ingredients/packages/fedora-remix.ks
|
||||
%include ingredients/packages/hand-picked.ks
|
||||
%include ingredients/core/security/enabled.ks
|
||||
%include ingredients/packages/virtual-machine-manager/packages.ks
|
||||
%include ingredients/packages/virtual-machine-manager/post-scripts.ks
|
||||
%include ingredients/initial-setup/server/config.ks
|
||||
%include ingredients/hypervisor/intelcpu.ks
|
||||
%include ingredients/repo/rawhide-mirrors.ks
|
||||
|
||||
+15
-15
@@ -7,18 +7,18 @@
|
||||
|
||||
# A recipe for a desktop hypervisor
|
||||
|
||||
%include fragments/core/base.ks
|
||||
%include fragments/storage/standard.ks
|
||||
%include fragments/bootloader/grub.ks
|
||||
%include fragments/core/locale.ks
|
||||
%include fragments/core/services.ks
|
||||
%include fragments/core/network.ks
|
||||
%include fragments/packages/core-group.ks
|
||||
%include fragments/packages/fedora-remix.ks
|
||||
%include fragments/packages/hand-picked.ks
|
||||
%include fragments/core/security/enabled.ks
|
||||
%include fragments/packages/virtual-machine-manager/packages.ks
|
||||
%include fragments/packages/virtual-machine-manager/post-scripts.ks
|
||||
%include fragments/initial-setup/server/config.ks
|
||||
%include fragments/hypervisor/intelcpu.ks
|
||||
%include fragments/repo/rawhide-mirrors.ks
|
||||
%include ingredients/core/base.ks
|
||||
%include ingredients/storage/standard.ks
|
||||
%include ingredients/bootloader/grub.ks
|
||||
%include ingredients/core/locale.ks
|
||||
%include ingredients/core/services.ks
|
||||
%include ingredients/core/network.ks
|
||||
%include ingredients/packages/core-group.ks
|
||||
%include ingredients/packages/fedora-remix.ks
|
||||
%include ingredients/packages/hand-picked.ks
|
||||
%include ingredients/core/security/enabled.ks
|
||||
%include ingredients/packages/virtual-machine-manager/packages.ks
|
||||
%include ingredients/packages/virtual-machine-manager/post-scripts.ks
|
||||
%include ingredients/initial-setup/server/config.ks
|
||||
%include ingredients/hypervisor/intelcpu.ks
|
||||
%include ingredients/repo/rawhide-mirrors.ks
|
||||
|
||||
+14
-14
@@ -7,17 +7,17 @@
|
||||
|
||||
# A recipe for a live desktop
|
||||
|
||||
%include fragments/shared/live/core/base.ks
|
||||
%include fragments/shared/live/core/storage.ks
|
||||
%include fragments/platform/generic-rawhide/bootloader/grub.ks
|
||||
%include fragments/shared/core/locale.ks
|
||||
%include fragments/shared/core/services.ks
|
||||
%include fragments/shared/core/network.ks
|
||||
%include fragments/shared/live/core/packages.ks
|
||||
%include fragments/shared/live/post/base.ks
|
||||
%include fragments/shared/live/post/session.ks
|
||||
%include fragments/shared/initial-setup/desktop/config.ks
|
||||
%include fragments/shared/desktop/gnome/config.ks
|
||||
%include fragments/shared/desktop/gnome/packages.ks
|
||||
%include fragments/shared/desktop/gnome/post-scripts.ks
|
||||
%include fragments/platform/generic-rawhide/repo/rawhide-mirrors.ks
|
||||
%include ingredients/shared/live/core/base.ks
|
||||
%include ingredients/shared/live/core/storage.ks
|
||||
%include ingredients/platform/generic-rawhide/bootloader/grub.ks
|
||||
%include ingredients/shared/core/locale.ks
|
||||
%include ingredients/shared/core/services.ks
|
||||
%include ingredients/shared/core/network.ks
|
||||
%include ingredients/shared/live/core/packages.ks
|
||||
%include ingredients/shared/live/post/base.ks
|
||||
%include ingredients/shared/live/post/session.ks
|
||||
%include ingredients/shared/initial-setup/desktop/config.ks
|
||||
%include ingredients/shared/desktop/gnome/config.ks
|
||||
%include ingredients/shared/desktop/gnome/packages.ks
|
||||
%include ingredients/shared/desktop/gnome/post-scripts.ks
|
||||
%include ingredients/platform/generic-rawhide/repo/rawhide-mirrors.ks
|
||||
+11
-11
@@ -7,14 +7,14 @@
|
||||
|
||||
# A recipe for a live server
|
||||
|
||||
%include fragments/shared/live/core/base.ks
|
||||
%include fragments/shared/live/core/storage.ks
|
||||
%include fragments/platform/generic-rawhide/bootloader/grub.ks
|
||||
%include fragments/shared/core/locale.ks
|
||||
%include fragments/shared/core/services.ks
|
||||
%include fragments/shared/core/network.ks
|
||||
%include fragments/shared/live/core/packages.ks
|
||||
%include fragments/shared/live/post/base.ks
|
||||
%include fragments/shared/live/post/session.ks
|
||||
%include fragments/shared/initial-setup/server/config.ks
|
||||
%include fragments/platform/generic-rawhide/repo/rawhide-mirrors.ks
|
||||
%include ingredients/shared/live/core/base.ks
|
||||
%include ingredients/shared/live/core/storage.ks
|
||||
%include ingredients/platform/generic-rawhide/bootloader/grub.ks
|
||||
%include ingredients/shared/core/locale.ks
|
||||
%include ingredients/shared/core/services.ks
|
||||
%include ingredients/shared/core/network.ks
|
||||
%include ingredients/shared/live/core/packages.ks
|
||||
%include ingredients/shared/live/post/base.ks
|
||||
%include ingredients/shared/live/post/session.ks
|
||||
%include ingredients/shared/initial-setup/server/config.ks
|
||||
%include ingredients/platform/generic-rawhide/repo/rawhide-mirrors.ks
|
||||
+11
-11
@@ -7,14 +7,14 @@
|
||||
|
||||
# A recipe for a virtual desktop
|
||||
|
||||
%include fragments/shared/core/base.ks
|
||||
%include fragments/shared/storage/standard.ks
|
||||
%include fragments/platform/generic-43/bootloader/grub.ks
|
||||
%include fragments/shared/core/locale.ks
|
||||
%include fragments/shared/core/services.ks
|
||||
%include fragments/shared/core/network.ks
|
||||
%include fragments/shared/packages/core-group.ks
|
||||
%include fragments/shared/packages/fedora-remix.ks
|
||||
%include fragments/shared/packages/hand-picked.ks
|
||||
%include fragments/shared/initial-setup/server/config.ks
|
||||
%include fragments/platform/generic-43/repo/fedora-mirrors.ks
|
||||
%include ingredients/shared/core/base.ks
|
||||
%include ingredients/shared/storage/standard.ks
|
||||
%include ingredients/platform/generic-43/bootloader/grub.ks
|
||||
%include ingredients/shared/core/locale.ks
|
||||
%include ingredients/shared/core/services.ks
|
||||
%include ingredients/shared/core/network.ks
|
||||
%include ingredients/shared/packages/core-group.ks
|
||||
%include ingredients/shared/packages/fedora-remix.ks
|
||||
%include ingredients/shared/packages/hand-picked.ks
|
||||
%include ingredients/shared/initial-setup/server/config.ks
|
||||
%include ingredients/platform/generic-43/repo/fedora-mirrors.ks
|
||||
+11
-11
@@ -7,14 +7,14 @@
|
||||
|
||||
# A recipe for a virtual server
|
||||
|
||||
%include fragments/shared/core/base.ks
|
||||
%include fragments/shared/storage/standard.ks
|
||||
%include fragments/platform/generic-43/bootloader/grub.ks
|
||||
%include fragments/shared/core/locale.ks
|
||||
%include fragments/shared/core/services.ks
|
||||
%include fragments/shared/core/network.ks
|
||||
%include fragments/shared/packages/core-group.ks
|
||||
%include fragments/shared/packages/fedora-remix.ks
|
||||
%include fragments/shared/packages/hand-picked.ks
|
||||
%include fragments/shared/initial-setup/server/config.ks
|
||||
%include fragments/platform/generic-rawhide/repo/rawhide-mirrors.ks
|
||||
%include ingredients/shared/core/base.ks
|
||||
%include ingredients/shared/storage/standard.ks
|
||||
%include ingredients/platform/generic-43/bootloader/grub.ks
|
||||
%include ingredients/shared/core/locale.ks
|
||||
%include ingredients/shared/core/services.ks
|
||||
%include ingredients/shared/core/network.ks
|
||||
%include ingredients/shared/packages/core-group.ks
|
||||
%include ingredients/shared/packages/fedora-remix.ks
|
||||
%include ingredients/shared/packages/hand-picked.ks
|
||||
%include ingredients/shared/initial-setup/server/config.ks
|
||||
%include ingredients/platform/generic-rawhide/repo/rawhide-mirrors.ks
|
||||
Binary file not shown.
Binary file not shown.
@@ -27,9 +27,9 @@ def project_root():
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def fragments_dir(project_root):
|
||||
"""Return fragments directory."""
|
||||
return project_root / 'fragments'
|
||||
def ingredients_dir(project_root):
|
||||
"""Return ingredients directory."""
|
||||
return project_root / 'ingredients'
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@@ -39,9 +39,9 @@ def recipes_dir(project_root):
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def fragments(fragments_dir):
|
||||
"""List all .ks fragment files."""
|
||||
return list(fragments_dir.glob('**/*.ks'))
|
||||
def ingredients(ingredients_dir):
|
||||
"""List all .ks ingredient files."""
|
||||
return list(ingredients_dir.glob('**/*.ks'))
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
||||
@@ -13,7 +13,7 @@ import os
|
||||
PROJECT_ROOT = Path('/home/lukas/Code/virt/phyllomeos')
|
||||
RECIPE_GENERATOR_DIR = PROJECT_ROOT / 'recipe-generator'
|
||||
RECIPE_DIR = PROJECT_ROOT / 'recipes'
|
||||
FRAGMENTS_DIR = PROJECT_ROOT / 'fragments'
|
||||
INGREDIENTS_DIR = PROJECT_ROOT / 'ingredients'
|
||||
CONTAINER_DIR = PROJECT_ROOT / 'tests' / 'container'
|
||||
|
||||
|
||||
@@ -73,25 +73,25 @@ def test_container_build():
|
||||
pytest.fail(f"Container build failed: {result.stderr}")
|
||||
|
||||
|
||||
def test_fragments_structure():
|
||||
"""Verify fragment directory structure."""
|
||||
def test_ingredients_structure():
|
||||
"""Verify ingredient directory structure."""
|
||||
# Check core directories
|
||||
assert (FRAGMENTS_DIR / 'core' / 'security').exists()
|
||||
assert (INGREDIENTS_DIR / 'core' / 'security').exists()
|
||||
|
||||
# Check desktop directories
|
||||
assert (FRAGMENTS_DIR / 'desktop' / 'gnome').exists()
|
||||
assert (FRAGMENTS_DIR / 'desktop' / 'labwc').exists()
|
||||
assert (INGREDIENTS_DIR / 'desktop' / 'gnome').exists()
|
||||
assert (INGREDIENTS_DIR / 'desktop' / 'labwc').exists()
|
||||
# vmm is now in virtual-machine-manager directory (under packages)
|
||||
# assert (FRAGMENTS_DIR / 'desktop' / 'vmm').exists()
|
||||
# assert (INGREDIENTS_DIR / 'desktop' / 'vmm').exists()
|
||||
|
||||
# Check hypervisor directories
|
||||
assert (FRAGMENTS_DIR / 'hypervisor' / 'base').exists()
|
||||
assert (FRAGMENTS_DIR / 'hypervisor' / 'base').exists()
|
||||
assert (INGREDIENTS_DIR / 'hypervisor' / 'base').exists()
|
||||
assert (INGREDIENTS_DIR / 'hypervisor' / 'base').exists()
|
||||
|
||||
# Check live directories
|
||||
assert (FRAGMENTS_DIR / 'live' / 'core' / 'bootloader').exists()
|
||||
assert (FRAGMENTS_DIR / 'live' / 'post').exists()
|
||||
assert (INGREDIENTS_DIR / 'live' / 'core' / 'bootloader').exists()
|
||||
assert (INGREDIENTS_DIR / 'live' / 'post').exists()
|
||||
|
||||
# Count fragments
|
||||
fragment_count = len(list(FRAGMENTS_DIR.glob('**/*.ks')))
|
||||
assert fragment_count >= 45, f"Expected at least 45 fragments, found {fragment_count}"
|
||||
# Count ingredients
|
||||
ingredient_count = len(list(INGREDIENTS_DIR.glob('**/*.ks')))
|
||||
assert ingredient_count >= 45, f"Expected at least 45 ingredients, found {ingredient_count}"
|
||||
|
||||
@@ -59,10 +59,10 @@ class TestRecipeGenerator:
|
||||
storage='standard',
|
||||
security='secure')
|
||||
assert '# An install recipe for desktop, server, or hypervisor' in content
|
||||
assert '%include fragments/core/base.ks' in content
|
||||
assert '%include fragments/desktop/gnome/packages.ks' in content
|
||||
assert '%include fragments/repo/fedora-43-mirrors.ks' in content
|
||||
assert '%include fragments/core/security/enabled.ks' in content
|
||||
assert '%include ingredients/core/base.ks' in content
|
||||
assert '%include ingredients/desktop/gnome/packages.ks' in content
|
||||
assert '%include ingredients/repo/fedora-43-mirrors.ks' in content
|
||||
assert '%include ingredients/core/security/enabled.ks' in content
|
||||
|
||||
def test_generate_virtual_desktop_encrypted(self):
|
||||
"""Test generating encrypted desktop recipe."""
|
||||
@@ -70,7 +70,7 @@ class TestRecipeGenerator:
|
||||
desktop='gnome',
|
||||
storage='encrypted',
|
||||
security='secure')
|
||||
assert '%include fragments/storage/encrypted.ks' in content
|
||||
assert '%include ingredients/storage/encrypted.ks' in content
|
||||
|
||||
def test_generate_virtual_desktop_labwc(self):
|
||||
"""Test generating LabWC desktop recipe."""
|
||||
@@ -78,8 +78,8 @@ class TestRecipeGenerator:
|
||||
desktop='labwc',
|
||||
storage='standard',
|
||||
security='secure')
|
||||
assert '%include fragments/desktop/labwc/config.ks' in content
|
||||
assert '%include fragments/desktop/gnome/packages.ks' not in content
|
||||
assert '%include ingredients/desktop/labwc/config.ks' in content
|
||||
assert '%include ingredients/desktop/gnome/packages.ks' not in content
|
||||
|
||||
def test_generate_virtual_desktop_devel(self):
|
||||
"""Test generating development mode desktop recipe."""
|
||||
@@ -87,7 +87,7 @@ class TestRecipeGenerator:
|
||||
desktop='gnome',
|
||||
storage='standard',
|
||||
security='off')
|
||||
assert '%include fragments/core/security/disabled.ks' in content
|
||||
assert '%include ingredients/core/security/disabled.ks' in content
|
||||
|
||||
def test_generate_virtual_server(self):
|
||||
"""Test generating server recipe."""
|
||||
@@ -95,7 +95,7 @@ class TestRecipeGenerator:
|
||||
initial_setup='server',
|
||||
security='secure')
|
||||
assert '# An install recipe for desktop, server, or hypervisor' in content
|
||||
assert '%include fragments/initial-setup/server/config.ks' in content
|
||||
assert '%include ingredients/initial-setup/server/config.ks' in content
|
||||
|
||||
def test_generate_desktop_hypervisor_amd(self):
|
||||
"""Test generating AMD CPU hypervisor recipe."""
|
||||
@@ -104,8 +104,8 @@ class TestRecipeGenerator:
|
||||
hypervisor='base',
|
||||
hypervisor_type='amdcpu',
|
||||
security='secure')
|
||||
assert '%include fragments/hypervisor/amdcpu.ks' in content
|
||||
assert '%include fragments/hypervisor/intelcpu.ks' not in content
|
||||
assert '%include ingredients/hypervisor/amdcpu.ks' in content
|
||||
assert '%include ingredients/hypervisor/intelcpu.ks' not in content
|
||||
|
||||
def test_generate_desktop_hypervisor_intel_gpu(self):
|
||||
"""Test generating Intel CPU+GPU hypervisor recipe."""
|
||||
@@ -114,7 +114,7 @@ class TestRecipeGenerator:
|
||||
hypervisor='base',
|
||||
hypervisor_type='intelcpu',
|
||||
security='secure')
|
||||
assert '%include fragments/hypervisor/intelcpu.ks' in content
|
||||
assert '%include ingredients/hypervisor/intelcpu.ks' in content
|
||||
|
||||
def test_generate_live_desktop(self):
|
||||
"""Test generating live desktop recipe."""
|
||||
@@ -122,15 +122,15 @@ class TestRecipeGenerator:
|
||||
desktop='gnome',
|
||||
security='secure')
|
||||
assert '# A live recipe for live-desktop or live-server' in content
|
||||
assert '%include fragments/live/core/base.ks' in content
|
||||
assert '%include fragments/live/core/storage.ks' in content
|
||||
assert '%include ingredients/live/core/base.ks' in content
|
||||
assert '%include ingredients/live/core/storage.ks' in content
|
||||
|
||||
def test_generate_live_server(self):
|
||||
"""Test generating live server recipe."""
|
||||
content = self.generator.generate_recipe('live', 'rawhide',
|
||||
security='secure')
|
||||
assert '# A live recipe for live-desktop or live-server' in content
|
||||
assert '%include fragments/live/core/base.ks' in content
|
||||
assert '%include ingredients/live/core/base.ks' in content
|
||||
|
||||
def test_no_duplicate_includes(self):
|
||||
"""Test that duplicate includes are prevented."""
|
||||
@@ -144,13 +144,13 @@ class TestRecipeGenerator:
|
||||
assert len(paths) == len(set(paths)), "Found duplicate %include entries"
|
||||
|
||||
def test_missing_ingredient_detection(self):
|
||||
"""Test that missing fragments are detected."""
|
||||
"""Test that missing ingredients are detected."""
|
||||
content = self.generator.generate_recipe('install', '43',
|
||||
desktop='gnome',
|
||||
storage='standard',
|
||||
security='secure')
|
||||
issues = self.generator.validate_recipe(content)
|
||||
assert issues == [], f"Found missing fragments: {issues}"
|
||||
assert issues == [], f"Found missing ingredients: {issues}"
|
||||
|
||||
def test_filename_generation_standard(self):
|
||||
"""Test filename generation for standard configuration."""
|
||||
|
||||
Reference in New Issue
Block a user