diff options
-rw-r--r-- | ranger/container/bookmarks.py | 7 | ||||
-rw-r--r-- | tests/ranger/container/test_bookmarks.py | 4 |
2 files changed, 6 insertions, 5 deletions
diff --git a/ranger/container/bookmarks.py b/ranger/container/bookmarks.py index 20809c10..25e81097 100644 --- a/ranger/container/bookmarks.py +++ b/ranger/container/bookmarks.py @@ -12,7 +12,7 @@ from ranger.core.shared import FileManagerAware ALLOWED_KEYS = string.ascii_letters + string.digits + "`'" -class Bookmarks(FileManagerAware): +class Bookmarks(FileManagerAware): # pylint: disable=too-many-instance-attributes """Bookmarks is a container which associates keys with bookmarks. A key is a string with: len(key) == 1 and key in ALLOWED_KEYS. @@ -29,7 +29,7 @@ class Bookmarks(FileManagerAware): load_pattern = re.compile(r"^[\d\w']:.") def __init__(self, bookmarkfile, bookmarktype=str, autosave=False, - nonpersistent_bookmarks=()): + validate=True, nonpersistent_bookmarks=()): """Initializes Bookmarks. <bookmarkfile> specifies the path to the file where @@ -41,6 +41,7 @@ class Bookmarks(FileManagerAware): self.path = bookmarkfile self.bookmarktype = bookmarktype self.nonpersistent_bookmarks = set(nonpersistent_bookmarks) + self.validate = validate def load(self): """Load the bookmarks from path/bookmarks""" @@ -89,7 +90,7 @@ class Bookmarks(FileManagerAware): key = "'" if key in self.dct: value = self.dct[key] - if os.path.isdir(value.path): + if not self.validate or os.path.isdir(str(value)): return value else: raise KeyError("Cannot open bookmark: `%s'!" % key) diff --git a/tests/ranger/container/test_bookmarks.py b/tests/ranger/container/test_bookmarks.py index 64192c06..8c62bd23 100644 --- a/tests/ranger/container/test_bookmarks.py +++ b/tests/ranger/container/test_bookmarks.py @@ -12,7 +12,7 @@ def testbookmarks(tmpdir): # Bookmarks point to directory location and allow fast access to # 'favorite' directories. They are persisted to a bookmark file, plain text. bookmarkfile = tmpdir.join("bookmarkfile") - bmstore = Bookmarks(str(bookmarkfile)) + bmstore = Bookmarks(str(bookmarkfile), validate=False) # loading an empty bookmark file doesnot crash bmstore.load() @@ -33,7 +33,7 @@ def testbookmarks(tmpdir): # We can persist bookmarks to disk and restore them from disk bmstore.save() - secondstore = Bookmarks(str(bookmarkfile)) + secondstore = Bookmarks(str(bookmarkfile), validate=False) secondstore.load() assert "'" in secondstore assert secondstore["'"] == "the milk" |