Skip to content
This repository was archived by the owner on Jun 1, 2023. It is now read-only.

Commit 120bebb

Browse files
committed
Raise KeyError if item in question is not a file.
1 parent abfb550 commit 120bebb

File tree

1 file changed

+27
-24
lines changed

1 file changed

+27
-24
lines changed

src/oidcmsg/storage/abfile.py

+27-24
Original file line numberDiff line numberDiff line change
@@ -87,14 +87,16 @@ def __getitem__(self, item):
8787
:return:
8888
"""
8989
item = self.key_conv.serialize(item)
90-
91-
if self.is_changed(item):
92-
logger.info("File content change in {}".format(item))
93-
fname = os.path.join(self.fdir, item)
94-
self.storage[item] = self._read_info(fname)
95-
96-
logger.debug('Read from "%s"', item)
97-
return self.storage[item]
90+
if self._is_file(item):
91+
if self.is_changed(item):
92+
logger.info("File content change in {}".format(item))
93+
fname = os.path.join(self.fdir, item)
94+
self.storage[item] = self._read_info(fname)
95+
96+
logger.debug('Read from "%s"', item)
97+
return self.storage[item]
98+
else:
99+
raise KeyError(item)
98100

99101
def __setitem__(self, key, value):
100102
"""
@@ -163,31 +165,32 @@ def get_mtime(fname):
163165

164166
return mtime
165167

168+
def _is_file(self, item):
169+
fname = os.path.join(self.fdir, item)
170+
return os.path.isfile(fname)
171+
166172
def is_changed(self, item):
167173
"""
168-
Find out if this item has been modified since last
174+
Find out if this item has been modified since last.
175+
When I get here I know that item points to an existing file.
169176
170177
:param item: A key
171178
:return: True/False
172179
"""
173180
fname = os.path.join(self.fdir, item)
174-
if os.path.isfile(fname):
175-
mtime = self.get_mtime(fname)
181+
mtime = self.get_mtime(fname)
176182

177-
try:
178-
_ftime = self.fmtime[item]
179-
except KeyError: # Never been seen before
180-
self.fmtime[item] = mtime
181-
return True
182-
183-
if mtime > _ftime: # has changed
184-
self.fmtime[item] = mtime
185-
return True
186-
else:
187-
return False
183+
try:
184+
_ftime = self.fmtime[item]
185+
except KeyError: # Never been seen before
186+
self.fmtime[item] = mtime
187+
return True
188+
189+
if mtime > _ftime: # has changed
190+
self.fmtime[item] = mtime
191+
return True
188192
else:
189-
logger.error('Could not access {}'.format(fname))
190-
raise KeyError(item)
193+
return False
191194

192195
def _read_info(self, fname):
193196
if os.path.isfile(fname):

0 commit comments

Comments
 (0)