[core] Suppress component source overflow warnings in testing mode (#15320)

This commit is contained in:
J. Nick Koston
2026-03-30 08:48:04 -10:00
committed by GitHub
parent 8688ef7125
commit 8561a8c495
2 changed files with 27 additions and 6 deletions
+7 -5
View File
@@ -71,11 +71,13 @@ def register_component_source(name: str) -> int:
return pool.sources[name] return pool.sources[name]
idx = len(pool.sources) + 1 idx = len(pool.sources) + 1
if idx > _MAX_COMPONENT_SOURCES: if idx > _MAX_COMPONENT_SOURCES:
_LOGGER.warning( if not CORE.testing_mode:
"Too many unique component source names (max %d), '%s' will show as '<unknown>'", _LOGGER.warning(
_MAX_COMPONENT_SOURCES, "Too many unique component source names (max %d), "
name, "'%s' will show as '<unknown>'",
) _MAX_COMPONENT_SOURCES,
name,
)
return 0 return 0
pool.sources[name] = idx pool.sources[name] = idx
_ensure_source_table_registered() _ensure_source_table_registered()
+20 -1
View File
@@ -140,9 +140,28 @@ def test_register_component_source_overflow_warns(
sources={f"comp_{i}": i + 1 for i in range(0xFF)}, sources={f"comp_{i}": i + 1 for i in range(0xFF)},
table_registered=True, table_registered=True,
) )
monkeypatch.setattr(ch, "CORE", Mock(data={ch._COMPONENT_SOURCE_DOMAIN: pool})) monkeypatch.setattr(
ch, "CORE", Mock(data={ch._COMPONENT_SOURCE_DOMAIN: pool}, testing_mode=False)
)
with caplog.at_level(logging.WARNING): with caplog.at_level(logging.WARNING):
idx = register_component_source("overflow_component") idx = register_component_source("overflow_component")
assert idx == 0 assert idx == 0
assert "Too many unique component source names" in caplog.text assert "Too many unique component source names" in caplog.text
assert "overflow_component" in caplog.text assert "overflow_component" in caplog.text
def test_register_component_source_overflow_suppressed_in_testing_mode(
monkeypatch: pytest.MonkeyPatch, caplog: pytest.LogCaptureFixture
) -> None:
# Pre-fill pool to max
pool = ComponentSourcePool(
sources={f"comp_{i}": i + 1 for i in range(0xFF)},
table_registered=True,
)
monkeypatch.setattr(
ch, "CORE", Mock(data={ch._COMPONENT_SOURCE_DOMAIN: pool}, testing_mode=True)
)
with caplog.at_level(logging.WARNING):
idx = register_component_source("overflow_component")
assert idx == 0
assert "Too many unique component source names" not in caplog.text