コード例 #1
0
ファイル: test_webdavfs.py プロジェクト: zendbit/peppy
 def setUp(self):
     if vfs.exists(self.root + 'tmp'):
         vfs.remove(self.root + 'tmp')
     vfs.make_folder(self.root + 'tmp')
     file = vfs.make_file(self.root + 'tmp/blah.txt')
     file.write("BLAH!!!")
     file.close()
コード例 #2
0
ファイル: test_sftpfs.py プロジェクト: betsegaw/peppy
 def setUp(self):
     if vfs.exists(self.root + 'tmp'):
         vfs.remove(self.root + 'tmp')
     vfs.make_folder(self.root + 'tmp')
     file = vfs.make_file(self.root + 'tmp/blah.txt')
     file.write("BLAH!!!")
     file.close()
コード例 #3
0
ファイル: test_sftpfs.py プロジェクト: betsegaw/peppy
 def test10_creation(self):
     file = vfs.make_file(self.root + 'testfile.txt')
     file.write("one\n")
     file.close()
     self.assertEqual(vfs.is_file(self.root + 'testfile.txt'), True)
     
     url = self.root + 'tmp/dir'
     vfs.make_folder(url)
     self.assertEqual(vfs.is_folder(url), True)
     
     url = self.root + 'tmp/dir/file1'
     fh = vfs.make_file(url)
     fh.write("this is file1")
     fh.close()
     self.assertEqual(vfs.is_file(url), True)
     
     url = self.root + 'tmp/dir/zero'
     fh = vfs.make_file(url)
     fh.close()
     self.assertEqual(vfs.is_file(url), True)
     
     # this should raise an OSError because it's trying to make a file out
     # of an existing folder
     url = self.root + 'tmp/dir'
     self.assertRaises(OSError, vfs.make_file, url)
     
     # this should raise an OSError because it's trying to make a file in
     # another file
     url = self.root + 'tmp/dir/file1/file2'
     self.assertRaises(OSError, vfs.make_file, url)
コード例 #4
0
ファイル: test_webdavfs.py プロジェクト: zendbit/peppy
 def test10_creation(self):
     file = vfs.make_file(self.root + 'testfile.txt')
     file.write("one\n")
     file.close()
     self.assertEqual(vfs.is_file(self.root + 'testfile.txt'), True)
     
     url = self.root + 'tmp/dir'
     vfs.make_folder(url)
     self.assertEqual(vfs.is_folder(url), True)
     
     url = self.root + 'tmp/dir/file1'
     fh = vfs.make_file(url)
     fh.write("this is file1")
     fh.close()
     self.assertEqual(vfs.is_file(url), True)
     
     url = self.root + 'tmp/dir/zero'
     fh = vfs.make_file(url)
     fh.close()
     self.assertEqual(vfs.is_file(url), True)
     
     # this should raise an OSError because it's trying to make a file out
     # of an existing folder
     url = self.root + 'tmp/dir'
     self.assertRaises(OSError, vfs.make_file, url)
     
     # this should raise an OSError because it's trying to make a file in
     # another file
     url = self.root + 'tmp/dir/file1/file2'
     self.assertRaises(OSError, vfs.make_file, url)
コード例 #5
0
ファイル: project_plugin.py プロジェクト: zendbit/peppy
 def createProject(cls, topdir):
     url = vfs.normalize(topdir)
     if url in cls.url_to_project_mapping:
         raise TypeError("Project already exists.")
     proj_dir = url.resolve2(cls.classprefs.project_directory)
     if not vfs.is_folder(proj_dir):
         if not vfs.exists(proj_dir):
             vfs.make_folder(proj_dir)
         else:
             raise TypeError(
                 "Can't create directory %s -- seems already exist as a file"
                 % proj_dir)
     info = cls.registerProject(None, proj_dir)
     info.savePrefs()
     cls.dprint(info)
     buffers = BufferList.getBuffers()
     for buffer in buffers:
         if buffer.url.scheme != "file":
             continue
         cls.dprint(u"prefix=%s topdir=%s" %
                    (buffer.url.path.get_prefix(url.path), url.path))
         if buffer.url.path.get_prefix(url.path) == url.path:
             cls.dprint(u"belongs in project! %s" % buffer.url.path)
             for mode in buffer.iterViewers():
                 mode.project_info = info
         else:
             cls.dprint(u"not in project: %s" % buffer.url.path)
     return info
コード例 #6
0
ファイル: project_plugin.py プロジェクト: robmcmullen/peppy
 def createProject(cls, topdir):
     url = vfs.normalize(topdir)
     if url in cls.url_to_project_mapping:
         raise TypeError("Project already exists.")
     proj_dir = url.resolve2(cls.classprefs.project_directory)
     if not vfs.is_folder(proj_dir):
         if not vfs.exists(proj_dir):
             vfs.make_folder(proj_dir)
         else:
             raise TypeError("Can't create directory %s -- seems already exist as a file" % proj_dir)
     info = cls.registerProject(None, proj_dir)
     info.savePrefs()
     cls.dprint(info)
     buffers = BufferList.getBuffers()
     for buffer in buffers:
         if buffer.url.scheme != "file":
             continue
         cls.dprint(u"prefix=%s topdir=%s" % (buffer.url.path.get_prefix(url.path), url.path))
         if buffer.url.path.get_prefix(url.path) == url.path:
             cls.dprint(u"belongs in project! %s" % buffer.url.path)
             for mode in buffer.iterViewers():
                 mode.project_info = info
         else:
             cls.dprint(u"not in project: %s" % buffer.url.path)
     return info
コード例 #7
0
ファイル: test_vfs.py プロジェクト: betsegaw/peppy
 def test14_remove_folder(self):
     # Create hierarchy
     vfs.make_folder('vfs/folder')
     vfs.make_folder('vfs/folder/a')
     vfs.make_file('vfs/folder/a/hello.txt')
     # Remove and test
     vfs.remove('vfs/folder')
     self.assertEqual(vfs.exists('vfs/folder'), False)
コード例 #8
0
ファイル: test_vfs.py プロジェクト: zendbit/peppy
 def test14_remove_folder(self):
     # Create hierarchy
     vfs.make_folder('vfs/folder')
     vfs.make_folder('vfs/folder/a')
     vfs.make_file('vfs/folder/a/hello.txt')
     # Remove and test
     vfs.remove('vfs/folder')
     self.assertEqual(vfs.exists('vfs/folder'), False)
コード例 #9
0
ファイル: test_memfs.py プロジェクト: zendbit/peppy
 def test22_copy_folder(self):
     vfs.copy('vfs', 'mem:/tmp/folder-copy')
     with vfs.open('mem:/tmp/folder-copy/hello.txt') as file:
         self.assertEqual(file.read(), 'hello world\n')
     vfs.make_folder('mem:/tmp/folder-dest')
     vfs.copy('vfs', 'mem:/tmp/folder-dest')
     with vfs.open('mem:/tmp/folder-dest/vfs/hello.txt') as file:
         self.assertEqual(file.read(), 'hello world\n')
コード例 #10
0
ファイル: test_memfs.py プロジェクト: betsegaw/peppy
 def test22_copy_folder(self):
     vfs.copy('vfs', 'mem:/tmp/folder-copy')
     with vfs.open('mem:/tmp/folder-copy/hello.txt') as file:
         self.assertEqual(file.read(), 'hello world\n')
     vfs.make_folder('mem:/tmp/folder-dest')
     vfs.copy('vfs', 'mem:/tmp/folder-dest')
     with vfs.open('mem:/tmp/folder-dest/vfs/hello.txt') as file:
         self.assertEqual(file.read(), 'hello world\n')
コード例 #11
0
ファイル: test_sftpfs.py プロジェクト: betsegaw/peppy
 def test21_copy_file(self):
     url = self.root + 'tmp/dir/'
     vfs.make_folder(url)
     vfs.copy(self.root + 'tmp/blah.txt', url)
     file = vfs.open(url + 'blah.txt')
     self.assertEqual(file.read(), 'BLAH!!!')
     vfs.copy(self.root + 'tmp/blah.txt', url + 'blah2.txt')
     file = vfs.open(url + 'blah2.txt')
     self.assertEqual(file.read(), 'BLAH!!!')
コード例 #12
0
ファイル: test_webdavfs.py プロジェクト: robmcmullen/peppy
 def test21_copy_file(self):
     url = self.root + "tmp/dir/"
     vfs.make_folder(url)
     vfs.copy(self.root + "tmp/blah.txt", url)
     file = vfs.open(url + "blah.txt")
     self.assertEqual(file.read(), "BLAH!!!")
     vfs.copy(self.root + "tmp/blah.txt", url + "blah2.txt")
     file = vfs.open(url + "blah2.txt")
     self.assertEqual(file.read(), "BLAH!!!")
コード例 #13
0
ファイル: test_webdavfs.py プロジェクト: zendbit/peppy
 def test21_copy_file(self):
     url = self.root + 'tmp/dir/'
     vfs.make_folder(url)
     vfs.copy(self.root + 'tmp/blah.txt', url)
     file = vfs.open(url + 'blah.txt')
     self.assertEqual(file.read(), 'BLAH!!!')
     vfs.copy(self.root + 'tmp/blah.txt', url + 'blah2.txt')
     file = vfs.open(url + 'blah2.txt')
     self.assertEqual(file.read(), 'BLAH!!!')
コード例 #14
0
ファイル: test_webdavfs.py プロジェクト: zendbit/peppy
 def test_simple(self):
     vfs.make_folder(self.root + 'tmp')
     file = vfs.make_file(self.root + 'tmp/blah.txt')
     file.write("BLAH!!!")
     file.close()
     
     # Probably too loose of a test, but the modification time has a 10
     # second window for correctness
     mtime = vfs.get_mtime(self.root + 'tmp/blah.txt')
     current = datetime.now()
     assert abs(mtime - current) < timedelta(10)
     
     file = vfs.open(self.root + 'tmp/blah.txt')
     self.assertEqual(file.read(), 'BLAH!!!')
     assert vfs.exists(self.root + 'tmp')
     
     names = vfs.get_names(self.root)
     assert "tmp" in names
     names = vfs.get_names(self.root + 'tmp')
     assert "blah.txt" in names
     
     vfs.remove(self.root + 'tmp')
     assert not vfs.exists(self.root + 'tmp')
     assert not vfs.exists(self.root + 'tmp/blah.txt')
コード例 #15
0
ファイル: test_webdavfs.py プロジェクト: robmcmullen/peppy
    def test_simple(self):
        vfs.make_folder(self.root + "tmp")
        file = vfs.make_file(self.root + "tmp/blah.txt")
        file.write("BLAH!!!")
        file.close()

        # Probably too loose of a test, but the modification time has a 10
        # second window for correctness
        mtime = vfs.get_mtime(self.root + "tmp/blah.txt")
        current = datetime.now()
        assert abs(mtime - current) < timedelta(10)

        file = vfs.open(self.root + "tmp/blah.txt")
        self.assertEqual(file.read(), "BLAH!!!")
        assert vfs.exists(self.root + "tmp")

        names = vfs.get_names(self.root)
        assert "tmp" in names
        names = vfs.get_names(self.root + "tmp")
        assert "blah.txt" in names

        vfs.remove(self.root + "tmp")
        assert not vfs.exists(self.root + "tmp")
        assert not vfs.exists(self.root + "tmp/blah.txt")
コード例 #16
0
ファイル: macro.py プロジェクト: zendbit/peppy
 def addMacro(cls, macro, dirname=None):
     if dirname:
         if not dirname.endswith("/"):
             dirname += "/"
         
         # Make sure the directory exists
         url = vfs.normalize("macro:%s" % dirname)
         needs_mkdir = False
         if vfs.exists(url):
             if vfs.is_file(url):
                 # we have a macro that is the same name as the directory
                 # name.  Rename the file and create the directory.
                 components = dirname.strip('/').split('/')
                 filename = components.pop()
                 parent_dirname = "/".join(components)
                 dum, new_filename = cls.findAlternateName(parent_dirname, filename)
                 #dprint("parent=%s filename=%s: New filename: %s" % (parent_dirname, filename, new_filename))
                 parent, existing, name = cls._find(parent_dirname)
                 #dprint("existing=%s" % existing)
                 existing[new_filename] = existing[filename]
                 del existing[filename]
                 #dprint("existing after=%s" % existing)
                 needs_mkdir = True
         else:
             needs_mkdir = True
         if needs_mkdir:
             #dprint("Making folder %s" % url)
             vfs.make_folder(url)
     else:
         dirname = ""
     fullpath, basename = cls.findAlternateName(dirname, macro.name)
     
     parent, existing, name = cls._find(dirname)
     #dprint("name=%s: parent=%s, existing=%s" % (basename, parent, existing))
     macro.setName(fullpath)
     existing[basename] = macro
コード例 #17
0
ファイル: test_webdavfs.py プロジェクト: zendbit/peppy
 def test29_remove(self):
     url = self.root + 'tmp/dir'
     vfs.make_folder(url)
     vfs.remove(url)
     self.assertEqual(vfs.exists(url), False)
     # Create hierarchy
     vfs.make_folder(self.root + 'tmp3')
     vfs.exists(self.root + 'tmp3')
     vfs.make_folder(self.root + 'tmp3/folder')
     vfs.exists(self.root + 'tmp3/folder')
     vfs.make_folder(self.root + 'tmp3/folder/a')
     vfs.exists(self.root + 'tmp3/folder/a')
     fh = vfs.make_file(self.root + 'tmp3/folder/a/hello.txt')
     fh.write("blah")
     fh.close()
     vfs.exists(self.root + 'tmp3/folder/a/hello.txt')
     # Remove and test
     vfs.remove(self.root + 'tmp3/folder')
     self.assertEqual(vfs.exists(self.root + 'tmp3/folder'), False)
コード例 #18
0
ファイル: test_sftpfs.py プロジェクト: betsegaw/peppy
 def test29_remove(self):
     url = self.root + 'tmp/dir'
     vfs.make_folder(url)
     vfs.remove(url)
     self.assertEqual(vfs.exists(url), False)
     # Create hierarchy
     vfs.make_folder(self.root + 'tmp3')
     vfs.exists(self.root + 'tmp3')
     vfs.make_folder(self.root + 'tmp3/folder')
     vfs.exists(self.root + 'tmp3/folder')
     vfs.make_folder(self.root + 'tmp3/folder/a')
     vfs.exists(self.root + 'tmp3/folder/a')
     fh = vfs.make_file(self.root + 'tmp3/folder/a/hello.txt')
     fh.write("blah")
     fh.close()
     vfs.exists(self.root + 'tmp3/folder/a/hello.txt')
     # Remove and test
     vfs.remove(self.root + 'tmp3/folder')
     self.assertEqual(vfs.exists(self.root + 'tmp3/folder'), False)
コード例 #19
0
ファイル: test_memfs.py プロジェクト: zendbit/peppy
 def test29_remove(self):
     url = 'mem:testfile.txt.old'
     vfs.remove(url)
     self.assertEqual(vfs.exists(url), False)
     url = 'mem:test/dir'
     vfs.make_folder(url)
     vfs.remove(url)
     self.assertEqual(vfs.exists(url), False)
     # Create hierarchy
     vfs.make_folder('mem:tests/folder')
     vfs.make_folder('mem:tests/folder/a')
     vfs.make_file('mem:tests/folder/a/hello.txt')
     # Remove and test
     vfs.remove('mem:tests/folder')
     self.assertEqual(vfs.exists('mem:tests/folder'), False)
コード例 #20
0
ファイル: test_memfs.py プロジェクト: betsegaw/peppy
 def test29_remove(self):
     url = 'mem:testfile.txt.old'
     vfs.remove(url)
     self.assertEqual(vfs.exists(url), False)
     url = 'mem:test/dir'
     vfs.make_folder(url)
     vfs.remove(url)
     self.assertEqual(vfs.exists(url), False)
     # Create hierarchy
     vfs.make_folder('mem:tests/folder')
     vfs.make_folder('mem:tests/folder/a')
     vfs.make_file('mem:tests/folder/a/hello.txt')
     # Remove and test
     vfs.remove('mem:tests/folder')
     self.assertEqual(vfs.exists('mem:tests/folder'), False)
コード例 #21
0
ファイル: test_vfs.py プロジェクト: zendbit/peppy
 def test07_make_folder(self):
     vfs.make_folder('vfs/folder')
     self.assertEqual(vfs.is_folder('vfs/folder'), True)
コード例 #22
0
ファイル: test_vfs.py プロジェクト: zendbit/peppy
 def setUp(self):
     vfs.make_folder('vfs-tmp')
コード例 #23
0
ファイル: test_vfs.py プロジェクト: betsegaw/peppy
 def test07_make_folder(self):
     vfs.make_folder('vfs/folder')
     self.assertEqual(vfs.is_folder('vfs/folder'), True)
コード例 #24
0
ファイル: test_vfs.py プロジェクト: betsegaw/peppy
 def setUp(self):
     vfs.make_folder('vfs-tmp')
コード例 #25
0
ファイル: test_memfs.py プロジェクト: zendbit/peppy
 def setUp(self):
     vfs.make_folder('mem:tmp')
     file = vfs.make_file('mem:tmp/blah.txt')
     file.write("BLAH!!!")
     file.close()
コード例 #26
0
ファイル: test_memfs.py プロジェクト: betsegaw/peppy
 def setUp(self):
     vfs.make_folder('mem:tmp')
     file = vfs.make_file('mem:tmp/blah.txt')
     file.write("BLAH!!!")
     file.close()
コード例 #27
0
ファイル: dired.py プロジェクト: zendbit/peppy
 def handleFileDrop(self, x, y, filenames):
     self.dprint("%d file(s) dropped at %d,%d:" % (len(filenames), x, y))
     srcdir = None
     tocopy = []
     for src in filenames:
         filename = os.path.basename(src)
         if not srcdir:
             srcdir = os.path.dirname(src)
             srcdir += os.pathsep
         if os.path.isdir(src):
             self.dprint("dir: %s" % src)
             for root, dirs, files in os.walk(src):
                 for file in files:
                     child = os.path.join(root, file)
                     self.dprint("  file: %s" % child)
                     tocopy.append(child)
         elif os.path.isfile(src):
             self.dprint("file: %s" % src)
             tocopy.append(src)
         else:
             self.dprint("not file or dir: %s  NOT COPYING" % src)
     
     self.status_info.startProgress("Copying...", len(tocopy), delay=1.0)
     count = 0
     skipped = 0
     errors = []
     for src in tocopy:
         try:
             srcref = vfs.get_file_reference(src)
             relsrc = src[len(srcdir):]
             relref = vfs.get_file_reference(relsrc)
             dest = self.url.resolve2(relref)
             self.dprint("srcref=%s, relref=%s, dest=%s" % (srcref, relref, dest))
             self.dprint("copying: '%s' -> '%s'" % (src, dest))
             self.status_info.updateProgress(count, "Copying to %s" % str(dest))
             destdir = vfs.get_dirname(dest)
             if not vfs.exists(destdir):
                 # Need to recursively make directories
                 dirs = []
                 parent = destdir
                 maxdepth = len(parent.path)
                 while not vfs.exists(parent) and maxdepth > 0:
                     dirs.append(parent)
                     parent = vfs.get_dirname(parent)
                     maxdepth -= 1
                 dirs.reverse()
                 for dir in dirs:
                     self.dprint("Creating dir: %s" % dir)
                     vfs.make_folder(dir)
             copy = True
             self.dprint("src path: %s" % srcref.path)
             self.dprint("dest path: %s" % dest.path)
             if vfs.exists(dest):
                 self.dprint("exists: %s" % str(dest))
                 if vfs.is_folder(dest):
                     errors.append("Not copying folder %s; shouldn't be specified from %s" % (dest, src))
                     copy = False
                 else:
                     dlg = CustomOkDialog(self.frame, u"File exists!  Replace\n\n%s, %s, %s\n\nwith:\n\n%s, %s, %s" % (dest, vfs.get_mtime(dest), vfs.get_size(dest), src, os.path.getmtime(src), os.path.getsize(src)), "Replace", "Skip")
                     retval=dlg.ShowModal()
                     dlg.Destroy()
                     copy = retval==wx.ID_OK
                     if copy:
                         self.dprint("Removing %s" % dest)
                         vfs.remove(dest)
             if copy:
                 vfs.copy(srcref, dest)
             else:
                 skipped += 1
         except Exception, e:
             errors.append("%s: %s" % (src, e))
         count += 1