def getobject(storefile, ignore=None, classes=classes, hiddenclasses=hiddenclasses): """Factory that returns a usable object for the type of file presented. @type storefile: file or str @param storefile: File object or file name. Specify ignore to ignore some part at the back of the name (like .gz). """ if isinstance(storefile, base.TranslationStore): return storefile if isinstance(storefile, basestring): if os.path.isdir(storefile) or storefile.endswith(os.path.sep): from translate.storage import directory return directory.Directory(storefile) storefilename = _getname(storefile) storeclass = getclass(storefile, ignore, classes=classes, hiddenclasses=hiddenclasses) if os.path.exists(storefilename) or not getattr(storefile, "closed", True): name, ext = os.path.splitext(storefilename) ext = ext[len(os.path.extsep):].lower() if ext in decompressclass: storefile = decompressclass[ext](storefilename) store = storeclass.parsefile(storefile) else: store = storeclass() store.filename = storefilename return store
def getobject(storefile, ignore=None, classes=None, classes_str=classes_str, hiddenclasses=hiddenclasses): """Factory that returns a usable object for the type of file presented. :type storefile: file or str :param storefile: File object or file name. Specify ignore to ignore some part at the back of the name (like .gz). """ if isinstance(storefile, six.string_types): if os.path.isdir(storefile) or storefile.endswith(os.path.sep): from translate.storage import directory return directory.Directory(storefile) storefilename = _getname(storefile) storeclass = getclass(storefile, ignore, classes=classes, classes_str=classes_str, hiddenclasses=hiddenclasses) if os.path.exists(storefilename) or not getattr(storefile, "closed", True): name, ext = os.path.splitext(storefilename) ext = ext[len(os.path.extsep):].lower() if ext in decompressclass: _module, _class = decompressclass[ext] module = __import__(_module, globals(), {}, []) _file = getattr(module, _class) storefile = _file(storefilename) store = storeclass.parsefile(storefile) else: store = storeclass() store.filename = storefilename return store
def test_getunits(self): """Tests basic functionality.""" files = ["a.po", "b.po", "c.po"] posource = '''msgid "bla"\nmsgstr "blabla"\n''' self.touchfiles(self.testdir, files, posource) d = directory.Directory(self.testdir) for unit in d.getunits(): assert unit.target == "blabla" assert len(d.getunits()) == 3
def test_basic(self): """Tests basic functionality.""" files = ["a.po", "b.po", "c.po"] files.sort() self.touchfiles(self.testdir, files) d = directory.Directory(self.testdir) filenames = [name for dir, name in d.getfiles()] filenames.sort() assert filenames == files
def test_structure(self): """Tests a small directory structure.""" files = ["a.po", "b.po", "c.po"] self.touchfiles(self.testdir, files) self.mkdir("bla") self.touchfiles(os.path.join(self.testdir, "bla"), files) d = directory.Directory(self.testdir) filenames = [name for dirname, name in d.getfiles()] filenames.sort() files = files * 2 files.sort() assert filenames == files