Hanrui / sglang /test /registered /debug_utils /source_patcher /test_dumper_integration.py
Lekr0's picture
Add files using upload-large-folder tool
a402b9b verified
"""Test dumper.apply_source_patches() integration with source_patcher."""
from pathlib import Path
from types import ModuleType
import yaml
from sglang.srt.debug_utils.dumper import DumperConfig, _Dumper
from sglang.test.ci.ci_register import register_cpu_ci
register_cpu_ci(est_time=10, suite="default", nightly=True)
SAMPLE_MODULE_NAME = "_source_patcher_test_fixtures.sample_module"
class TestDumperApplySourcePatches:
def test_no_config_is_noop(self) -> None:
config = DumperConfig(source_patcher_config=None)
d = _Dumper(config=config)
d.apply_source_patches()
def test_patches_applied_from_yaml(
self, sample_module: ModuleType, tmp_path: Path
) -> None:
cls = sample_module.SampleClass
obj = cls()
assert obj.greet("world") == "hello world"
original_code = cls.greet.__code__
patch_config = {
"patches": [
{
"target": f"{SAMPLE_MODULE_NAME}.SampleClass.greet",
"edits": [
{
"match": 'greeting = f"hello {name}"',
"replacement": 'greeting = f"dumper_patched {name}"',
}
],
}
]
}
config_path = tmp_path / "patch_config.yaml"
config_path.write_text(yaml.dump(patch_config))
config = DumperConfig(source_patcher_config=str(config_path))
d = _Dumper(config=config)
try:
d.apply_source_patches()
assert obj.greet("world") == "dumper_patched world"
finally:
cls.greet.__code__ = original_code
assert obj.greet("world") == "hello world"