Skip to content

Commit d93662c

Browse files
jinyejinye
authored andcommitted
add ut for hf_transformers
Signed-off-by: jinye <[email protected]>
1 parent 727e179 commit d93662c

File tree

1 file changed

+32
-26
lines changed

1 file changed

+32
-26
lines changed
Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,40 @@
11
import pytest
2-
from pathlib import Path
3-
from unittest.mock import patch, MagicMock
2+
import transformers
43
from transformers import PreTrainedTokenizerBase
54

65
from guidellm.utils.hf_transformers import check_load_processor
76

7+
88
class DummyTokenizer(PreTrainedTokenizerBase):
9-
def __init__(self):
10-
pass
11-
12-
@patch("guidellm.utils.hf_transformers.AutoTokenizer.from_pretrained", return_value=DummyTokenizer())
13-
def test_check_load_processor_with_tokenizer_instance(mock_from_pretrained):
14-
tokenizer = DummyTokenizer()
15-
result = check_load_processor(tokenizer, None, "test")
16-
assert isinstance(result, PreTrainedTokenizerBase)
17-
18-
@patch("guidellm.utils.hf_transformers.AutoTokenizer.from_pretrained", return_value=DummyTokenizer())
19-
def test_check_load_processor_with_tokenizer_name(mock_from_pretrained):
20-
result = check_load_processor("bert-base-uncased", None, "test")
21-
assert isinstance(result, PreTrainedTokenizerBase)
22-
23-
@patch("guidellm.utils.hf_transformers.AutoTokenizer.from_pretrained", return_value=DummyTokenizer())
24-
def test_check_load_processor_with_tokenizer_path(mock_from_pretrained, tmp_path):
25-
result = check_load_processor(tmp_path, None, "test")
26-
assert isinstance(result, PreTrainedTokenizerBase)
27-
28-
def test_check_load_processor_none_raises():
29-
with pytest.raises(ValueError, match="Processor/Tokenizer is required"):
9+
pass
10+
11+
12+
def test_processor_is_none():
13+
with pytest.raises(ValueError, match="Processor/Tokenizer is required for test."):
3014
check_load_processor(None, None, "test")
3115

32-
def test_check_load_processor_invalid_type_raises():
33-
with pytest.raises(ValueError, match="Invalid processor/Tokenizer"):
34-
check_load_processor(123, None, "test")
16+
17+
def test_processor_not_isinstance():
18+
with pytest.raises(ValueError, match="Invalid processor/Tokenizer for test."):
19+
check_load_processor(123, None, "test") # type: ignore
20+
21+
22+
def test_processor_load_by_path(monkeypatch, tmp_path):
23+
monkeypatch.setattr(
24+
transformers.AutoTokenizer,
25+
"from_pretrained",
26+
lambda *args, **kwargs: DummyTokenizer(),
27+
)
28+
tokenizer = check_load_processor(tmp_path, None, "test")
29+
assert isinstance(tokenizer, PreTrainedTokenizerBase)
30+
31+
32+
def test_processor_load_error(monkeypatch):
33+
def raise_error(*args, **kwargs):
34+
raise RuntimeError("test error")
35+
36+
monkeypatch.setattr("transformers.AutoTokenizer.from_pretrained", raise_error)
37+
with pytest.raises(
38+
ValueError, match="Failed to load processor/Tokenizer for test."
39+
):
40+
check_load_processor("gpt2", None, "test")

0 commit comments

Comments
 (0)