Skip to content

Commit 223eca9

Browse files
authored
Better messaging for tests output in virtual or untrusted scenario (#24060)
1 parent e3a7c7a commit 223eca9

File tree

2 files changed

+25
-7
lines changed

2 files changed

+25
-7
lines changed

src/client/common/vscodeApis/workspaceApis.ts

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,27 +36,27 @@ export function findFiles(
3636
return vscode.workspace.findFiles(include, exclude, maxResults, token);
3737
}
3838

39-
export function onDidCloseTextDocument(handler: (e: vscode.TextDocument) => unknown): vscode.Disposable {
39+
export function onDidCloseTextDocument(handler: (e: vscode.TextDocument) => void): vscode.Disposable {
4040
return vscode.workspace.onDidCloseTextDocument(handler);
4141
}
4242

43-
export function onDidSaveTextDocument(handler: (e: vscode.TextDocument) => unknown): vscode.Disposable {
43+
export function onDidSaveTextDocument(handler: (e: vscode.TextDocument) => void): vscode.Disposable {
4444
return vscode.workspace.onDidSaveTextDocument(handler);
4545
}
4646

4747
export function getOpenTextDocuments(): readonly vscode.TextDocument[] {
4848
return vscode.workspace.textDocuments;
4949
}
5050

51-
export function onDidOpenTextDocument(handler: (doc: vscode.TextDocument) => unknown): vscode.Disposable {
51+
export function onDidOpenTextDocument(handler: (doc: vscode.TextDocument) => void): vscode.Disposable {
5252
return vscode.workspace.onDidOpenTextDocument(handler);
5353
}
5454

55-
export function onDidChangeTextDocument(handler: (e: vscode.TextDocumentChangeEvent) => unknown): vscode.Disposable {
55+
export function onDidChangeTextDocument(handler: (e: vscode.TextDocumentChangeEvent) => void): vscode.Disposable {
5656
return vscode.workspace.onDidChangeTextDocument(handler);
5757
}
5858

59-
export function onDidChangeConfiguration(handler: (e: vscode.ConfigurationChangeEvent) => unknown): vscode.Disposable {
59+
export function onDidChangeConfiguration(handler: (e: vscode.ConfigurationChangeEvent) => void): vscode.Disposable {
6060
return vscode.workspace.onDidChangeConfiguration(handler);
6161
}
6262

@@ -75,7 +75,21 @@ export function createFileSystemWatcher(
7575
}
7676

7777
export function onDidChangeWorkspaceFolders(
78-
handler: (e: vscode.WorkspaceFoldersChangeEvent) => unknown,
78+
handler: (e: vscode.WorkspaceFoldersChangeEvent) => void,
7979
): vscode.Disposable {
8080
return vscode.workspace.onDidChangeWorkspaceFolders(handler);
8181
}
82+
83+
export function isVirtualWorkspace(): boolean {
84+
const isVirtualWorkspace =
85+
vscode.workspace.workspaceFolders && vscode.workspace.workspaceFolders.every((f) => f.uri.scheme !== 'file');
86+
return !!isVirtualWorkspace;
87+
}
88+
89+
export function isTrusted(): boolean {
90+
return vscode.workspace.isTrusted;
91+
}
92+
93+
export function onDidGrantWorkspaceTrust(handler: () => void): vscode.Disposable {
94+
return vscode.workspace.onDidGrantWorkspaceTrust(handler);
95+
}

src/client/extensionInit.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
'use strict';
55

66
import { Container } from 'inversify';
7-
import { Disposable, Memento, window } from 'vscode';
7+
import { Disposable, l10n, Memento, window } from 'vscode';
88
import { registerTypes as platformRegisterTypes } from './common/platform/serviceRegistry';
99
import { registerTypes as processRegisterTypes } from './common/process/serviceRegistry';
1010
import { registerTypes as commonRegisterTypes } from './common/serviceRegistry';
@@ -28,6 +28,7 @@ import * as pythonEnvironments from './pythonEnvironments';
2828
import { IDiscoveryAPI } from './pythonEnvironments/base/locator';
2929
import { registerLogger } from './logging';
3030
import { OutputChannelLogger } from './logging/outputChannelLogger';
31+
import { isTrusted, isVirtualWorkspace } from './common/vscodeApis/workspaceApis';
3132

3233
// The code in this module should do nothing more complex than register
3334
// objects to DI and simple init (e.g. no side effects). That implies
@@ -57,6 +58,9 @@ export function initializeGlobals(
5758

5859
const unitTestOutChannel = window.createOutputChannel(OutputChannelNames.pythonTest);
5960
disposables.push(unitTestOutChannel);
61+
if (isVirtualWorkspace() || !isTrusted()) {
62+
unitTestOutChannel.appendLine(l10n.t('Unit tests are not supported in this environment.'));
63+
}
6064

6165
serviceManager.addSingletonInstance<ILogOutputChannel>(ILogOutputChannel, standardOutputChannel);
6266
serviceManager.addSingletonInstance<ITestOutputChannel>(ITestOutputChannel, unitTestOutChannel);

0 commit comments

Comments
 (0)