1
1
import pytest
2
- from pathlib import Path
3
- from unittest .mock import patch , MagicMock
2
+ import transformers
4
3
from transformers import PreTrainedTokenizerBase
5
4
6
5
from guidellm .utils .hf_transformers import check_load_processor
7
6
7
+
8
8
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." ):
30
14
check_load_processor (None , None , "test" )
31
15
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