Skip to content

Commit 79c03ce

Browse files
committed
fix all broken tests
1 parent 1d3a7cf commit 79c03ce

File tree

8 files changed

+38
-31
lines changed

8 files changed

+38
-31
lines changed

src/guidellm/executor/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from .executor import Executor
22
from .profile_generator import (
33
rate_type_to_load_gen_mode,
4+
rate_type_to_profile_mode,
45
Profile,
56
ProfileGenerationMode,
67
ProfileGenerator,
@@ -10,6 +11,7 @@
1011

1112
__all__ = [
1213
"rate_type_to_load_gen_mode",
14+
"rate_type_to_profile_mode",
1315
"Executor",
1416
"ProfileGenerationMode",
1517
"Profile",

src/guidellm/executor/executor.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,13 @@ def __init__(
2020
self,
2121
backend: Backend,
2222
request_generator: RequestGenerator,
23-
rate_type: str = "sweep",
23+
profile_mode: ProfileGenerationMode = ProfileGenerationMode.SWEEP,
2424
profile_args: Optional[Dict[str, Any]] = None,
2525
max_requests: Optional[int] = None,
2626
max_duration: Optional[float] = None,
2727
):
2828
self.request_generator = request_generator
2929
self.backend = backend
30-
profile_mode = "sweep"
31-
if rate_type in {"synchronous", "constant", "poisson"}:
32-
profile_mode = ProfileGenerationMode.FIXED_RATE
33-
elif rate_type == "sweep":
34-
profile_mode = ProfileGenerationMode.SWEEP
35-
else:
36-
raise ValueError("invalid rate type provided")
3730
self.profile_generator: ProfileGenerator = ProfileGenerator.create(
3831
profile_mode, **(profile_args or {})
3932
)

src/guidellm/executor/profile_generator.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,17 @@
2222
"poisson": LoadGenerationMode.POISSON
2323
}
2424

25+
2526
class ProfileGenerationMode(Enum):
2627
FIXED_RATE = "fixed_rate"
2728
SWEEP = "sweep"
2829

30+
rate_type_to_profile_mode = {
31+
"synchronous": ProfileGenerationMode.FIXED_RATE,
32+
"constant": ProfileGenerationMode.FIXED_RATE,
33+
"poisson": ProfileGenerationMode.FIXED_RATE,
34+
"sweep": ProfileGenerationMode.SWEEP,
35+
}
2936

3037
@dataclass
3138
class Profile:

src/guidellm/main.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from guidellm.backend import Backend
44
from guidellm.core import TextGenerationBenchmarkReport
5-
from guidellm.executor import Executor, rate_type_to_load_gen_mode
5+
from guidellm.executor import Executor, rate_type_to_load_gen_mode, rate_type_to_profile_mode
66
from guidellm.request import (
77
EmulatedRequestGenerator,
88
FileRequestGenerator,
@@ -108,12 +108,14 @@ def main(
108108
else:
109109
raise ValueError(f"Unknown data type: {data_type}")
110110

111+
profile_mode = rate_type_to_profile_mode(rate_type)
111112
load_gen_mode = rate_type_to_load_gen_mode.get(rate_type, None)
113+
112114
# Create executor
113115
executor = Executor(
114116
request_generator=request_generator,
115117
backend=backend,
116-
rate_type=rate_type,
118+
profile_mode=profile_mode,
117119
profile_args={"load_gen_mode": load_gen_mode, "rates": rate},
118120
max_requests=num_requests,
119121
max_duration=num_seconds,

tests/integration/executor/test_report_generation.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ def test_executor_openai_single_report_generation_sync_mode(
1818
)
1919
profile_generation_mode = ProfileGenerationMode.FIXED_RATE
2020
profile_generator_kwargs = {
21-
"rate_type": LoadGenerationMode.SYNCHRONOUS,
22-
"rate": [1.0],
21+
"load_gen_mode": LoadGenerationMode.SYNCHRONOUS,
2322
}
2423

2524
executor = Executor(
@@ -57,8 +56,8 @@ def test_executor_openai_single_report_generation_constant_mode_infinite(
5756
)
5857
profile_generation_mode = ProfileGenerationMode.FIXED_RATE
5958
profile_generator_kwargs = {
60-
"rate_type": LoadGenerationMode.CONSTANT,
61-
"rate": [1.0],
59+
"load_gen_mode": LoadGenerationMode.CONSTANT,
60+
"rates": [1.0],
6261
}
6362

6463
executor = Executor(
@@ -90,8 +89,8 @@ def test_executor_openai_single_report_generation_constant_mode_limited(
9089
)
9190
profile_generation_mode = ProfileGenerationMode.FIXED_RATE
9291
profile_generator_kwargs = {
93-
"rate_type": LoadGenerationMode.CONSTANT,
94-
"rate": [1.0],
92+
"load_gen_mode": LoadGenerationMode.CONSTANT,
93+
"rates": [1.0],
9594
}
9695

9796
executor = Executor(
@@ -126,8 +125,8 @@ def test_executor_openai_single_report_generation_constant_mode_failed(
126125
)
127126
profile_generation_mode = ProfileGenerationMode.FIXED_RATE
128127
profile_generator_kwargs = {
129-
"rate_type": LoadGenerationMode.CONSTANT,
130-
"rate": [1.0],
128+
"load_gen_mode": LoadGenerationMode.CONSTANT,
129+
"rates": [1.0],
131130
}
132131

133132
executor = Executor(
@@ -155,8 +154,8 @@ def test_executor_openai_single_report_generation_constant_mode_cancelled_report
155154
)
156155
profile_generation_mode = ProfileGenerationMode.FIXED_RATE
157156
profile_generator_kwargs = {
158-
"rate_type": LoadGenerationMode.CONSTANT,
159-
"rate": [1.0],
157+
"load_gen_mode": LoadGenerationMode.CONSTANT,
158+
"rates": [1.0],
160159
}
161160

162161
executor = Executor(

tests/unit/executor/test_executor.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,18 @@
33
from guidellm.backend.base import Backend
44
from guidellm.executor import Executor
55
from guidellm.executor import Profile, ProfileGenerator
6+
from guidellm.executor.profile_generator import ProfileGenerationMode
67
from guidellm.request.base import RequestGenerator
78
from guidellm.scheduler import LoadGenerationMode
89

910
def test_executor_creation():
1011
mock_request_generator = MagicMock(spec=RequestGenerator)
1112
mock_backend = MagicMock(spec=Backend)
12-
rate_type = "sweep"
13+
profile_mode = ProfileGenerationMode.SWEEP
1314
profile_args = None
1415
max_requests = None,
1516
max_duration = None,
16-
executor = Executor(mock_backend, mock_request_generator, rate_type, profile_args, max_requests, max_duration);
17+
executor = Executor(mock_backend, mock_request_generator, profile_mode, profile_args, max_requests, max_duration);
1718
assert executor.request_generator == mock_request_generator
1819
assert executor.backend == mock_backend
1920
assert executor.max_requests == max_requests
@@ -47,8 +48,8 @@ def test_executor_run(mock_request_generator, mock_backend, mock_scheduler):
4748
executor = Executor(
4849
request_generator=mock_request_generator,
4950
backend=mock_backend,
50-
rate_type="constant",
51-
profile_args={"rate_type": "constant", "rate": [1.0, 2.0]},
51+
profile_mode=ProfileGenerationMode.FIXED_RATE,
52+
profile_args={"load_gen_mode": LoadGenerationMode.CONSTANT, "rates": [1.0, 2.0]},
5253
max_requests=10,
5354
max_duration=100
5455
)

tests/unit/executor/test_profile_generator.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def test_rate_doubles():
6565
mock_report = MagicMock(spec=TextGenerationBenchmarkReport)
6666
mock_benchmark = MagicMock(spec=TextGenerationBenchmark)
6767
mock_benchmark.overloaded = False
68-
mock_benchmark.args_rate = 2.0
68+
mock_benchmark.rate = 2.0
6969
mock_benchmark.request_rate = 2.0
7070
benchmarks = [
7171
mock_benchmark
@@ -81,11 +81,11 @@ def test_max_found():
8181
mock_report = MagicMock(spec=TextGenerationBenchmarkReport)
8282
mock_benchmark = MagicMock(spec=TextGenerationBenchmark)
8383
mock_benchmark.overloaded = False
84-
mock_benchmark.args_rate = 2.0
84+
mock_benchmark.rate = 2.0
8585
mock_benchmark.request_rate = 2.0
8686
mock_overloaded_benchmark = MagicMock(spec=TextGenerationBenchmark)
8787
mock_overloaded_benchmark.overloaded = True
88-
mock_overloaded_benchmark.args_rate = 4.0
88+
mock_overloaded_benchmark.rate = 4.0
8989
mock_overloaded_benchmark.request_rate = 4.0
9090
benchmarks = [
9191
mock_benchmark,
@@ -104,11 +104,11 @@ def test_pending_rates():
104104
mock_report = MagicMock(spec=TextGenerationBenchmarkReport)
105105
mock_benchmark = MagicMock(spec=TextGenerationBenchmark)
106106
mock_benchmark.overloaded = False
107-
mock_benchmark.args_rate = 2.0
107+
mock_benchmark.rate = 2.0
108108
mock_benchmark.request_rate = 2.0
109109
mock_overloaded_benchmark = MagicMock(spec=TextGenerationBenchmark)
110110
mock_overloaded_benchmark.overloaded = True
111-
mock_overloaded_benchmark.args_rate = 8.0
111+
mock_overloaded_benchmark.rate = 8.0
112112
mock_overloaded_benchmark.request_rate = 8.0
113113
benchmarks = [
114114
mock_benchmark,

tests/unit/executor/test_single_profile_generation_mode.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,15 @@ def test_executor_single_profile_generator_benchmark_report(
2424
request_genrator = dummy.services.TestRequestGenerator(
2525
tokenizer="bert-base-uncased"
2626
)
27-
profile_generator_kwargs = {"rate_type": load_gen_mode, "rate": 1.0}
27+
rates = [1.0]
28+
if (load_gen_mode == LoadGenerationMode.SYNCHRONOUS):
29+
rates = None
30+
profile_generator_kwargs = {"load_gen_mode": load_gen_mode, "rates": rates}
2831

2932
executor = Executor(
3033
backend=openai_backend_factory(),
3134
request_generator=request_genrator,
32-
profile_mode=ProfileGenerationMode.SINGLE,
35+
profile_mode=ProfileGenerationMode.FIXED_RATE,
3336
profile_args=profile_generator_kwargs,
3437
max_requests=1,
3538
max_duration=None,

0 commit comments

Comments
 (0)