fix: _lookup_bandwidth crashes on a truthy non-string gpu_name (#1641)

This commit is contained in:
Afonso Coutinho
2026-06-03 06:11:10 +01:00
committed by GitHub
parent d1309f3bd6
commit 04f8aa1833
2 changed files with 17 additions and 1 deletions

View File

@@ -61,7 +61,7 @@ CONTEXT_TARGET = {
def _lookup_bandwidth(gpu_name):
if not gpu_name:
if not isinstance(gpu_name, str) or not gpu_name:
return None
gn = gpu_name.lower()
for key in _BW_KEYS_SORTED:

View File

@@ -0,0 +1,16 @@
"""Regression: _lookup_bandwidth must tolerate a non-string gpu_name.
It guarded only falsy values; a truthy non-string (e.g. a number from a
malformed hardware probe) reached `gpu_name.lower()` and raised AttributeError.
"""
from services.hwfit.fit import _lookup_bandwidth
def test_non_string_returns_none():
assert _lookup_bandwidth(123) is None
assert _lookup_bandwidth(["x"]) is None
assert _lookup_bandwidth(None) is None
def test_known_gpu_resolves():
assert _lookup_bandwidth("NVIDIA GeForce RTX 4090") is not None