From 7b519784b5b2fe16610284ab590f2168e93d76cc Mon Sep 17 00:00:00 2001 From: Silas Kraume Date: Wed, 20 Nov 2024 14:18:53 +0100 Subject: [PATCH] added default value to iohelper.get_newline --- cat_win/src/service/helper/iohelper.py | 8 ++++---- cat_win/tests/src/service/helper/test_iohelper.py | 3 +++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/cat_win/src/service/helper/iohelper.py b/cat_win/src/service/helper/iohelper.py index 14a2ae5..05d93fd 100644 --- a/cat_win/src/service/helper/iohelper.py +++ b/cat_win/src/service/helper/iohelper.py @@ -186,7 +186,7 @@ def yield_file(src_file: Path, binary: bool = False, file.close() @staticmethod - def get_newline(file: Path) -> str: + def get_newline(file: Path, default: str = '\n') -> str: """ determines the line ending of a given file. @@ -202,10 +202,10 @@ def get_newline(file: Path) -> str: try: with open(file, 'rb') as _f: _l = _f.readline() - _l += b'\n' * bool(not _l[-1:] or _l[-1:] not in b'\r\n') - return '\r\n' if _l[-2:] == b'\r\n' else _l[-1:].decode() + _l+= default.encode() * (not _l[-1:] or _l[-1:] not in b'\r\n') + return _l[-1-(_l[-2:] == b'\r\n'):].decode() except OSError: - return '\n' + return default @staticmethod diff --git a/cat_win/tests/src/service/helper/test_iohelper.py b/cat_win/tests/src/service/helper/test_iohelper.py index a37273e..0d8b5f2 100644 --- a/cat_win/tests/src/service/helper/test_iohelper.py +++ b/cat_win/tests/src/service/helper/test_iohelper.py @@ -55,6 +55,9 @@ def test_get_newline(self): self.assertEqual(IoHelper.get_newline(test_file_path), '\r\n') self.assertEqual(IoHelper.get_newline(test_file_path_empty), '\n') self.assertEqual(IoHelper.get_newline(test_file_path_oneline), '\n') + self.assertEqual(IoHelper.get_newline(test_file_path, 'x'), '\r\n') + self.assertEqual(IoHelper.get_newline(test_file_path_empty, 'x'), 'x') + self.assertEqual(IoHelper.get_newline(test_file_path_oneline, 'x'), 'x') def test_get_stdin_content_oneline(self): stdin_mock.set_content('hello\nworld')