@@ -431,6 +431,74 @@ def test_successful_snapshot_creation(
431431 assert result .release_pr_number == 42
432432 assert "quality-on-demand" in result .api_versions
433433
434+ @patch ("release_automation.scripts.snapshot_creator.ChangelogGenerator" )
435+ @patch ("release_automation.scripts.snapshot_creator.tempfile.mkdtemp" )
436+ @patch ("release_automation.scripts.snapshot_creator.shutil.rmtree" )
437+ @patch ("release_automation.scripts.snapshot_creator.GitOperations" )
438+ @patch ("builtins.open" , create = True )
439+ def test_changelog_keeps_release_tag_in_dependency_line (
440+ self ,
441+ mock_open ,
442+ mock_git_ops_class ,
443+ mock_rmtree ,
444+ mock_mkdtemp ,
445+ mock_changelog_cls ,
446+ snapshot_creator ,
447+ mock_github_client ,
448+ mock_metadata_generator ,
449+ sample_release_plan ,
450+ ):
451+ """CHANGELOG's dependency line states the release tag, not just the version.
452+
453+ release-metadata.yaml's own dependencies.commonalities_release carries
454+ "<tag> (<version>)"; the CHANGELOG draft must reuse that string as-is
455+ instead of resolving it down to the bare semantic version.
456+ """
457+ mock_mkdtemp .return_value = "/tmp/test-snapshot"
458+
459+ mock_git_ops = MagicMock ()
460+ mock_git_ops_class .return_value = mock_git_ops
461+ mock_git_ops .create_pr .return_value = PullRequestInfo (
462+ number = 42 , url = "https://github.com/owner/repo/pull/42"
463+ )
464+ mock_github_client .get_releases .return_value = []
465+ mock_github_client .generate_release_notes .return_value = None
466+
467+ mock_metadata_generator .generate .return_value = {
468+ "repository" : {
469+ "repository_name" : "TestRepo-QoD" ,
470+ "release_tag" : "r4.1" ,
471+ "release_type" : "pre-release-rc" ,
472+ },
473+ "apis" : [{"api_name" : "quality-on-demand" , "api_version" : "3.2.0-rc.1" }],
474+ "dependencies" : {
475+ "commonalities_release" : "r3.4 (0.7.0-rc.1)" ,
476+ "identity_consent_management_release" : "r3.3 (0.5.0-rc.1)" ,
477+ },
478+ }
479+
480+ mock_changelog_instance = Mock ()
481+ mock_changelog_instance .generate_draft .return_value = "# r4.1\n \n Content\n "
482+ mock_changelog_instance .write_changelog .return_value = (
483+ "CHANGELOG/CHANGELOG-r4.md"
484+ )
485+ mock_changelog_cls .return_value = mock_changelog_instance
486+
487+ config = SnapshotConfig (release_tag = "r4.1" )
488+ snapshot_creator .create_snapshot (sample_release_plan , config )
489+
490+ draft_metadata = mock_changelog_instance .generate_draft .call_args .kwargs [
491+ "metadata"
492+ ]
493+ assert (
494+ draft_metadata ["dependencies" ]["commonalities_release" ]
495+ == "r3.4 (0.7.0-rc.1)"
496+ )
497+ assert (
498+ draft_metadata ["dependencies" ]["identity_consent_management_release" ]
499+ == "r3.3 (0.5.0-rc.1)"
500+ )
501+
434502 @patch ("release_automation.scripts.snapshot_creator.tempfile.mkdtemp" )
435503 @patch ("release_automation.scripts.snapshot_creator.shutil.rmtree" )
436504 @patch ("release_automation.scripts.snapshot_creator.GitOperations" )
@@ -1371,10 +1439,10 @@ def test_generate_changelog_creates_file(
13711439 mock_instance .write_changelog .assert_called_once ()
13721440
13731441 @patch ("release_automation.scripts.snapshot_creator.ChangelogGenerator" )
1374- def test_generate_changelog_uses_commonalities_version_only (
1442+ def test_generate_changelog_keeps_metadata_dependency_display_string (
13751443 self , mock_gen_cls , snapshot_creator , mock_github_client , tmp_path
13761444 ):
1377- """CHANGELOG generation uses semantic version instead of metadata display string."""
1445+ """CHANGELOG generation keeps release- metadata.yaml's tag+version string."""
13781446 mock_github_client .get_releases .return_value = []
13791447 mock_github_client .generate_release_notes .return_value = None
13801448
@@ -1399,15 +1467,16 @@ def test_generate_changelog_uses_commonalities_version_only(
13991467 {},
14001468 metadata ,
14011469 "TestRepo-QoD" ,
1402- commonalities_version = "0.7.0-rc.1" ,
1403- icm_version = "0.5.0-rc.1" ,
14041470 )
14051471
14061472 draft_metadata = mock_instance .generate_draft .call_args .kwargs ["metadata" ]
1407- assert draft_metadata ["dependencies" ]["commonalities_release" ] == "0.7.0-rc.1"
1473+ assert (
1474+ draft_metadata ["dependencies" ]["commonalities_release" ]
1475+ == "r4.1 (0.7.0-rc.1)"
1476+ )
14081477 assert (
14091478 draft_metadata ["dependencies" ]["identity_consent_management_release" ]
1410- == "0.5.0-rc.1"
1479+ == "r4.1 ( 0.5.0-rc.1) "
14111480 )
14121481
14131482 @patch ("release_automation.scripts.snapshot_creator.ChangelogGenerator" )
0 commit comments