changeset 289:79deb10bbe0a

Add some new unittests for special chars (CR/LF) in paths
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 24 Feb 2025 02:53:58 +0100
parents 57102b9d7ec9
children 3c3f8151f36a
files tests/test_walk.py
diffstat 1 files changed, 31 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/tests/test_walk.py	Mon Feb 24 02:19:26 2025 +0100
+++ b/tests/test_walk.py	Mon Feb 24 02:53:58 2025 +0100
@@ -197,6 +197,37 @@
         self.assertEqual(b"test", entry.alt_u8name)
         self.assertEqual(b"tests\\xc5/test", entry.alt_u8path)
 
+    def test_special_chars_name(self):
+        entry = walk.WalkDirEntry.from_path_name(
+            "testdir", "test\r-\n-\\rest", _do_stat=False)
+        self.assertEqual(u"test\r-\n-\\rest", entry.uname)
+        self.assertIsNone(entry.fsname)
+        self.assertIsNone(entry.u8name)
+        self.assertEqual(b"test\\x0d-\\x0a-\\x5crest", entry.alt_fsname)
+        self.assertEqual(b"test\\x0d-\\x0a-\\x5crest", entry.alt_u8name)
+
+    def test_special_chars_path(self):
+        entry = walk.WalkDirEntry.from_path_name(
+            "testdir-\r-\n-rest", "testfile", _do_stat=False)
+        self.assertEqual(u"testdir-\r-\n-rest/testfile", entry.upath)
+        self.assertIsNone(entry.fspath)
+        self.assertIsNone(entry.u8path)
+        self.assertEqual(b"testdir-\\x0d-\\x0a-rest/testfile",
+                         entry.alt_fspath)
+        self.assertEqual(b"testdir-\\x0d-\\x0a-rest/testfile",
+                         entry.alt_u8path)
+
+    def test_special_chars_fullpath(self):
+        entry = walk.WalkDirEntry.from_path_name(
+            "testdir-\r-\n-rest", "test-\n-\r-file", _do_stat=False)
+        self.assertEqual(u"testdir-\r-\n-rest/test-\n-\r-file", entry.upath)
+        self.assertIsNone(entry.fspath)
+        self.assertIsNone(entry.u8path)
+        self.assertEqual(b"testdir-\\x0d-\\x0a-rest/test-\\x0a-\\x0d-file",
+                         entry.alt_fspath)
+        self.assertEqual(b"testdir-\\x0d-\\x0a-rest/test-\\x0a-\\x0d-file",
+                         entry.alt_u8path)
+
 
 # https://stackoverflow.com/questions/1854/how-to-identify-which-os-python-is-running-on/58071295#58071295
 @unittest.skipIf(