@@ -159,7 +159,7 @@ def test_update_yaml_preserving_comments(self, sample_yaml_with_comments):
159159 "version" : "2.0" ,
160160 },
161161 "simulation" : {"end_time" : 2.0 , "dt" : 0.02 },
162- "components " : [
162+ "nodes " : [
163163 {
164164 "id" : "reactor1" ,
165165 "IdealGasReactor" : {
@@ -284,38 +284,36 @@ def test_comment_preservation_with_updates(self, sample_yaml_with_comments):
284284 assert "1300" in result_yaml # Updated temperature
285285 assert "Updated Round Trip Test" in result_yaml
286286
287- def test_stone_format_integration_with_comments (self , sample_yaml_with_comments ):
288- """Test integration between STONE format and comment preservation."""
287+ def test_stone_format_round_trip_with_comments (self , sample_yaml_with_comments ):
288+ """Test that STONE format configurations survive round-trip processing with comment preservation.
289+
290+ Expectation: After converting STONE→internal→STONE→comment preservation→YAML→reload,
291+ the final configuration should contain the original reactor data with correct values.
292+ """
289293 from boulder .config import normalize_config
290294
291- # Load original YAML with comments
295+ # Simulate the full application workflow for config processing
292296 original_data = load_yaml_string_with_comments (sample_yaml_with_comments )
293-
294- # Convert to internal format (as the app does)
295297 internal_config = normalize_config (original_data )
296-
297- # Convert back to STONE format (for editing)
298298 stone_config = convert_to_stone_format (internal_config )
299-
300- # Update preserving original structure
301299 updated_data = _update_yaml_preserving_comments (original_data , stone_config )
302-
303- # Convert back to YAML string
304300 final_yaml = yaml_to_string_with_comments (updated_data )
301+ final_data = load_yaml_string_with_comments (final_yaml )
305302
306- # Verify content is preserved
307- assert "test_reactor " in final_yaml
308- assert "1200" in final_yaml
303+ # Single expectation: The test_reactor should exist with correct temperature and pressure values
304+ assert "nodes " in final_data , "Final data should have nodes section"
305+ assert len ( final_data [ "nodes" ]) > 0 , "Should have at least one node"
309306
310- # Load the final result to verify it's valid
311- final_data = load_yaml_string_with_comments (final_yaml )
312- # Check that the final data matches the expected STONE format
313- assert "nodes" in final_data
314- assert len (final_data ["nodes" ]) > 0
315- assert "IdealGasReactor" in final_data ["nodes" ][0 ]
316- assert final_data ["nodes" ][0 ]["id" ] == "test_reactor"
317- assert final_data ["nodes" ][0 ]["IdealGasReactor" ]["temperature" ] == 1200.0
318- assert final_data ["nodes" ][0 ]["IdealGasReactor" ]["pressure" ] == 101325.0
307+ node = final_data ["nodes" ][0 ]
308+ assert node ["id" ] == "test_reactor" , "Node ID should be preserved"
309+
310+ # After round-trip processing, we expect internal format (type and properties)
311+ assert node ["type" ] == "IdealGasReactor" , "Node type should be IdealGasReactor"
312+ assert "properties" in node , "Node should have properties section"
313+
314+ reactor_data = node ["properties" ]
315+ assert reactor_data ["temperature" ] == 1200.0 , "Temperature should be preserved"
316+ assert reactor_data ["pressure" ] == 101325.0 , "Pressure should be preserved"
319317
320318
321319class TestYAMLCommentIntegration :
0 commit comments