@@ -299,7 +299,6 @@ def test_init_command_shows_description_when_use_help_option(
299299 out , _ = capsys .readouterr ()
300300 file_regression .check (out , extension = ".txt" )
301301
302-
303302def test_init_with_confirmed_tag_format (config , mocker : MockFixture , tmpdir ):
304303 mocker .patch (
305304 "commitizen.commands.init.get_tag_names" , return_value = ["v0.0.2" , "v0.0.1" ]
@@ -420,3 +419,65 @@ def test_init_with_valid_tag_selection(config, mocker: MockFixture, tmpdir):
420419 content = toml_file .read ()
421420 assert 'version = "0.9.0"' in content
422421 assert 'version_scheme = "semver"' in content
422+
423+ def test_init_configuration_settings (tmpdir , mocker : MockFixture , config ):
424+ """Test that all configuration settings are properly initialized."""
425+ mocker .patch (
426+ "questionary.select" ,
427+ side_effect = [
428+ FakeQuestion ("pyproject.toml" ),
429+ FakeQuestion ("cz_conventional_commits" ),
430+ FakeQuestion ("commitizen" ),
431+ FakeQuestion ("semver" ),
432+ ],
433+ )
434+ mocker .patch ("questionary.confirm" , return_value = FakeQuestion (True ))
435+ mocker .patch ("questionary.text" , return_value = FakeQuestion ("$version" ))
436+ mocker .patch ("questionary.checkbox" , return_value = FakeQuestion (None ))
437+
438+ with tmpdir .as_cwd ():
439+ commands .Init (config )()
440+
441+ with open ("pyproject.toml" , encoding = "utf-8" ) as toml_file :
442+ config_data = toml_file .read ()
443+
444+ # Verify all expected settings are present
445+ assert 'name = "cz_conventional_commits"' in config_data
446+ assert 'tag_format = "$version"' in config_data
447+ assert 'version_scheme = "semver"' in config_data
448+ assert 'version = "0.0.1"' in config_data
449+ assert "update_changelog_on_bump = true" in config_data
450+ assert "major_version_zero = true" in config_data
451+
452+
453+ def test_init_configuration_with_version_provider (tmpdir , mocker : MockFixture , config ):
454+ """Test configuration initialization with a different version provider."""
455+ mocker .patch (
456+ "questionary.select" ,
457+ side_effect = [
458+ FakeQuestion ("pyproject.toml" ),
459+ FakeQuestion ("cz_conventional_commits" ),
460+ FakeQuestion ("pep621" ), # Different version provider
461+ FakeQuestion ("semver" ),
462+ ],
463+ )
464+ mocker .patch ("questionary.confirm" , return_value = FakeQuestion (True ))
465+ mocker .patch ("questionary.text" , return_value = FakeQuestion ("$version" ))
466+ mocker .patch ("questionary.checkbox" , return_value = FakeQuestion (None ))
467+
468+ with tmpdir .as_cwd ():
469+ commands .Init (config )()
470+
471+ with open ("pyproject.toml" , encoding = "utf-8" ) as toml_file :
472+ config_data = toml_file .read ()
473+
474+ # Verify version provider is set instead of version
475+ assert 'name = "cz_conventional_commits"' in config_data
476+ assert 'tag_format = "$version"' in config_data
477+ assert 'version_scheme = "semver"' in config_data
478+ assert 'version_provider = "pep621"' in config_data
479+ assert "update_changelog_on_bump = true" in config_data
480+ assert "major_version_zero = true" in config_data
481+ assert (
482+ "version = " not in config_data
483+ ) # Version should not be set when using version_provider
0 commit comments