* fix: auto-naming for 24h time format needs_auto_name() required AM/PM suffix for default frontend-generated names like 'deepseek-v4-flash 17:46:02'. Frontend uses toLocaleTimeString() which outputs 24h format in most locales — so the regex never matched and auto-naming silently skipped. Made AM/PM optional and added re.IGNORECASE for 'am'/'pm'. * test: add regression tests for needs_auto_name (24h + 12h + custom) --------- Co-authored-by: Calculator Dev <dev@calculator.local>
30 lines
869 B
Python
30 lines
869 B
Python
import pytest
|
||
from routes.chat_helpers import needs_auto_name
|
||
|
||
|
||
@pytest.mark.parametrize("name,expected", [
|
||
# 24h format (the bug this PR fixes)
|
||
("deepseek-v4-flash 14:05:33", True),
|
||
("qwq 17:46:02", True),
|
||
("gemma3 23:59:59", True),
|
||
("claude-sonnet 4 0:00:00", True),
|
||
|
||
# 12h format (was already working)
|
||
("deepseek-v4-flash 2:05:33 PM", True),
|
||
("qwq 06:46:02 AM", True),
|
||
("claude-sonnet-4 8:05:17 am", True),
|
||
|
||
# empty / default
|
||
("", True),
|
||
(" ", False),
|
||
("Chat: something", True),
|
||
|
||
# custom titles – should NOT trigger auto-naming
|
||
("custom title", False),
|
||
("CW Decoder for STM32", False),
|
||
("my chat about python", False),
|
||
("Fix the login bug", False),
|
||
])
|
||
def test_needs_auto_name(name, expected):
|
||
assert needs_auto_name(name) == expected, f"needs_auto_name({name!r}) should be {expected}"
|