Files
modelscope--funasr/tests/test_qwen3_asr_dependency_check.py
2026-07-13 13:25:10 +08:00

92 lines
3.0 KiB
Python

import sys
from pathlib import Path
import pytest
REPO_ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(REPO_ROOT))
from funasr.models.qwen3_asr import model as qwen3_model
def test_qwen3_asr_dependency_check_reports_transformers_mismatch(monkeypatch):
def fake_version(package_name):
versions = {
"qwen-asr": "0.0.6",
"transformers": "5.5.0",
}
return versions[package_name]
def fake_requires(package_name):
assert package_name == "qwen-asr"
return ["transformers==4.57.6", "accelerate==1.12.0"]
monkeypatch.setattr(qwen3_model, "_package_version", fake_version)
monkeypatch.setattr(qwen3_model, "_package_requires", fake_requires)
with pytest.raises(ImportError) as exc_info:
qwen3_model._check_qwen3_asr_dependencies()
message = str(exc_info.value)
assert "Qwen3-ASR dependency mismatch" in message
assert "qwen-asr==0.0.6 requires transformers==4.57.6" in message
assert "active environment has transformers==5.5.0" in message
assert 'pip install -U "qwen-asr==0.0.6" "transformers==4.57.6" accelerate' in message
def test_qwen3_asr_dependency_check_accepts_matching_transformers(monkeypatch):
def fake_version(package_name):
versions = {
"qwen-asr": "0.0.6",
"transformers": "4.57.6",
}
return versions[package_name]
def fake_requires(package_name):
assert package_name == "qwen-asr"
return ["transformers==4.57.6", "accelerate==1.12.0"]
monkeypatch.setattr(qwen3_model, "_package_version", fake_version)
monkeypatch.setattr(qwen3_model, "_package_requires", fake_requires)
qwen3_model._check_qwen3_asr_dependencies()
def test_qwen3_asr_dependency_check_matches_requirement_names_case_insensitively(monkeypatch):
def fake_version(package_name):
versions = {
"qwen-asr": "0.0.6",
"transformers": "5.5.0",
}
return versions[package_name]
def fake_requires(package_name):
assert package_name == "qwen-asr"
return ["Transformers==4.57.6"]
monkeypatch.setattr(qwen3_model, "_package_version", fake_version)
monkeypatch.setattr(qwen3_model, "_package_requires", fake_requires)
with pytest.raises(ImportError) as exc_info:
qwen3_model._check_qwen3_asr_dependencies()
assert "requires transformers==4.57.6" in str(exc_info.value)
def test_qwen3_asr_dependency_check_does_not_crash_on_non_pep440_transformers(monkeypatch):
def fake_version(package_name):
versions = {
"qwen-asr": "0.0.6",
"transformers": "custom-main",
}
return versions[package_name]
def fake_requires(package_name):
assert package_name == "qwen-asr"
return ["transformers==4.57.6"]
monkeypatch.setattr(qwen3_model, "_package_version", fake_version)
monkeypatch.setattr(qwen3_model, "_package_requires", fake_requires)
qwen3_model._check_qwen3_asr_dependencies()