Skip to content
Snippets Groups Projects
Commit 28f640c4 authored by Jelmer Vernooij's avatar Jelmer Vernooij
Browse files

RTS parser: don't add trailing whitespace when setting field values

that start with a newline. Closes: #1013485
parent 0eb738a0
No related branches found
No related tags found
1 merge request!99RTS parser: don't add trailing whitespace when setting field values
python-debian (0.1.45) UNRELEASED; urgency=medium
* Add Deb822FileElement.remove method.
* RTS parser: don't add trailing whitespace when setting field values
that start with a newline. Closes: #1013485
-- Jelmer Vernooij <jelmer@debian.org> Sun, 05 Jun 2022 15:39:21 +0100
......
......@@ -1450,7 +1450,10 @@ class Deb822ParagraphToStrWrapperMixin(AutoResolvingMixin[str],
return
# Regenerate the first line with normalized whitespace
first_line, rest = value.split("\n", 1)
value = "".join((" ", first_line.strip(), "\n", rest))
if first_line:
value = "".join((" ", first_line.strip(), "\n", rest))
else:
value = "".join(("\n", rest))
if not value.endswith("\n"):
if not self._auto_map_final_newline_in_multiline_values:
raise ValueError("Values must end with a newline (or be single line"
......
......@@ -1761,3 +1761,17 @@ class FormatPreservingDeb822ParserTests(TestCase):
expected_result) as bd_list:
bd_list.append_newline()
bd_list.append('bar (>= 1.0~)')
def test_mutate_field_preserves_whitespace(self):
# type: () -> None
original = textwrap.dedent('''\
Package: foo
Build-Depends:
debhelper-compat (= 11),
uuid-dev
''')
deb822_file = parse_deb822_file(original.splitlines(keepends=True))
source_paragraph = next(iter(deb822_file))
source_paragraph['Build-Depends'] = '\n debhelper-compat (= 11),\n uuid-dev'
self.assertEqual(original, deb822_file.convert_to_text())
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment