1- import pytest
21from unittest .mock import MagicMock , patch
2+
3+ import pytest
4+
35from guidellm .backend .base import Backend
4- from guidellm .executor import Executor
5- from guidellm .executor import Profile , ProfileGenerator
6+ from guidellm .executor import Executor , Profile , ProfileGenerator
67from guidellm .executor .profile_generator import ProfileGenerationMode
78from guidellm .request .base import RequestGenerator
89from guidellm .scheduler import LoadGenerationMode
910
11+
1012def test_executor_creation ():
1113 mock_request_generator = MagicMock (spec = RequestGenerator )
1214 mock_backend = MagicMock (spec = Backend )
1315 profile_mode = ProfileGenerationMode .SWEEP
1416 profile_args = None
15- max_requests = None ,
16- max_duration = None ,
17- executor = Executor (mock_backend , mock_request_generator , profile_mode , profile_args , max_requests , max_duration );
17+ max_requests = (None ,)
18+ max_duration = (None ,)
19+ executor = Executor (
20+ mock_backend ,
21+ mock_request_generator ,
22+ profile_mode ,
23+ profile_args ,
24+ max_requests ,
25+ max_duration ,
26+ )
1827 assert executor .request_generator == mock_request_generator
1928 assert executor .backend == mock_backend
2029 assert executor .max_requests == max_requests
@@ -25,47 +34,54 @@ def test_executor_creation():
2534def mock_request_generator ():
2635 return MagicMock (spec = RequestGenerator )
2736
37+
2838@pytest .fixture
2939def mock_backend ():
3040 return MagicMock (spec = Backend )
3141
42+
3243@pytest .fixture
3344def mock_scheduler ():
34- with patch (' guidellm.executor.executor.Scheduler' ) as MockScheduler :
45+ with patch (" guidellm.executor.executor.Scheduler" ) as MockScheduler :
3546 yield MockScheduler
3647
37- def test_executor_run (mock_request_generator , mock_backend , mock_scheduler ):
3848
49+ def test_executor_run (mock_request_generator , mock_backend , mock_scheduler ):
3950 mock_profile_generator = MagicMock (spec = ProfileGenerator )
4051 profiles = [
4152 Profile (load_gen_mode = LoadGenerationMode .CONSTANT , load_gen_rate = 1.0 ),
4253 Profile (load_gen_mode = LoadGenerationMode .CONSTANT , load_gen_rate = 2.0 ),
43- None
54+ None ,
4455 ]
4556 mock_profile_generator .next .side_effect = profiles
46-
47- with patch ('guidellm.executor.executor.ProfileGenerator.create' , return_value = mock_profile_generator ):
57+
58+ with patch (
59+ "guidellm.executor.executor.ProfileGenerator.create" ,
60+ return_value = mock_profile_generator ,
61+ ):
4862 executor = Executor (
4963 request_generator = mock_request_generator ,
5064 backend = mock_backend ,
5165 profile_mode = ProfileGenerationMode .FIXED_RATE ,
52- profile_args = {"load_gen_mode" : LoadGenerationMode .CONSTANT , "rates" : [1.0 , 2.0 ]},
66+ profile_args = {
67+ "load_gen_mode" : LoadGenerationMode .CONSTANT ,
68+ "rates" : [1.0 , 2.0 ],
69+ },
5370 max_requests = 10 ,
54- max_duration = 100
71+ max_duration = 100 ,
5572 )
5673
5774 mock_benchmark = MagicMock ()
5875 mock_scheduler .return_value .run .return_value = mock_benchmark
5976
6077 report = executor .run ()
6178
62-
6379 assert mock_scheduler .call_count == 2
6480 assert len (report .benchmarks ) == 2
6581 assert report .benchmarks [0 ] == mock_benchmark
6682 assert report .benchmarks [1 ] == mock_benchmark
6783 calls = mock_scheduler .call_args_list
68- assert calls [0 ][1 ][' load_gen_mode' ] == LoadGenerationMode .CONSTANT
69- assert calls [0 ][1 ][' load_gen_rate' ] == 1.0
70- assert calls [1 ][1 ][' load_gen_mode' ] == LoadGenerationMode .CONSTANT
71- assert calls [1 ][1 ][' load_gen_rate' ] == 2.0
84+ assert calls [0 ][1 ][" load_gen_mode" ] == LoadGenerationMode .CONSTANT
85+ assert calls [0 ][1 ][" load_gen_rate" ] == 1.0
86+ assert calls [1 ][1 ][" load_gen_mode" ] == LoadGenerationMode .CONSTANT
87+ assert calls [1 ][1 ][" load_gen_rate" ] == 2.0
0 commit comments