Skip to content

Commit 3092f9e

Browse files
committed
asn: fix check for path type, check: add more checks
is_file is a method, not a member, therefore is_file always evaluates to true
1 parent 097f685 commit 3092f9e

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

intelmq/bots/experts/asn_lookup/expert.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,10 @@ def init(self):
3636
try:
3737
self._database = pyasn.pyasn(self.database)
3838
except OSError:
39-
self.logger.error("pyasn data file does not exist or could not be "
40-
"accessed in %r.", self.database)
41-
self.logger.error("Read 'bots/experts/asn_lookup/README' and "
42-
"follow the procedure.")
39+
raise ValueError(f"pyasn data file does not exist or could not be accessed in {self.database!r}. ",
40+
"Please see https://docs.intelmq.org/latest/user/bots/#asn-lookup")
4341
self.stop()
44-
if not Path(self.database).is_file:
42+
if not Path(self.database).is_file():
4543
raise ValueError('Database file does not exist or is not a file.')
4644

4745
def process(self):
@@ -69,12 +67,15 @@ def process(self):
6967

7068
@staticmethod
7169
def check(parameters):
72-
if not os.path.exists(parameters.get('database', '')):
73-
return [["error", "File given as parameter 'database' does not exist."]]
70+
database_path = Path(parameters.get('database', ''))
71+
if not database_path.exists():
72+
return [["error", f"File given as parameter 'database' ({database_path!s}) does not exist."]]
73+
elif not database_path.is_file():
74+
return [["error", f"Parameter 'database' ({database_path!s}) exists, but is not a file."]]
7475
try:
7576
pyasn.pyasn(parameters['database'])
7677
except Exception as exc:
77-
return [["error", "Error reading database: %r." % exc]]
78+
return [["error", f"Error reading database ({database_path!s}): %r." % exc]]
7879

7980
@classmethod
8081
def run(cls, parsed_args=None):
@@ -116,7 +117,7 @@ def update_database(cls, verbose=False):
116117
raise MissingDependencyError("pyasn")
117118

118119
for database_path in set(bots.values()):
119-
if not Path(database_path).is_file:
120+
if not Path(database_path).is_file():
120121
raise ValueError('Database file does not exist or is not a file.')
121122
elif not os.access(database_path, os.W_OK):
122123
raise ValueError('Database file is not writeable.')

0 commit comments

Comments
 (0)