7
7
from pyls .workspace import Document
8
8
9
9
DOC_URI = uris .from_fs_path (__file__ )
10
+
11
+ DOC_LINT = """
12
+ import os
13
+ time.sleep(10)
14
+ t = 5
15
+
16
+ def useless_func():
17
+ pass
18
+ """
19
+
10
20
DOC_ADD = """
11
21
time.sleep(10)
12
22
print("test")
13
23
"""
24
+
14
25
DOC_REMOVE = """
15
26
import time
16
27
print("useless import")
17
28
"""
18
29
30
+ LINT_DIAGS = {
31
+ "Unresolved import 'time.sleep'" : {
32
+ 'range' : {'start' : {'line' : 2 , 'character' : 0 }, 'end' : {'line' : 2 , 'character' : 10 }},
33
+ 'severity' : lsp .DiagnosticSeverity .Hint ,
34
+ },
35
+ "Unreferenced variable/function 'useless_func'" : {
36
+ 'range' : {'start' : {'line' : 5 , 'character' : 4 }, 'end' : {'line' : 5 , 'character' : 16 }},
37
+ 'severity' : lsp .DiagnosticSeverity .Warning ,
38
+ },
39
+ "Unreferenced variable/function 't'" : {
40
+ 'range' : {'start' : {'line' : 3 , 'character' : 0 }, 'end' : {'line' : 3 , 'character' : 1 }},
41
+ 'severity' : lsp .DiagnosticSeverity .Warning ,
42
+ },
43
+ "Unreferenced import 'os'" : {
44
+ 'range' : {'start' : {'line' : 1 , 'character' : 7 }, 'end' : {'line' : 1 , 'character' : 9 }},
45
+ 'severity' : lsp .DiagnosticSeverity .Warning ,
46
+ },
47
+ }
48
+
19
49
20
50
def temp_document (doc_text ):
21
51
temp_file = tempfile .NamedTemporaryFile (mode = 'w' , delete = False )
@@ -29,14 +59,16 @@ def temp_document(doc_text):
29
59
30
60
def test_importmagic_lint ():
31
61
try :
32
- name , doc = temp_document (DOC )
62
+ name , doc = temp_document (DOC_LINT )
33
63
diags = importmagic_lint .pyls_lint (doc )
34
- unres_symbol = [d for d in diags if d ['source' ] == 'importmagic' ][0 ]
35
-
36
- assert unres_symbol ['message' ] == "Unresolved import 'time.sleep'"
37
- assert unres_symbol ['range' ]['start' ] == {'line' : 1 , 'character' : 0 }
38
- assert unres_symbol ['range' ]['end' ] == {'line' : 1 , 'character' : 10 }
39
- assert unres_symbol ['severity' ] == lsp .DiagnosticSeverity .Hint
64
+ importmagic_diags = [d for d in diags if d ['source' ] == 'importmagic' ]
65
+ assert len (importmagic_diags ) == len (LINT_DIAGS )
66
+
67
+ for diag in importmagic_diags :
68
+ expected_diag = LINT_DIAGS .get (diag ['message' ])
69
+ assert expected_diag is not None , "Didn't expect diagnostic with message '{}'" .format (diag ['message' ])
70
+ assert expected_diag ['range' ] == diag ['range' ]
71
+ assert expected_diag ['severity' ] == diag ['severity' ]
40
72
41
73
finally :
42
74
os .remove (name )
0 commit comments