mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-06 22:14:27 +08:00
static analysis import tests
This commit is contained in:
@@ -588,14 +588,12 @@ class Script(object):
|
||||
def _analysis(self):
|
||||
statements = set(chain(*self._parser.module().used_names.values()))
|
||||
for stmt in statements:
|
||||
if stmt.start_pos[0] != 254:
|
||||
continue
|
||||
if isinstance(stmt, pr.Import):
|
||||
imports.strip_imports(self._evaluator, [stmt])
|
||||
else:
|
||||
self._evaluator.eval_statement(stmt)
|
||||
|
||||
analysis = self._evaluator.analysis
|
||||
analysis = [a for a in self._evaluator.analysis if self.path == a.path]
|
||||
return sorted(analysis, key=lambda x: x.line)
|
||||
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ CODES = {
|
||||
|
||||
class Error(object):
|
||||
def __init__(self, name, module_path, start_pos):
|
||||
self._module_path = module_path
|
||||
self.path = module_path
|
||||
self._start_pos = start_pos
|
||||
self.name = name
|
||||
|
||||
@@ -39,7 +39,7 @@ class Error(object):
|
||||
|
||||
def __repr__(self):
|
||||
return '<%s %s: %s@%s,%s' % (self.__class__.__name__,
|
||||
self.name, self._module_path,
|
||||
self.name, self.path,
|
||||
self._start_pos[0], self._start_pos[1])
|
||||
|
||||
|
||||
|
||||
@@ -98,13 +98,13 @@ class StaticAnalysisCase(object):
|
||||
for line_nr, line in enumerate(self._source.splitlines(), 1):
|
||||
if line.startswith('#! '):
|
||||
rest = line[3:]
|
||||
cases.append((line_nr, rest))
|
||||
cases.append((line_nr + 1, rest))
|
||||
return cases
|
||||
|
||||
def run(self, compare_cb):
|
||||
analysis = jedi.Script(self._source)._analysis()
|
||||
analysis = jedi.Script(self._source, path=self._path)._analysis()
|
||||
analysis = [(r.line, r.name) for r in analysis]
|
||||
assert compare_cb(self, analysis, self.collect_comparison())
|
||||
compare_cb(self, analysis, self.collect_comparison())
|
||||
|
||||
def __repr__(self):
|
||||
return "<%s: %s>" % (self.__class__.__name__, os.path.basename(self._path))
|
||||
|
||||
5
test/static_analysis/imports.py
Normal file
5
test/static_analysis/imports.py
Normal file
@@ -0,0 +1,5 @@
|
||||
|
||||
#! import-error
|
||||
import not_existing
|
||||
|
||||
import os
|
||||
Reference in New Issue
Block a user