Skip to content

Commit 4d26061

Browse files
karthiknadigkimadelinerchiodogreazerKartik Raj
authored
Cherry-pick fixes from master to june release (#12282)
* Merge stuff from may release back into master (#12233) * Revert vscode-extension-telemetry changes for the release (#11602) (#11656) * Revert "Fix slashes in telemetry unit tests (#11572)" This reverts commit 7431c9c. * Revert "Use vscode-extension-telemetry for our exceptions & error telemetry (#11524)" This reverts commit d5065e6. * Remove from changelog * Port storage fix to release branch (#11673) * Fix storage not being used (#11649) * Fix storage not being used * Add disposable to storage so it won't write after shutdown * Fix dirty title * Hack to get tests to pass * Another way to get run all to not interfere * Update changelog * Port scrolling fix to release (#11688) * Fix scrolling (#11681) * Fix scrolling * Review feedback - fix scrolling on expand/collapse * Update changelog * Update package.json Co-authored-by: Jim Griesmer <[email protected]> * Cherry-pick pipenv changes and pythonpath prompt changes to release (#11700) * Show the prompt again if user clicks on more info (#11664) * Show the prompt again if user clicks on more info * Review feedback * Use Learn more as text for the link. * Leave pipenv in a corner until the user decides to select an interpreter (#11654) * add onSuggestion option * Swap onActivation with onSuggestion * Update unit tests * Remove registration of IPipenvService * Move didTriggerInterpreterSuggestions logic inside pipenv locator * Fix existing unit tests * Add new unit tests * Replace typemoq any param with object * Shorten the tests * Fix warning * Duplicate teardown Co-authored-by: Kim-Adeline Miguel <[email protected]> * Update extension version (#11730) * Update extension version * Update date in changelog. * Update change log with additional notes. (#11764) * Cherry picks and version updates for bug fix release (#11878) * Do not execute shebang as an interpreter until user has clicked on the codelens enclosing the shebang (#11816) * Do not execute shebang as an interpreter until user has clicked on the codelens enclosing the shebang * Rename * Oops * Update src/test/providers/shebangCodeLenseProvider.unit.test.ts Co-authored-by: Karthik Nadig <[email protected]> Co-authored-by: Karthik Nadig <[email protected]> * Update version and change log for bugfix release Co-authored-by: Kartik Raj <[email protected]> * Cherry-pick ExP platform work from master (#12160) * User cannot belong to all experiments in an experiment group (#11945) * 10790 prep - Create an experiments/ folder (#11980) * experiments.ts -> experiments/manager.ts * eexperimentGroups -> experiments/experimentGroups * test/experiments.u.t -> test/experiments/manager.u.t * experimentGroups -> groups * Whoops committed one file too many * Add support for VS Code's experiment service (#11979) * Add npm package * News entry * experiments.ts -> experiments/manager.ts * Wrong issue number * eexperimentGroups -> experiments/experimentGroups * Move experiments.unit.tests.ts -> experiments/ * Commit new files * Merge gone sideways * Add types * Add opt in/out handling * Activation (service registry) * Don't pin tas-client to one version * Unit tests + fixes * Lol forgot to remove a comment + add headers * Forgot 'use strict' in service.ts * Use IApplicationEnvironment instead of IExtensions * Apply suggestions from code review Co-authored-by: Don Jayamanne <[email protected]> * Remove unnecessary formatted props * n e v e r m i n d * Aight fixed it * flight -> experiment * Check stub calls instead of ctor impl * removed getExperimentService stub check * Set shared properties for all telemetry events * Add test for shared properties Co-authored-by: Don Jayamanne <[email protected]> * Fix merge issues * Fix index unit tests * Revert "Fix index unit tests" This reverts commit 2fb61fc. * Make MPLS and vscode-extension-telemetry work together 🤝 (#11823) * Revert "Revert vscode-extension-telemetry changes for the release (#11602)" This reverts commit 71d1793. * Remove entry from changelog + add new news entry * Update LS code to use periods instead of slashes * Revert "Update LS code to use periods instead of slashes" This reverts commit 1356651. * Replace slashes before sending telemetry instead * Too fast too furious * Fix more merge issues Co-authored-by: Don Jayamanne <[email protected]> Co-authored-by: Kim-Adeline Miguel <[email protected]> * Update version and changelog for point release (#12171) * Ensure extension features are started when in Deprecate PythonPath experiment and opening a file without any folder opened (#12182) * Ensure extension features are started when in Deprecate PythonPath experiment and opening a file without any folder opened. * Added comments * Update change log (#12190) * Cherry pick fix for hasInterpreters and update change log (#12198) * Double-check for interpreters when running diagnostics (#12158) * Get interpreters if hasInterpreters returns false * Undo ignoreErrors() * Add unit tests * Fixed tests * Newline * Fix merge issues. * Update change log Co-authored-by: Kim-Adeline Miguel <[email protected]> * Update version for point release (#12259) Co-authored-by: Kim-Adeline Miguel <[email protected]> Co-authored-by: Rich Chiodo <[email protected]> Co-authored-by: Jim Griesmer <[email protected]> Co-authored-by: Kartik Raj <[email protected]> Co-authored-by: Don Jayamanne <[email protected]> * Make Jedi the default LS (#12226) * Make Jedi the default LS * Add news entry * Update change log Co-authored-by: Kim-Adeline Miguel <[email protected]> Co-authored-by: Rich Chiodo <[email protected]> Co-authored-by: Jim Griesmer <[email protected]> Co-authored-by: Kartik Raj <[email protected]> Co-authored-by: Don Jayamanne <[email protected]> Co-authored-by: Luciana Abud <[email protected]>
1 parent 62bc5d0 commit 4d26061

File tree

5 files changed

+168
-31
lines changed

5 files changed

+168
-31
lines changed

CHANGELOG.md

Lines changed: 134 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,12 @@
66

77
1. Removed `python.jediEnabled` setting in favor of `python.languageServer`. Instead of `"python.jediEnabled": true` please use `"python.languageServer": "Jedi"`.
88
([#7010](https://github.com/Microsoft/vscode-python/issues/7010))
9-
1. Integrate VS Code experiment framework in the extension.
10-
([#10790](https://github.com/Microsoft/vscode-python/issues/10790))
119
1. Added a start page for the extension. It opens to new users or when there is a new release. It can be disabled with the setting 'Python: Show Start Page'.
1210
([#11057](https://github.com/Microsoft/vscode-python/issues/11057))
1311
1. Preliminary support using other languages for the kernel.
1412
([#11919](https://github.com/Microsoft/vscode-python/issues/11919))
1513
1. Enable the use of the custom editor for native notebooks.
16-
([#10744](https://github.com/Microsoft/vscode-python/issues/10744))
14+
([#10744](https://github.com/Microsoft/vscode-python/issues/10744))
1715

1816
### Fixes
1917

@@ -63,7 +61,7 @@
6361
([#11751](https://github.com/Microsoft/vscode-python/issues/11751))
6462
1. When switching to an invalid kernel (one that is registered but cannot start) in raw mode respect the launch timeout that is passed in.
6563
([#11752](https://github.com/Microsoft/vscode-python/issues/11752))
66-
1. Make ```python.dataScience.textOutputLimit``` apply on subsequent rerun. We were letting the 'outputPrepend' metadata persist from run to run.
64+
1. Make `python.dataScience.textOutputLimit` apply on subsequent rerun. We were letting the 'outputPrepend' metadata persist from run to run.
6765
(thanks [Barry Nolte](https://github.com/BarryNolte))
6866
([#11777](https://github.com/Microsoft/vscode-python/issues/11777))
6967
1. Use `${command:python.interpreterPath}` to get selected interpreter path in `launch.json` and `tasks.json`.
@@ -76,12 +74,8 @@
7674
([#11800](https://github.com/Microsoft/vscode-python/issues/11800))
7775
1. Make sure to use webView.cspSource for all csp sources.
7876
([#11855](https://github.com/Microsoft/vscode-python/issues/11855))
79-
1. Double-check for interpreters when running diagnostics before displaying the "Python is not installed" message.
80-
([#11870](https://github.com/Microsoft/vscode-python/issues/11870))
8177
1. Use command line arguments to launch our raw kernels as opposed to a connection file. The connection file seems to be causing issues in particular on windows CI machines with permissions.
8278
([#11883](https://github.com/Microsoft/vscode-python/issues/11883))
83-
1. Ensure user cannot belong to all experiments in an experiment group.
84-
([#11943](https://github.com/Microsoft/vscode-python/issues/11943))
8579
1. Improve our status reporting when launching and connecting to a raw kernel.
8680
([#11951](https://github.com/Microsoft/vscode-python/issues/11951))
8781
1. Prewarm raw kernels based on raw kernel support and don't prewarm if jupyter autostart is disabled.
@@ -94,6 +88,8 @@
9488
([#12193](https://github.com/Microsoft/vscode-python/issues/12193))
9589
1. Fix debugger continue event to actually change a cell.
9690
([#12155](https://github.com/Microsoft/vscode-python/issues/12155))
91+
1. Make Jedi the Default value for the python.languageServer setting.
92+
([#12225](https://github.com/Microsoft/vscode-python/issues/12225))
9793
1. Make stop during run by line interrupt the kernel.
9894
([#12249](https://github.com/Microsoft/vscode-python/issues/12249))
9995

@@ -108,8 +104,6 @@
108104
([#11058](https://github.com/Microsoft/vscode-python/issues/11058))
109105
1. Reenable CDN unit tests.
110106
([#11442](https://github.com/Microsoft/vscode-python/issues/11442))
111-
1. Update telemetry on errors and exceptions to use [vscode-extension-telemetry](https://www.npmjs.com/package/vscode-extension-telemetry).
112-
([#11597](https://github.com/Microsoft/vscode-python/issues/11597))
113107
1. Run by line for notebook cells minimal implementation.
114108
([#11607](https://github.com/Microsoft/vscode-python/issues/11607))
115109
1. Get shape and count when showing debugger variables.
@@ -190,6 +184,136 @@ And finally thanks to the [Python](https://www.python.org/) development team and
190184
community for creating a fantastic programming language and community to be a
191185
part of!
192186

187+
## 2020.5.3 (10 June 2020)
188+
189+
1. Update `debugpy` to use `1.0.0b11` or greater.
190+
191+
### Thanks
192+
193+
Thanks to the following projects which we fully rely on to provide some of
194+
our features:
195+
196+
- [debugpy](https://pypi.org/project/debugpy/)
197+
- [isort](https://pypi.org/project/isort/)
198+
- [jedi](https://pypi.org/project/jedi/)
199+
and [parso](https://pypi.org/project/parso/)
200+
- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
201+
- [ptvsd](https://pypi.org/project/ptvsd/)
202+
- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
203+
- [rope](https://pypi.org/project/rope/) (user-installed)
204+
205+
Also thanks to the various projects we provide integrations with which help
206+
make this extension useful:
207+
208+
- Debugging support:
209+
[Django](https://pypi.org/project/Django/),
210+
[Flask](https://pypi.org/project/Flask/),
211+
[gevent](https://pypi.org/project/gevent/),
212+
[Jinja](https://pypi.org/project/Jinja/),
213+
[Pyramid](https://pypi.org/project/pyramid/),
214+
[PySpark](https://pypi.org/project/pyspark/),
215+
[Scrapy](https://pypi.org/project/Scrapy/),
216+
[Watson](https://pypi.org/project/Watson/)
217+
- Formatting:
218+
[autopep8](https://pypi.org/project/autopep8/),
219+
[black](https://pypi.org/project/black/),
220+
[yapf](https://pypi.org/project/yapf/)
221+
- Interpreter support:
222+
[conda](https://conda.io/),
223+
[direnv](https://direnv.net/),
224+
[pipenv](https://pypi.org/project/pipenv/),
225+
[pyenv](https://github.com/pyenv/pyenv),
226+
[venv](https://docs.python.org/3/library/venv.html#module-venv),
227+
[virtualenv](https://pypi.org/project/virtualenv/)
228+
- Linting:
229+
[bandit](https://pypi.org/project/bandit/),
230+
[flake8](https://pypi.org/project/flake8/),
231+
[mypy](https://pypi.org/project/mypy/),
232+
[prospector](https://pypi.org/project/prospector/),
233+
[pylint](https://pypi.org/project/pylint/),
234+
[pydocstyle](https://pypi.org/project/pydocstyle/),
235+
[pylama](https://pypi.org/project/pylama/)
236+
- Testing:
237+
[nose](https://pypi.org/project/nose/),
238+
[pytest](https://pypi.org/project/pytest/),
239+
[unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
240+
241+
And finally thanks to the [Python](https://www.python.org/) development team and
242+
community for creating a fantastic programming language and community to be a
243+
part of!
244+
245+
## 2020.5.2 (8 June 2020)
246+
247+
### Fixes
248+
249+
1. Double-check for interpreters when running diagnostics before displaying the "Python is not installed" message.
250+
([#11870](https://github.com/Microsoft/vscode-python/issues/11870))
251+
1. Ensure user cannot belong to all experiments in an experiment group.
252+
([#11943](https://github.com/Microsoft/vscode-python/issues/11943))
253+
1. Ensure extension features are started when in `Deprecate PythonPath` experiment and opening a file without any folder opened.
254+
([#12177](https://github.com/Microsoft/vscode-python/issues/12177))
255+
256+
### Code Health
257+
258+
1. Integrate VS Code experiment framework in the extension.
259+
([#10790](https://github.com/Microsoft/vscode-python/issues/10790))
260+
1. Update telemetry on errors and exceptions to use [vscode-extension-telemetry](https://www.npmjs.com/package/vscode-extension-telemetry).
261+
([#11597](https://github.com/Microsoft/vscode-python/issues/11597))
262+
263+
### Thanks
264+
265+
Thanks to the following projects which we fully rely on to provide some of
266+
our features:
267+
268+
- [debugpy](https://pypi.org/project/debugpy/)
269+
- [isort](https://pypi.org/project/isort/)
270+
- [jedi](https://pypi.org/project/jedi/)
271+
and [parso](https://pypi.org/project/parso/)
272+
- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
273+
- [ptvsd](https://pypi.org/project/ptvsd/)
274+
- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
275+
- [rope](https://pypi.org/project/rope/) (user-installed)
276+
277+
Also thanks to the various projects we provide integrations with which help
278+
make this extension useful:
279+
280+
- Debugging support:
281+
[Django](https://pypi.org/project/Django/),
282+
[Flask](https://pypi.org/project/Flask/),
283+
[gevent](https://pypi.org/project/gevent/),
284+
[Jinja](https://pypi.org/project/Jinja/),
285+
[Pyramid](https://pypi.org/project/pyramid/),
286+
[PySpark](https://pypi.org/project/pyspark/),
287+
[Scrapy](https://pypi.org/project/Scrapy/),
288+
[Watson](https://pypi.org/project/Watson/)
289+
- Formatting:
290+
[autopep8](https://pypi.org/project/autopep8/),
291+
[black](https://pypi.org/project/black/),
292+
[yapf](https://pypi.org/project/yapf/)
293+
- Interpreter support:
294+
[conda](https://conda.io/),
295+
[direnv](https://direnv.net/),
296+
[pipenv](https://pypi.org/project/pipenv/),
297+
[pyenv](https://github.com/pyenv/pyenv),
298+
[venv](https://docs.python.org/3/library/venv.html#module-venv),
299+
[virtualenv](https://pypi.org/project/virtualenv/)
300+
- Linting:
301+
[bandit](https://pypi.org/project/bandit/),
302+
[flake8](https://pypi.org/project/flake8/),
303+
[mypy](https://pypi.org/project/mypy/),
304+
[prospector](https://pypi.org/project/prospector/),
305+
[pylint](https://pypi.org/project/pylint/),
306+
[pydocstyle](https://pypi.org/project/pydocstyle/),
307+
[pylama](https://pypi.org/project/pylama/)
308+
- Testing:
309+
[nose](https://pypi.org/project/nose/),
310+
[pytest](https://pypi.org/project/pytest/),
311+
[unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
312+
313+
And finally thanks to the [Python](https://www.python.org/) development team and
314+
community for creating a fantastic programming language and community to be a
315+
part of!
316+
193317
## 2020.5.1 (19 May 2020)
194318

195319
### Fixes

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2153,7 +2153,7 @@
21532153
"Microsoft",
21542154
"None"
21552155
],
2156-
"default": "Microsoft",
2156+
"default": "Jedi",
21572157
"description": "Defines type of the language server.",
21582158
"scope": "resource"
21592159
},

src/client/common/interpreterPathService.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { ConfigurationChangeEvent, ConfigurationTarget, Event, EventEmitter, Uri
99
import { IWorkspaceService } from './application/types';
1010
import { PythonSettings } from './configSettings';
1111
import { isTestExecution } from './constants';
12+
import { traceError } from './logger';
1213
import { FileSystemPaths } from './platform/fs-paths';
1314
import {
1415
IDisposable,
@@ -105,7 +106,8 @@ export class InterpreterPathService implements IInterpreterPathService {
105106
return;
106107
}
107108
if (!resource) {
108-
throw new Error('Cannot update workspace settings as no workspace is opened');
109+
traceError('Cannot update workspace settings as no workspace is opened');
110+
return;
109111
}
110112
const settingKey = this.getSettingKey(resource, configTarget);
111113
const persistentSetting = this.persistentStateFactory.createGlobalPersistentState<string | undefined>(
@@ -149,7 +151,11 @@ export class InterpreterPathService implements IInterpreterPathService {
149151

150152
public async _copyWorkspaceFolderValueToNewStorage(resource: Resource, value: string | undefined): Promise<void> {
151153
// Copy workspace folder setting into the new storage if it hasn't been copied already
152-
const workspaceFolderKey = this.workspaceService.getWorkspaceFolderIdentifier(resource);
154+
const workspaceFolderKey = this.workspaceService.getWorkspaceFolderIdentifier(resource, '');
155+
if (workspaceFolderKey === '') {
156+
// No workspace folder is opened, simply return.
157+
return;
158+
}
153159
const flaggedWorkspaceFolderKeysStorage = this.persistentStateFactory.createGlobalPersistentState<string[]>(
154160
workspaceFolderKeysForWhichTheCopyIsDone_Key,
155161
[]

src/client/telemetry/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -282,8 +282,8 @@ function serializeStackTrace(ex: Error): string {
282282
trace += '\n\tat <anonymous>';
283283
}
284284
}
285-
// Ensure we always use `/` as path seperators.
286-
// This way stack traces (with relative paths) comming from different OS will always look the same.
285+
// Ensure we always use `/` as path separators.
286+
// This way stack traces (with relative paths) coming from different OS will always look the same.
287287
return trace.trim().replace(/\\/g, '/');
288288
}
289289

src/test/common/interpreterPathService.unit.test.ts

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ suite('Interpreter Path Service', async () => {
9292
test('If the one-off transfer to new storage has not happened yet for the workspace folder, do it and record the transfer', async () => {
9393
const update = sinon.stub(InterpreterPathService.prototype, 'update');
9494
const persistentState = TypeMoq.Mock.ofType<IPersistentState<string[]>>();
95-
workspaceService.setup((w) => w.getWorkspaceFolderIdentifier(resource)).returns(() => resource.fsPath);
95+
workspaceService.setup((w) => w.getWorkspaceFolderIdentifier(resource, '')).returns(() => resource.fsPath);
9696
persistentStateFactory
9797
.setup((p) => p.createGlobalPersistentState<string[]>(workspaceFolderKeysForWhichTheCopyIsDone_Key, []))
9898
.returns(() => persistentState.object);
@@ -112,7 +112,7 @@ suite('Interpreter Path Service', async () => {
112112
test('If the one-off transfer to new storage has already happened for the workspace folder, do not update and simply return', async () => {
113113
const update = sinon.stub(InterpreterPathService.prototype, 'update');
114114
const persistentState = TypeMoq.Mock.ofType<IPersistentState<string[]>>();
115-
workspaceService.setup((w) => w.getWorkspaceFolderIdentifier(resource)).returns(() => resource.fsPath);
115+
workspaceService.setup((w) => w.getWorkspaceFolderIdentifier(resource, '')).returns(() => resource.fsPath);
116116
persistentStateFactory
117117
.setup((p) => p.createGlobalPersistentState<string[]>(workspaceFolderKeysForWhichTheCopyIsDone_Key, []))
118118
.returns(() => persistentState.object);
@@ -126,6 +126,23 @@ suite('Interpreter Path Service', async () => {
126126
persistentState.verifyAll();
127127
});
128128

129+
test('If no folder is opened, do not do the one-off transfer to new storage for the workspace folder', async () => {
130+
const update = sinon.stub(InterpreterPathService.prototype, 'update');
131+
const persistentState = TypeMoq.Mock.ofType<IPersistentState<string[]>>();
132+
workspaceService.setup((w) => w.getWorkspaceFolderIdentifier(resource, '')).returns(() => '');
133+
persistentStateFactory
134+
.setup((p) => p.createGlobalPersistentState<string[]>(workspaceFolderKeysForWhichTheCopyIsDone_Key, []))
135+
.returns(() => persistentState.object);
136+
persistentState.setup((p) => p.value).returns(() => ['...storedWorkspaceKeys']);
137+
persistentState.setup((p) => p.updateValue(TypeMoq.It.isAny())).verifiable(TypeMoq.Times.never());
138+
139+
interpreterPathService = new InterpreterPathService(persistentStateFactory.object, workspaceService.object, []);
140+
await interpreterPathService._copyWorkspaceFolderValueToNewStorage(resource, 'workspaceFolderPythonPath');
141+
142+
assert(update.notCalled);
143+
persistentState.verifyAll();
144+
});
145+
129146
test('If the one-off transfer to new storage has not happened yet for the workspace, do it and record the transfer', async () => {
130147
const workspaceFileUri = Uri.parse('path/to/workspaceFile');
131148
const expectedWorkspaceKey = fs.normCase(workspaceFileUri.fsPath);
@@ -395,7 +412,7 @@ suite('Interpreter Path Service', async () => {
395412
_didChangeInterpreterEmitter.verifyAll();
396413
});
397414

398-
test('Updating workspace settings throws error if no workspace is opened', async () => {
415+
test('Updating workspace settings simply returns if no workspace is opened', async () => {
399416
const expectedSettingKey = `WORKSPACE_FOLDER_INTERPRETER_PATH_${resource.fsPath}`;
400417
const persistentState = TypeMoq.Mock.ofType<IPersistentState<string | undefined>>();
401418
workspaceService.setup((w) => w.workspaceFolders).returns(() => undefined);
@@ -408,18 +425,13 @@ suite('Interpreter Path Service', async () => {
408425
.returns(() => Promise.resolve())
409426
.verifiable(TypeMoq.Times.never());
410427

411-
const promise = interpreterPathService.update(
412-
resourceOutsideOfWorkspace,
413-
ConfigurationTarget.Workspace,
414-
interpreterPath
415-
);
416-
await expect(promise).to.eventually.be.rejectedWith(Error);
428+
await interpreterPathService.update(resourceOutsideOfWorkspace, ConfigurationTarget.Workspace, interpreterPath);
417429

418430
persistentState.verifyAll();
419431
persistentStateFactory.verifyAll();
420432
});
421433

422-
test('Updating workspace folder settings throws error if no workspace is opened', async () => {
434+
test('Updating workspace folder settings simply returns if no workspace is opened', async () => {
423435
const expectedSettingKey = `WORKSPACE_FOLDER_INTERPRETER_PATH_${resource.fsPath}`;
424436
const persistentState = TypeMoq.Mock.ofType<IPersistentState<string | undefined>>();
425437
workspaceService.setup((w) => w.workspaceFolders).returns(() => undefined);
@@ -432,12 +444,7 @@ suite('Interpreter Path Service', async () => {
432444
.returns(() => Promise.resolve())
433445
.verifiable(TypeMoq.Times.never());
434446

435-
const promise = interpreterPathService.update(
436-
resourceOutsideOfWorkspace,
437-
ConfigurationTarget.Workspace,
438-
interpreterPath
439-
);
440-
await expect(promise).to.eventually.be.rejectedWith(Error);
447+
await interpreterPathService.update(resourceOutsideOfWorkspace, ConfigurationTarget.Workspace, interpreterPath);
441448

442449
persistentState.verifyAll();
443450
persistentStateFactory.verifyAll();

0 commit comments

Comments
 (0)