# HG changeset patch # User Franz Glasner # Date 1740362038 -3600 # Node ID 79deb10bbe0abe1ce49c0e27968730d65d7bff3d # Parent 57102b9d7ec978a23f05a4cb4fc75bce52c5ef20 Add some new unittests for special chars (CR/LF) in paths diff -r 57102b9d7ec9 -r 79deb10bbe0a tests/test_walk.py --- 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(