92 lines
3.0 KiB
Python
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()
|