UpdateChangeLog(self.pkgdir, self.user, 'test!', self.skel_changelog, self.cat, self.pkg, quiet=True)
actual_cl = self._readlines(self.changelog)
self.assertEqual(actual_cl[0], self.header_pkg)
+ self.assertNotEqual(actual_cl[-1], '\n')
def testExistingGoodHeader(self):
# Test existing ChangeLog (correct values)
UpdateChangeLog(self.pkgdir, self.user, 'test!', self.skel_changelog, self.cat, self.pkg, quiet=True)
actual_cl = self._readlines(self.changelog)
self.assertEqual(actual_cl[0], self.header_pkg)
+
+ def testTrailingNewlines(self):
+ # Make sure trailing newlines get chomped.
+ self._writelines(self.changelog, ['#\n', 'foo\n', '\n', 'bar\n', '\n', '\n'])
+
+ UpdateChangeLog(self.pkgdir, self.user, 'test!', self.skel_changelog, self.cat, self.pkg, quiet=True)
+ actual_cl = self._readlines(self.changelog)
+ self.assertNotEqual(actual_cl[-1], '\n')
for line in textwrap.wrap(msg, 80, \
initial_indent=' ', subsequent_indent=' '):
clnew_lines.append(_unicode_decode('%s\n' % line))
- clnew_lines.append(_unicode_decode('\n'))
+ # Don't append a trailing newline if the file is new.
+ if clold_file is not None:
+ clnew_lines.append(_unicode_decode('\n'))
f = io.open(f, mode='w', encoding=_encodings['repo.content'],
errors='backslashreplace')
# in the unified_diff call below.
clold_lines = old_header_lines + clold_lines
- for line in clold_file:
- f.write(line)
+ # Trim any trailing newlines.
+ lines = clold_file.readlines()
clold_file.close()
+ while lines and lines[-1] == '\n':
+ del lines[-1]
+ f.writelines(lines)
f.close()
# show diff