diff --git a/bumpversion/__init__.py b/bumpversion/__init__.py index a4af337..96e93bf 100644 --- a/bumpversion/__init__.py +++ b/bumpversion/__init__.py @@ -678,7 +678,7 @@ def main(original_args=None): filename = section_value if 'serialize' in section_config: - section_config['serialize'] = list(filter(None, (x.strip() for x in section_config['serialize'].splitlines()))) + section_config['serialize'] = list(filter(None, (x.strip().replace("\\n", "\n") for x in section_config['serialize'].splitlines()))) section_config['part_configs'] = part_configs diff --git a/tests/test_cli.py b/tests/test_cli.py index 7067472..e52457a 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -898,6 +898,19 @@ def test_non_vcs_operations_if_vcs_is_not_installed(tmpdir, vcs, monkeypatch): assert '32.0.0' == tmpdir.join("VERSION").read() +def test_serialize_newline(tmpdir): + tmpdir.join("filenewline").write("MAJOR=31\nMINOR=0\nPATCH=3\n") + tmpdir.chdir() + main([ + '--current-version', 'MAJOR=31\nMINOR=0\nPATCH=3\n', + '--parse', 'MAJOR=(?P\d+)\\nMINOR=(?P\d+)\\nPATCH=(?P\d+)\\n', + '--serialize', 'MAJOR={major}\nMINOR={minor}\nPATCH={patch}\n', + '--verbose', + 'major', + 'filenewline' + ]) + assert 'MAJOR=32\nMINOR=0\nPATCH=0\n' == tmpdir.join("filenewline").read() + def test_multiple_serialize_threepart(tmpdir): tmpdir.join("fileA").write("Version: 0.9") tmpdir.chdir()