1
1
import pytest
2
- from pathlib import Path
3
- from unittest . mock import patch , MagicMock
2
+ import transformers
3
+ from transformers import AutoTokenizer
4
4
from transformers import PreTrainedTokenizerBase
5
5
6
6
from guidellm .utils .hf_transformers import check_load_processor
7
7
8
- class DummyTokenizer (PreTrainedTokenizerBase ):
9
- def __init__ (self ):
10
- pass
8
+ class dummyTokenizer (PreTrainedTokenizerBase ):
9
+ pass
11
10
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 )
11
+ def test_processor_is_none ():
12
+ with pytest .raises (ValueError , match = "Processor/Tokenizer is required for test." ):
13
+ check_load_processor (None , None , "test" )
17
14
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
15
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 )
16
+ def test_processor_not_isinstance ():
17
+ with pytest .raises (ValueError , match = "Invalid processor/Tokenizer for test." ):
18
+ check_load_processor (123 , None , "test" )
27
19
28
- def test_check_load_processor_none_raises ():
29
- with pytest .raises (ValueError , match = "Processor/Tokenizer is required" ):
30
- check_load_processor (None , None , "test" )
20
+ def test_processor_load_by_path (monkeypatch ):
21
+ monkeypatch .setattr (transformers .AutoTokenizer , "from_pretrained" , lambda * args , ** kwargs : dummyTokenizer ())
22
+ tokenizer = check_load_processor ("/tmp" , None , "test" )
23
+ assert isinstance (tokenizer , PreTrainedTokenizerBase )
31
24
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" )
25
+ def test_processor_load_error (monkeypatch ):
26
+ def raise_error (* args , ** kwargs ):
27
+ raise RuntimeError ("test error" )
28
+ monkeypatch .setattr (
29
+ "transformers.AutoTokenizer.from_pretrained" ,
30
+ raise_error
31
+ )
32
+ with pytest .raises (ValueError , match = "Failed to load processor/Tokenizer for test." ):
33
+ check_load_processor ("gpt2" , None , "test" )
0 commit comments