main
py 51 lines 1.52 KB
Raw
1 # SPDX-License-Identifier: Apache-2.0
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3 import contextlib
4 import io
5 from types import SimpleNamespace
6 from unittest.mock import Mock
7
8 import pytest
9 import torch
10
11 from vllm.model_executor.model_loader import tensorizer
12
13 pytestmark = [pytest.mark.cpu_test, pytest.mark.skip_global_cleanup]
14
15
16 def test_serialize_vllm_model_forwards_model_revision(
17 monkeypatch: pytest.MonkeyPatch,
18 ):
19 @contextlib.contextmanager
20 def fake_open_stream(*args, **kwargs):
21 yield io.BytesIO()
22
23 snapshot_download = Mock()
24 monkeypatch.setattr(tensorizer, "open_stream", fake_open_stream)
25 monkeypatch.setattr(tensorizer, "TensorSerializer", Mock())
26 monkeypatch.setattr(
27 tensorizer,
28 "hf_api",
29 lambda: SimpleNamespace(snapshot_download=snapshot_download),
30 )
31
32 model = torch.nn.Module()
33 tensorizer_config = SimpleNamespace(
34 _construct_tensorizer_args=lambda: SimpleNamespace(
35 tensorizer_uri="/tmp/model.tensors",
36 tensorizer_dir="/tmp/out",
37 stream_kwargs={},
38 ),
39 encryption_keyfile=None,
40 _is_sharded=False,
41 serialization_kwargs=None,
42 )
43 model_config = SimpleNamespace(
44 served_model_name="repo/model",
45 revision="pinned-revision",
46 )
47
48 tensorizer.serialize_vllm_model(model, tensorizer_config, model_config)
49
50 assert snapshot_download.call_args.args == ("repo/model",)
51 assert snapshot_download.call_args.kwargs["revision"] == "pinned-revision"