From 8374ae53f1604f887255bd6214aae2b40b03c6f8 Mon Sep 17 00:00:00 2001 From: Wojciech Siewierski Date: Sun, 27 Jan 2019 02:46:25 +0100 Subject: Make it easier to test bookmarks by optionally disabling validation The test bookmarks were intentionally bogus as we cannot reliably predict valid paths on the test system, so validation doesn't make any sense there. --- ranger/container/bookmarks.py | 7 ++++--- 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. 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" -- cgit 1.4.1-2-gfad0