Skip to content

Commit

Permalink
test executor run method
Browse files Browse the repository at this point in the history
  • Loading branch information
DaltheCow committed Jul 10, 2024
1 parent 98f79c4 commit c0284a3
Showing 1 changed file with 54 additions and 1 deletion.
55 changes: 54 additions & 1 deletion tests/unit/executor/test_executor.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
from unittest.mock import MagicMock
import pytest
from unittest.mock import MagicMock, patch
from src.guidellm.backend.base import Backend
from src.guidellm.executor.executor import Executor
from src.guidellm.executor.profile_generator import Profile, ProfileGenerator
from src.guidellm.request.base import RequestGenerator
from src.guidellm.scheduler.load_generator import LoadGenerationModes

def test_executor_creation():
mock_request_generator = MagicMock(spec=RequestGenerator)
Expand All @@ -15,3 +18,53 @@ def test_executor_creation():
assert executor.backend == mock_backend
assert executor.max_requests == max_requests
assert executor.max_duration == max_duration


@pytest.fixture
def mock_request_generator():
return MagicMock(spec=RequestGenerator)

@pytest.fixture
def mock_backend():
return MagicMock(spec=Backend)

@pytest.fixture
def mock_scheduler():
with patch('src.guidellm.executor.executor.Scheduler') as MockScheduler:
yield MockScheduler

def test_executor_run(mock_request_generator, mock_backend, mock_scheduler):

mock_profile_generator = MagicMock(spec=ProfileGenerator)
profiles = [
Profile(load_gen_mode=LoadGenerationModes.CONSTANT, load_gen_rate=1.0),
Profile(load_gen_mode=LoadGenerationModes.CONSTANT, load_gen_rate=2.0),
None
]
mock_profile_generator.next_profile.side_effect = profiles

with patch('src.guidellm.executor.executor.ProfileGenerator.create_generator', return_value=mock_profile_generator):
executor = Executor(
request_generator=mock_request_generator,
backend=mock_backend,
rate_type="constant",
profile_args={"rate_type": "constant", "rate": [1.0, 2.0]},
max_requests=10,
max_duration=100
)

mock_benchmark = MagicMock()
mock_scheduler.return_value.run.return_value = mock_benchmark

report = executor.run()


assert mock_scheduler.call_count == 2
assert len(report.benchmarks) == 2
assert report.benchmarks[0] == mock_benchmark
assert report.benchmarks[1] == mock_benchmark
calls = mock_scheduler.call_args_list
assert calls[0][1]['load_gen_mode'] == LoadGenerationModes.CONSTANT
assert calls[0][1]['load_gen_rate'] == 1.0
assert calls[1][1]['load_gen_mode'] == LoadGenerationModes.CONSTANT
assert calls[1][1]['load_gen_rate'] == 2.0

0 comments on commit c0284a3

Please sign in to comment.