Mercurial > hgrepos > Python > apps > py-cutils
diff tests/test_walk.py @ 273:c02a57df2a29
treesum: - WalkDirEntry tests with a FIFO special file - WalkDirEntry.is_reg
Also all to be handled special files in the notes document.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Wed, 19 Feb 2025 09:12:30 +0100 |
| parents | b4137ebd8e79 |
| children | 224725fd9f2f |
line wrap: on
line diff
--- a/tests/test_walk.py Tue Feb 18 19:30:40 2025 +0100 +++ b/tests/test_walk.py Wed Feb 19 09:12:30 2025 +0100 @@ -6,10 +6,11 @@ from __future__ import absolute_import, print_function import os +import shutil import sys import unittest -from _test_setup import DATADIR +from _test_setup import (DATADIR, TMPDIR) from cutils.util import walk @@ -206,6 +207,7 @@ entry = walk.WalkDirEntry.from_path_name( DATADIR, "tree-1-s") self.assertTrue(entry.is_symlink) + self.assertFalse(entry.is_reg) self.assertTrue(entry.is_dir) self.assertIsNotNone(entry.stat) @@ -213,6 +215,7 @@ entry = walk.WalkDirEntry.from_path_name( DATADIR, "tree-nn-s") self.assertTrue(entry.is_symlink) + self.assertFalse(entry.is_reg) self.assertFalse(entry.is_dir) self.assertIsNone(entry.stat) @@ -220,6 +223,7 @@ entry = walk.WalkDirEntry.from_path_name( DATADIR, "tree-1") self.assertFalse(entry.is_symlink) + self.assertFalse(entry.is_reg) self.assertTrue(entry.is_dir) self.assertIsNotNone(entry.stat) @@ -227,6 +231,7 @@ entry = walk.WalkDirEntry.from_path_name( os.path.join(DATADIR, "tree-1"), "file-1-1-s.txt") self.assertTrue(entry.is_symlink) + self.assertTrue(entry.is_reg) self.assertFalse(entry.is_dir) self.assertIsNotNone(entry.stat) @@ -234,6 +239,7 @@ entry = walk.WalkDirEntry.from_path_name( os.path.join(DATADIR, "tree-1"), "file-1-nn-s.txt") self.assertTrue(entry.is_symlink) + self.assertFalse(entry.is_reg) self.assertFalse(entry.is_dir) self.assertIsNone(entry.stat) @@ -241,6 +247,7 @@ entry = walk.WalkDirEntry.from_path_name( os.path.join(DATADIR, "tree-1"), "file-1-1.txt") self.assertFalse(entry.is_symlink) + self.assertTrue(entry.is_reg) self.assertFalse(entry.is_dir) self.assertIsNotNone(entry.stat) @@ -248,9 +255,54 @@ entry = walk.WalkDirEntry.from_path_name( os.path.join(DATADIR, "tree-1-s"), "file-1-1.txt") self.assertFalse(entry.is_symlink) + self.assertTrue(entry.is_reg) self.assertFalse(entry.is_dir) self.assertIsNotNone(entry.stat) +@unittest.skipIf(not hasattr(os, "mkfifo"), "Needs os.mkfifo()") +class FIFOTests(unittest.TestCase): + + def setUp(self): + if not os.path.isdir(TMPDIR): + os.mkdir(TMPDIR) + + def tearDown(self): + if os.path.isdir(TMPDIR): + shutil.rmtree(TMPDIR) + + def test_real_mkfifo(self): + fifopath = os.path.join(TMPDIR, "test.fifo") + os.mkfifo(fifopath) + entry = walk.WalkDirEntry.from_path_name(TMPDIR, "test.fifo") + self.assertFalse(entry.is_symlink) + self.assertFalse(entry.is_reg) + self.assertFalse(entry.is_dir) + self.assertIsNotNone(entry.stat) + + def test_symlink_to_mkfifo(self): + fifopath = os.path.join(TMPDIR, "test.fifo") + fifo_s_path = os.path.join(TMPDIR, "test-s.fifo") + os.mkfifo(fifopath) + os.symlink(fifopath, fifo_s_path) + entry = walk.WalkDirEntry.from_path_name(TMPDIR, "test-s.fifo") + self.assertTrue(entry.is_symlink) + self.assertFalse(entry.is_reg) + self.assertFalse(entry.is_dir) + self.assertIsNotNone(entry.stat) + + def test_broken_symlink_to_mkfifo(self): + fifopath = os.path.join(TMPDIR, "test.fifo") + fifo_s_path = os.path.join(TMPDIR, "test-s.fifo") + os.mkfifo(fifopath) + os.symlink(fifopath, fifo_s_path) + os.unlink(fifopath) + entry = walk.WalkDirEntry.from_path_name(TMPDIR, "test-s.fifo") + self.assertTrue(entry.is_symlink) + self.assertFalse(entry.is_reg) + self.assertFalse(entry.is_dir) + self.assertIsNone(entry.stat) + + if __name__ == "__main__": sys.exit(unittest.main())
