1
1
import collections
2
2
import os
3
+ import subprocess
4
+ from pathlib import Path
5
+ from typing import Dict
3
6
from unittest .mock import Mock
4
7
5
8
import pytest
9
12
10
13
from pylsp_mypy import plugin
11
14
12
- DOC_URI = __file__
15
+ DOC_URI = f"file:/ { Path ( __file__ ) } "
13
16
DOC_TYPE_ERR = """{}.append(3)
14
17
"""
15
18
TYPE_ERR_MSG = '"Dict[<nothing>, <nothing>]" has no attribute "append"'
18
21
TEST_LINE_WITHOUT_COL = "test_plugin.py:279: " 'error: "Request" has no attribute "id"'
19
22
TEST_LINE_WITHOUT_LINE = "test_plugin.py: " 'error: "Request" has no attribute "id"'
20
23
24
+ windows_flag : Dict [str , int ] = (
25
+ {"creationflags" : subprocess .CREATE_NO_WINDOW } if os .name == "nt" else {} # type: ignore
26
+ )
27
+
21
28
22
29
@pytest .fixture
23
30
def last_diagnostics_monkeypatch (monkeypatch ):
@@ -196,10 +203,12 @@ def test_option_overrides_dmypy(last_diagnostics_monkeypatch, workspace):
196
203
m = Mock (wraps = lambda a , ** _ : Mock (returncode = 0 , ** {"stdout.decode" : lambda : "" }))
197
204
last_diagnostics_monkeypatch .setattr (plugin .subprocess , "run" , m )
198
205
206
+ document = Document (DOC_URI , workspace , DOC_TYPE_ERR )
207
+
199
208
plugin .pylsp_lint (
200
209
config = FakeConfig (),
201
210
workspace = workspace ,
202
- document = Document ( DOC_URI , workspace , DOC_TYPE_ERR ) ,
211
+ document = document ,
203
212
is_saved = False ,
204
213
)
205
214
expected = [
@@ -209,6 +218,6 @@ def test_option_overrides_dmypy(last_diagnostics_monkeypatch, workspace):
209
218
"--python-executable" ,
210
219
"/tmp/fake" ,
211
220
"--show-column-numbers" ,
212
- __file__ ,
221
+ document . path ,
213
222
]
214
- m .assert_called_with (expected , stderr = - 1 , stdout = - 1 )
223
+ m .assert_called_with (expected , stderr = - 1 , stdout = - 1 , ** windows_flag )
0 commit comments