Files
klubhaus-doorbell/libraries/FastLED/ci/tests/test_buildflags.py
2026-02-12 00:45:31 -08:00

50 lines
1.5 KiB
Python

#!/usr/bin/env python3
"""
Tests for BuildFlags TOML parsing in ci/ directory.
This test discovers all top-level *.toml files under the project ci/ folder
and verifies they can be parsed by BuildFlags.parse without throwing.
"""
import unittest
from pathlib import Path
from typing import List
from ci.compiler.clang_compiler import BuildFlags
def find_ci_toml_files(ci_dir: Path) -> List[Path]:
"""Return a list of top-level *.toml files in ci/.
Args:
ci_dir: Absolute path to the ci/ directory
Returns:
List of absolute paths to .toml files directly under ci/.
"""
toml_files: List[Path] = []
for entry in ci_dir.iterdir():
if entry.is_file() and entry.suffix == ".toml":
toml_files.append(entry.resolve())
return toml_files
class TestBuildFlagsParsing(unittest.TestCase):
def test_parse_all_ci_tomls(self) -> None:
project_root: Path = Path(__file__).resolve().parent.parent.parent
ci_dir: Path = project_root / "ci"
self.assertTrue(ci_dir.exists(), f"ci directory not found at {ci_dir}")
toml_files: List[Path] = find_ci_toml_files(ci_dir)
self.assertTrue(len(toml_files) > 0, "No .toml files found in ci/")
for toml_path in toml_files:
with self.subTest(toml=str(toml_path)):
# Ensure each ci/*.toml parses without throwing
_ = BuildFlags.parse(toml_path, quick_build=True, strict_mode=False)
if __name__ == "__main__":
unittest.main()