low_bit_open_llm_leaderboard / tests /test_quant_defaults.py
123Cherry2026's picture
Copilot
Preserve Gradio event indices across Space updates
9ff93c7 unverified
Raw History Blame Contribute Delete
2.12 kB
import ast
from pathlib import Path
from unittest.mock import patch
import pytest
from src.app_helpers.quant_defaults import default_quant_method
@pytest.mark.parametrize('size, expected', [
(7, 'Tuning'), (100, 'Tuning'), (100.01, 'RTN'), (235, 'RTN'), (None, 'Tuning'),
])
def test_parameter_threshold(size, expected):
with patch('src.app_helpers.quant_defaults.get_model_size_b', return_value=size):
assert default_quant_method('org/model')['value'].startswith(expected)
def test_empty_model_resets_without_hub_request():
with patch('src.app_helpers.quant_defaults.get_model_size_b') as lookup:
assert default_quant_method('')['value'].startswith('Tuning')
lookup.assert_not_called()
def test_metadata_error_keeps_form_usable():
with patch('src.app_helpers.quant_defaults.get_model_size_b', side_effect=ValueError):
assert default_quant_method('org/model')['value'].startswith('Tuning')
def test_default_handler_does_not_shift_existing_gradio_events():
source = (Path(__file__).resolve().parents[1] / 'app.py').read_text()
tree = ast.parse(source)
default_handlers = [
node for node in ast.walk(tree)
if isinstance(node, ast.Call)
and isinstance(node.func, ast.Attribute)
and any(
keyword.arg == 'fn'
and isinstance(keyword.value, ast.Name)
and keyword.value.id == 'default_quant_method'
for keyword in node.keywords
)
]
assert len(default_handlers) == 1
handler = default_handlers[0]
assert handler.func.attr == 'then'
assert isinstance(handler.func.value, ast.Name)
assert handler.func.value.id == '_quant_license_evt'
timer_ticks = [
node for node in ast.walk(tree)
if isinstance(node, ast.Call)
and isinstance(node.func, ast.Attribute)
and node.func.attr == 'tick'
and isinstance(node.func.value, ast.Name)
and node.func.value.id in {'_queue_timer', '_pipeline_timer'}
]
assert len(timer_ticks) == 2
assert handler.lineno > max(tick.lineno for tick in timer_ticks)