Exemplo n.º 1
0
 def testFunctionList(self):
     op = mount.ServerFuse()
     resource = op._getPath(os.path.dirname(self.publicFileName))
     filelist = op._list(resource['document'], resource['model'])
     self.assertIn(os.path.basename(self.publicFileName), filelist)
     resource2 = op._getPath(
         os.path.dirname(os.path.dirname(self.publicFileName)))
     filelist = op._list(resource2['document'], resource2['model'])
     self.assertIn(os.path.basename(os.path.dirname(self.publicFileName)),
                   filelist)
     resource3 = op._getPath(os.path.dirname(self.adminFileName))
     filelist = op._list(resource3['document'], resource3['model'])
     self.assertIn(os.path.basename(self.adminFileName), filelist)
     resource4 = op._getPath(
         os.path.dirname(os.path.dirname(self.adminFileName)))
     filelist = op._list(resource4['document'], resource4['model'])
     self.assertIn(os.path.basename(os.path.dirname(self.adminFileName)),
                   filelist)
     resource5 = op._getPath(
         os.path.dirname(
             os.path.dirname(os.path.dirname(self.adminFileName))))
     filelist = op._list(resource5['document'], resource5['model'])
     self.assertIn(
         os.path.basename(
             os.path.dirname(os.path.dirname(self.adminFileName))),
         filelist)
Exemplo n.º 2
0
 def testFunctionAccess(self):
     op = mount.ServerFuse()
     self.assertEqual(op.access(self.publicFileName, os.F_OK), 0)
     self.assertEqual(op.access(self.publicFileName, os.R_OK | os.W_OK | os.X_OK), 0)
     self.assertEqual(op.access(self.adminFileName, os.F_OK), 0)
     self.assertEqual(op.access(self.adminFileName, os.R_OK), 0)
     self.assertEqual(op.access('/user', os.F_OK), 0)
Exemplo n.º 3
0
    def testFunctionStat(self):
        op = mount.ServerFuse()
        resource = op._getPath(self.publicFileName)
        attr = op._stat(resource['document'], resource['model'])
        self.assertEqual(attr['st_ino'], -1)
        self.assertEqual(attr['st_nlink'], 1)
        self.assertGreater(attr['st_mtime'], time.time() - 1e5)
        self.assertEqual(attr['st_ctime'], attr['st_mtime'])
        self.assertEqual(attr['st_mode'], 0o400 | stat.S_IFREG)
        self.assertGreater(attr['st_size'],
                           len(self.knownPaths[self.publicFileName]))
        resource['document']['updated'] = datetime.datetime.utcfromtimestamp(
            time.time() + 1)
        File().save(resource['document'])
        oldmtime = attr['st_mtime']
        resource = op._getPath(self.publicFileName)
        attr = op._stat(resource['document'], resource['model'])
        self.assertGreater(attr['st_mtime'], oldmtime)

        resource = op._getPath(os.path.dirname(self.publicFileName))
        attr = op._stat(resource['document'], resource['model'])
        self.assertEqual(attr['st_mode'], 0o500 | stat.S_IFDIR)
        self.assertEqual(attr['st_size'], 0)
        resource = op._getPath(
            os.path.dirname(os.path.dirname(self.publicFileName)))
        attr = op._stat(resource['document'], resource['model'])
        self.assertEqual(attr['st_mode'], 0o500 | stat.S_IFDIR)
        self.assertEqual(attr['st_size'], 0)
Exemplo n.º 4
0
 def testFunctionCall(self):
     op = mount.ServerFuse()
     self.assertEqual(op.__call__('access', self.publicFileName, os.F_OK), 0)
     self.assertEqual(op.__call__('access', self.privateFileName, os.F_OK), 0)
     self.assertEqual(op.__call__('access', 'nosuchpath', os.F_OK), 0)
     with self.assertRaises(fuse.FuseOSError):
         self.assertTrue(op.__call__('read', self.publicFileName, 10, 0, None))
Exemplo n.º 5
0
 def testFunctionName(self):
     op = mount.ServerFuse()
     resource = op._getPath(self.publicFileName)
     name = op._name(resource['document'], resource['model'])
     self.assertEqual(name, os.path.basename(self.publicFileName))
     resource = op._getPath(os.path.dirname(self.publicFileName))
     name = op._name(resource['document'], resource['model'])
     self.assertEqual(name, os.path.basename(os.path.dirname(self.publicFileName)))
Exemplo n.º 6
0
    def testFunctionRelease(self):
        op = mount.ServerFuse()

        fh = op.open(self.publicFileName, os.O_RDONLY)
        self.assertIn(fh, op.openFiles)
        self.assertEqual(op.release(self.publicFileName, fh), 0)
        self.assertNotIn(fh, op.openFiles)
        path = os.path.dirname(self.publicFileName)
        fh = op.open(path, os.O_RDONLY)
        self.assertNotIn(fh, op.openFiles)
        self.assertEqual(op.release(path, fh), 0)
Exemplo n.º 7
0
 def testFunctionGetPath(self):
     op = mount.ServerFuse()
     resource = op._getPath(self.publicFileName)
     self.assertEqual(resource['model'], 'file')
     resource = op._getPath(os.path.dirname(self.publicFileName))
     self.assertEqual(resource['model'], 'item')
     resource = op._getPath(os.path.dirname(os.path.dirname(self.publicFileName)))
     self.assertEqual(resource['model'], 'folder')
     resource = op._getPath(self.privateFileName)
     self.assertEqual(resource['model'], 'file')
     with self.assertRaises(fuse.FuseOSError):
         op._getPath('nosuchpath')
Exemplo n.º 8
0
 def testFunctionOpen(self):
     op = mount.ServerFuse()
     fh = op.open(self.publicFileName, os.O_RDONLY)
     self.assertTrue(isinstance(fh, int))
     self.assertIn(fh, op.openFiles)
     op.release(self.publicFileName, fh)
     path = os.path.dirname(self.publicFileName)
     fh = op.open(path, os.O_RDONLY)
     self.assertTrue(isinstance(fh, int))
     self.assertNotIn(fh, op.openFiles)
     for flag in (os.O_APPEND, os.O_ASYNC, os.O_CREAT, os.O_DIRECTORY,
                  os.O_EXCL, os.O_RDWR, os.O_TRUNC, os.O_WRONLY):
         with self.assertRaises(fuse.FuseOSError):
             op.open(self.publicFileName, flag)
Exemplo n.º 9
0
 def testFunctionReaddir(self):
     op = mount.ServerFuse()
     path = os.path.dirname(self.publicFileName)
     data = op.readdir(path, 0)
     self.assertIn(os.path.basename(self.publicFileName), data)
     data = op.readdir('/user', 0)
     self.assertIn('admin', data)
     data = op.readdir('', 0)
     self.assertIn('user', data)
     self.assertIn('collection', data)
     self.assertIn('.', data)
     self.assertIn('..', data)
     data = op.readdir('/collection', 0)
     self.assertEqual(len(data), 3)
Exemplo n.º 10
0
 def testFunctionRead(self):
     op = mount.ServerFuse()
     fh = op.open(self.publicFileName, os.O_RDONLY)
     data = op.read(self.publicFileName, 200, 0, fh)
     if (isinstance(data, six.binary_type) and
             not isinstance(self.knownPaths[self.publicFileName], six.binary_type)):
         self.assertEqual(data.decode('utf8').strip(), self.knownPaths[self.publicFileName])
     else:
         self.assertEqual(data.strip(), self.knownPaths[self.publicFileName])
     data2 = op.read(self.publicFileName, 4, 2, fh)
     self.assertEqual(data[2:6], data2)
     op.release(self.publicFileName, fh)
     with self.assertRaises(fuse.FuseOSError):
         op.read(self.publicFileName, 4, 2, fh)
Exemplo n.º 11
0
 def testFunctionGetattr(self):
     op = mount.ServerFuse()
     attr = op.getattr('/user')
     self.assertEqual(attr['st_mode'], 0o500 | stat.S_IFDIR)
     self.assertEqual(attr['st_size'], 0)
     attr = op.getattr(self.publicFileName)
     self.assertEqual(attr['st_ino'], -1)
     self.assertEqual(attr['st_nlink'], 1)
     self.assertGreater(attr['st_mtime'], time.time() - 1e5)
     self.assertEqual(attr['st_ctime'], attr['st_mtime'])
     self.assertEqual(attr['st_mode'], 0o400 | stat.S_IFREG)
     self.assertGreater(attr['st_size'], len(self.knownPaths[self.publicFileName]))
     with self.assertRaises(fuse.FuseOSError):
         op.getattr('/user/nosuchuser')
Exemplo n.º 12
0
 def testFunctionDestroy(self):
     op = mount.ServerFuse()
     self.assertIsNone(op.destroy('/'))
Exemplo n.º 13
0
 def testFunctionFlush(self):
     op = mount.ServerFuse()
     self.assertEqual(op.flush('/user'), 0)
Exemplo n.º 14
0
 def testFunctionCreate(self):
     op = mount.ServerFuse()
     with self.assertRaises(fuse.FuseOSError):
         op.create(self.publicFileName, 0)