kopia lustrzana https://github.com/micropython/micropython
55 wiersze
1.1 KiB
Python
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)
|