def _iter(self, reload=False): """Yield the document's items.""" if self._itered and not reload: msg = "iterating document {}'s loaded items...".format(self) log.debug(msg) yield from list(self._items) return log.info("loading document {}'s items...".format(self)) # Reload the document's item self._items = [] for dirpath, dirnames, filenames in os.walk(self.path): for dirname in list(dirnames): path = os.path.join(dirpath, dirname, Document.CONFIG) if os.path.exists(path): path = os.path.dirname(path) dirnames.remove(dirname) log.trace("skipped embedded document: {}".format(path)) for filename in filenames: path = os.path.join(dirpath, filename) try: item = Item(path, root=self.root, document=self, tree=self.tree) except DoorstopError: pass # skip non-item files else: self._items.append(item) if reload: item.load(reload=reload) if settings.CACHE_ITEMS and self.tree: self.tree._item_cache[item.uid] = item # pylint: disable=W0212 log.trace("cached item: {}".format(item)) # Set meta attributes self._itered = True # Yield items yield from list(self._items)
def test_load_save(self): """Verify text formatting is preserved.""" item = Item(self.ITEM) item.load() item.save() text = common.read_text(self.ITEM) self.assertEqual(self.backup, text)
def test_load_save(self): """Verify text formatting is preserved.""" item = Item(self.ITEM) item.load() item.save() with open(self.ITEM, 'r') as infile: text = infile.read() self.assertEqual(self.backup, text)
def _iter(self, reload=False): """Yield the document's items.""" if self._itered and not reload: msg = "iterating document {}'s loaded items...".format(self) log.debug(msg) yield from list(self._items) return log.info("loading document {}'s items...".format(self)) # Reload the document's item self._items = [] for dirpath, dirnames, filenames in os.walk(self.path): for dirname in list(dirnames): path = os.path.join(dirpath, dirname, Document.CONFIG) if os.path.exists(path): path = os.path.dirname(path) dirnames.remove(dirname) log.trace("skipped embedded document: {}".format(path)) for filename in filenames: path = os.path.join(dirpath, filename) try: item = Item(path, root=self.root, document=self, tree=self.tree) except DoorstopError: pass # skip non-item files else: self._items.append(item) if reload: try: item.load(reload=reload) except Exception: log.error("Unable to load: %s", item) raise if settings.CACHE_ITEMS and self.tree: self.tree._item_cache[item.uid] = item # pylint: disable=W0212 log.trace("cached item: {}".format(item)) # Set meta attributes self._itered = True # Yield items yield from list(self._items)