@@ -93,63 +93,53 @@ def test_decode_nodes_zero_inherits_tp_from_prefill(self):
9393 assert total_needed <= total_available
9494
9595
96- class TestModelConfigIdentity :
97- """Tests for optional virtual identity fields on ModelConfig ."""
96+ class TestIdentityConfig :
97+ """Tests for the identity block ( virtual identity for runtime verification) ."""
9898
99- def test_optional_fields_default_to_none (self ):
100- """All identity fields are None when not specified ."""
101- from srtctl .core .schema import ModelConfig
99+ def test_defaults_to_empty (self ):
100+ """IdentityConfig has empty defaults ."""
101+ from srtctl .core .schema import IdentityConfig
102102
103- config = ModelConfig (path = "/model" , container = "/c.sqsh" , precision = "fp8" )
104- assert config .name is None
105- assert config .revision is None
106- assert config .container_image is None
107- assert config .container_digest is None
103+ config = IdentityConfig ()
104+ assert config .model .repo is None
105+ assert config .model .revision is None
106+ assert config .frameworks == {}
108107
109- def test_optional_fields_when_specified (self ):
110- """Identity fields are set when provided ."""
111- from srtctl .core .schema import ModelConfig
108+ def test_with_values (self ):
109+ """IdentityConfig stores model and framework info ."""
110+ from srtctl .core .schema import IdentityConfig , IdentityModelConfig
112111
113- config = ModelConfig (
114- path = "/model" ,
115- container = "/c.sqsh" ,
116- precision = "fp4" ,
117- name = "deepseek-ai/DeepSeek-R1" ,
118- revision = "e4e908c07378" ,
119- container_image = "lmsysorg/sglang:v0.4.6.post1" ,
120- container_digest = "sha256:abc123" ,
112+ config = IdentityConfig (
113+ model = IdentityModelConfig (repo = "nvidia/Kimi-K2.5-NVFP4" , revision = "abc123" ),
114+ frameworks = {"dynamo" : "1.0.0" , "tensorrt_llm" : "1.3.0rc9" },
121115 )
122- assert config .name == "deepseek-ai/DeepSeek-R1 "
123- assert config .revision == "e4e908c07378 "
124- assert config .container_image == "lmsysorg/sglang:v0.4.6.post1 "
125- assert config .container_digest == "sha256:abc123 "
116+ assert config .model . repo == "nvidia/Kimi-K2.5-NVFP4 "
117+ assert config .model . revision == "abc123 "
118+ assert config .frameworks [ "dynamo" ] == "1.0.0 "
119+ assert config .frameworks [ "tensorrt_llm" ] == "1.3.0rc9 "
126120
127121 def test_marshmallow_roundtrip (self ):
128122 """Schema dump/load preserves identity fields."""
129- from srtctl .core .schema import ModelConfig
123+ from srtctl .core .schema import IdentityConfig , IdentityModelConfig
130124
131- original = ModelConfig (
132- path = "/model" ,
133- container = "/c.sqsh" ,
134- precision = "fp4" ,
135- name = "deepseek-ai/DeepSeek-R1" ,
136- revision = "abc123" ,
125+ original = IdentityConfig (
126+ model = IdentityModelConfig (repo = "nvidia/Kimi-K2.5-NVFP4" , revision = "abc123" ),
127+ frameworks = {"dynamo" : "1.0.0" },
137128 )
138- schema = ModelConfig .Schema ()
129+ schema = IdentityConfig .Schema ()
139130 dumped = schema .dump (original )
140131 loaded = schema .load (dumped )
141- assert loaded .name == "deepseek-ai/DeepSeek-R1"
142- assert loaded .revision == "abc123"
143- assert loaded .container_image is None # was not set
132+ assert loaded .model .repo == "nvidia/Kimi-K2.5-NVFP4"
133+ assert loaded .frameworks ["dynamo" ] == "1.0.0"
144134
145- def test_marshmallow_load_ignores_missing_optional (self ):
146- """Loading YAML without identity fields still works ."""
135+ def test_model_config_is_clean (self ):
136+ """ModelConfig has no virtual identity fields (moved to IdentityConfig) ."""
147137 from srtctl .core .schema import ModelConfig
148138
149- data = { " path" : " /model" , " container" : " /c.sqsh" , " precision" : " fp8"}
150- loaded = ModelConfig . Schema (). load ( data )
151- assert loaded . name is None
152- assert loaded . revision is None
139+ config = ModelConfig ( path = " /model" , container = " /c.sqsh" , precision = " fp8")
140+ assert not hasattr ( config , "name" )
141+ assert not hasattr ( config , "container_image" )
142+ assert not hasattr ( config , "container_digest" )
153143
154144
155145class TestDynamoConfig :
0 commit comments