|
|
@@ -524,6 +524,34 @@ class WrapperGeneratorTests(unittest.TestCase):
|
|
|
self.assertFalse(profile["capabilities"]["reasoning"])
|
|
|
self.assertFalse(profile["needs_enable_thinking"])
|
|
|
|
|
|
+ def test_preserve_thinking_without_enable_thinking_is_not_reasoning_capable(self):
|
|
|
+ metadata = {
|
|
|
+ "general.architecture": "qwen35moe",
|
|
|
+ "general.name": "Preserve Only Model",
|
|
|
+ "general.basename": "Preserve Only Model",
|
|
|
+ "tokenizer.chat_template": (
|
|
|
+ "{%- if preserve_thinking is defined and preserve_thinking is true %}"
|
|
|
+ "{{ '<think>\\nold reasoning\\n</think>\\n\\n' }}"
|
|
|
+ "{%- endif %}<tools>"
|
|
|
+ ),
|
|
|
+ "qwen2.context_length": "262144",
|
|
|
+ }
|
|
|
+
|
|
|
+ profile = gen.build_virtual_model_profile(metadata)
|
|
|
+ files = gen.build_virtual_model_files(
|
|
|
+ publisher="publisher-d",
|
|
|
+ slug="preserve-only-model",
|
|
|
+ model_key="publisher-d/Preserve-Only-Model-GGUF/model.gguf",
|
|
|
+ profile=profile,
|
|
|
+ )
|
|
|
+
|
|
|
+ self.assertFalse(profile["capabilities"]["reasoning"])
|
|
|
+ self.assertFalse(profile["needs_enable_thinking"])
|
|
|
+ self.assertFalse(profile["needs_preserve_thinking"])
|
|
|
+ self.assertIn("reasoning: false", files["model.yaml"])
|
|
|
+ self.assertNotIn("key: enableThinking", files["model.yaml"])
|
|
|
+ self.assertNotIn("key: preserveThinking", files["model.yaml"])
|
|
|
+
|
|
|
def test_gemma4_pipe_style_tool_tokens_are_detected(self):
|
|
|
metadata = {
|
|
|
"general.architecture": "gemma4",
|