11import  pytest 
2- from  pathlib  import  Path 
3- from  unittest .mock  import  patch , MagicMock 
2+ import  transformers 
43from  transformers  import  PreTrainedTokenizerBase 
54
65from  guidellm .utils .hf_transformers  import  check_load_processor 
76
7+ 
88class  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