Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def tst_mkdir(self):
dirname = self.newname()
fullname = self.mnt_dir + "/" + dirname
os.mkdir(fullname)
fstat = os.stat(fullname)
assert stat.S_ISDIR(fstat.st_mode)
assert pyfuse3.listdir(fullname) == []
assert fstat.st_nlink == 1
assert dirname in pyfuse3.listdir(self.mnt_dir)
os.rmdir(fullname)
assert_raises(FileNotFoundError, os.stat, fullname)
assert dirname not in pyfuse3.listdir(self.mnt_dir)
def tst_link(self):
name1 = os.path.join(self.mnt_dir, self.newname())
name2 = os.path.join(self.mnt_dir, self.newname())
src = self.src
shutil.copyfile(src, name1)
assert filecmp.cmp(name1, src, False)
os.link(name1, name2)
fstat1 = os.lstat(name1)
fstat2 = os.lstat(name2)
assert fstat1 == fstat2
assert fstat1.st_nlink == 2
assert basename(name2) in pyfuse3.listdir(self.mnt_dir)
assert filecmp.cmp(name1, name2, False)
os.unlink(name2)
fstat1 = os.lstat(name1)
assert fstat1.st_nlink == 1
os.unlink(name1)
def tst_readdir(self):
dir_ = os.path.join(self.mnt_dir, self.newname())
file_ = dir_ + "/" + self.newname()
subdir = dir_ + "/" + self.newname()
subfile = subdir + "/" + self.newname()
src = self.src
os.mkdir(dir_)
shutil.copyfile(src, file_)
os.mkdir(subdir)
shutil.copyfile(src, subfile)
listdir_is = pyfuse3.listdir(dir_)
listdir_is.sort()
listdir_should = [ basename(file_), basename(subdir) ]
listdir_should.sort()
assert listdir_is == listdir_should
os.unlink(file_)
os.unlink(subfile)
os.rmdir(subdir)
os.rmdir(dir_)
def tst_symlink(self):
linkname = self.newname()
fullname = self.mnt_dir + "/" + linkname
os.symlink("/imaginary/dest", fullname)
fstat = os.lstat(fullname)
assert stat.S_ISLNK(fstat.st_mode)
assert os.readlink(fullname) == "/imaginary/dest"
assert fstat.st_nlink == 1
assert linkname in pyfuse3.listdir(self.mnt_dir)
os.unlink(fullname)
assert_raises(FileNotFoundError, os.lstat, fullname)
assert linkname not in pyfuse3.listdir(self.mnt_dir)
# Try to delete
assert_raises(PermissionError, os.unlink, filename)
# Try to write
with pytest.raises(PermissionError):
open(filename, 'w+').write('Hello')
# delete properly
try:
s3ql.remove.main([tempdir])
except:
sys.excepthook(*sys.exc_info())
pytest.fail("s3qlrm raised exception")
assert 'lock_dir' not in pyfuse3.listdir(self.mnt_dir)
uid_new = uid + 1
os.chown(filename, uid_new, -1)
fstat = os.lstat(filename)
assert fstat.st_uid == uid_new
assert fstat.st_gid == gid
gid_new = gid + 1
os.chown(filename, -1, gid_new)
fstat = os.lstat(filename)
assert fstat.st_uid == uid_new
assert fstat.st_gid == gid_new
os.rmdir(filename)
assert_raises(FileNotFoundError, os.stat, filename)
assert basename(filename) not in pyfuse3.listdir(self.mnt_dir)
'''Raise `QuietError` if *path* is not on an S3QL file system
Returns name of the S3QL control file.
'''
try:
os.stat(path)
except FileNotFoundError:
raise QuietError('%s does not exist' % path)
except OSError as exc:
if exc.errno is errno.ENOTCONN:
raise QuietError('File system appears to have crashed.')
raise
ctrlfile = os.path.join(path, CTRL_NAME)
if not (CTRL_NAME not in pyfuse3.listdir(path)
and os.path.exists(ctrlfile)):
raise QuietError('%s is not on an S3QL file system' % path)
return ctrlfile