Files
wehub-resource-sync a203934033
Lint test / lint (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:34:58 +08:00

23 lines
1.0 KiB
Python

# Copyright (c) ModelScope Contributors. All rights reserved.
from swift.template import TemplateMeta
def test_replace_system_preserves_non_string_elements():
"""_replace_system must not drop list elements like ['bos_token_id'].
Templates such as ziya, bluelm and emu3_chat use
``prefix=[['bos_token_id'], '{{SYSTEM}}']``. When no system message is
provided the prefix is produced by _replace_system, which should keep every
non-string element intact and only strip the placeholder from strings.
"""
meta = TemplateMeta(
template_type='_test_replace_system_bug',
prefix=[['bos_token_id'], '{{SYSTEM}}'],
prompt=['{{QUERY}}'],
chat_sep=['\n'],
)
# __post_init__ moves prefix to system_prefix and builds a no-system prefix
# via _replace_system. The list element must survive.
assert any(isinstance(p, list) for p in meta.prefix), (f'_replace_system dropped the bos_token_id list; '
f'meta.prefix={meta.prefix!r}')