11import pytest
2- from pathlib import Path
3- from unittest . mock import patch , MagicMock
2+ import transformers
3+ from transformers import AutoTokenizer
44from transformers import PreTrainedTokenizerBase
55
66from guidellm .utils .hf_transformers import check_load_processor
77
8- class DummyTokenizer (PreTrainedTokenizerBase ):
9- def __init__ (self ):
10- pass
8+ class dummyTokenizer (PreTrainedTokenizerBase ):
9+ pass
1110
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" )
1714
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 )
2215
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" )
2719
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 )
3124
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