micropython/tests/extmod/vfs_posix_ilistdir_filter.py

55 wiersze
1.1 KiB
Python

# Test ilistdir filter of . and .. for VfsPosix.
try:
import os, vfs
vfs.VfsPosix
except (ImportError, AttributeError):
print("SKIP")
raise SystemExit
def test(testdir):
curdir = os.getcwd()
fs = vfs.VfsPosix(testdir)
# When VfsPosix is used the intended way via vfs.mount(), it can only be called
# with relative paths when the CWD is inside or at its root, so simulate that.
os.chdir(testdir)
dirs = [".a", "..a", "...a", "a.b", "a..b"]
for dir in dirs:
fs.mkdir(dir)
dirs = []
for entry in fs.ilistdir("/"):
dirs.append(entry[0])
dirs.sort()
print(dirs)
# Done with fs, restore CWD.
os.chdir(curdir)
# We need an empty directory for testing.
# Skip the test if it already exists.
temp_dir = "vfs_posix_ilistdir_filter_test_dir"
try:
os.stat(temp_dir)
print("SKIP")
raise SystemExit
except OSError:
pass
os.mkdir(temp_dir)
try:
test(temp_dir)
finally:
# Remove tempdir.
for td in os.listdir(temp_dir):
os.rmdir("/".join((temp_dir, td)))
os.rmdir(temp_dir)