Skip to content

Commit c86a5a2

Browse files
committed
Fix terminal unit tests
1 parent cc548e8 commit c86a5a2

File tree

10 files changed

+66
-0
lines changed

10 files changed

+66
-0
lines changed

src/test/common/terminals/activator/index.unit.test.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
'use strict';
55

66
import { assert } from 'chai';
7+
import * as sinon from 'sinon';
78
import * as TypeMoq from 'typemoq';
89
import { Terminal } from 'vscode';
910
import { TerminalActivator } from '../../../../client/common/terminal/activator';
@@ -18,6 +19,7 @@ import {
1819
IPythonSettings,
1920
ITerminalSettings,
2021
} from '../../../../client/common/types';
22+
import * as extapi from '../../../../client/envExt/api.internal';
2123

2224
suite('Terminal Activator', () => {
2325
let activator: TerminalActivator;
@@ -26,7 +28,11 @@ suite('Terminal Activator', () => {
2628
let handler2: TypeMoq.IMock<ITerminalActivationHandler>;
2729
let terminalSettings: TypeMoq.IMock<ITerminalSettings>;
2830
let experimentService: TypeMoq.IMock<IExperimentService>;
31+
let useEnvExtensionStub: sinon.SinonStub;
2932
setup(() => {
33+
useEnvExtensionStub = sinon.stub(extapi, 'useEnvExtension');
34+
useEnvExtensionStub.returns(false);
35+
3036
baseActivator = TypeMoq.Mock.ofType<ITerminalActivator>();
3137
terminalSettings = TypeMoq.Mock.ofType<ITerminalSettings>();
3238
experimentService = TypeMoq.Mock.ofType<IExperimentService>();
@@ -52,6 +58,10 @@ suite('Terminal Activator', () => {
5258
experimentService.object,
5359
);
5460
});
61+
teardown(() => {
62+
sinon.restore();
63+
});
64+
5565
async function testActivationAndHandlers(
5666
activationSuccessful: boolean,
5767
activateEnvironmentSetting: boolean,

src/test/common/terminals/service.unit.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import { ITerminalAutoActivation } from '../../../client/terminals/types';
2525
import { createPythonInterpreter } from '../../utils/interpreters';
2626
import * as workspaceApis from '../../../client/common/vscodeApis/workspaceApis';
2727
import * as platform from '../../../client/common/utils/platform';
28+
import * as extapi from '../../../client/envExt/api.internal';
2829

2930
suite('Terminal Service', () => {
3031
let service: TerminalService;
@@ -44,8 +45,12 @@ suite('Terminal Service', () => {
4445
let pythonConfig: TypeMoq.IMock<WorkspaceConfiguration>;
4546
let editorConfig: TypeMoq.IMock<WorkspaceConfiguration>;
4647
let isWindowsStub: sinon.SinonStub;
48+
let useEnvExtensionStub: sinon.SinonStub;
4749

4850
setup(() => {
51+
useEnvExtensionStub = sinon.stub(extapi, 'useEnvExtension');
52+
useEnvExtensionStub.returns(false);
53+
4954
terminal = TypeMoq.Mock.ofType<VSCodeTerminal>();
5055
terminalShellIntegration = TypeMoq.Mock.ofType<TerminalShellIntegration>();
5156
terminal.setup((t) => t.shellIntegration).returns(() => terminalShellIntegration.object);

src/test/configuration/interpreterSelector/commands/resetInterpreter.unit.test.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Licensed under the MIT License.
33

44
import * as path from 'path';
5+
import * as sinon from 'sinon';
56
import * as TypeMoq from 'typemoq';
67
import { ConfigurationTarget, Uri } from 'vscode';
78
import { IApplicationShell, ICommandManager, IWorkspaceService } from '../../../../client/common/application/types';
@@ -10,6 +11,7 @@ import { IConfigurationService } from '../../../../client/common/types';
1011
import { Common, Interpreters } from '../../../../client/common/utils/localize';
1112
import { ResetInterpreterCommand } from '../../../../client/interpreter/configuration/interpreterSelector/commands/resetInterpreter';
1213
import { IPythonPathUpdaterServiceManager } from '../../../../client/interpreter/configuration/types';
14+
import * as extapi from '../../../../client/envExt/api.internal';
1315

1416
suite('Reset Interpreter Command', () => {
1517
let workspace: TypeMoq.IMock<IWorkspaceService>;
@@ -21,8 +23,12 @@ suite('Reset Interpreter Command', () => {
2123
const folder2 = { name: 'two', uri: Uri.parse('two'), index: 2 };
2224

2325
let resetInterpreterCommand: ResetInterpreterCommand;
26+
let useEnvExtensionStub: sinon.SinonStub;
2427

2528
setup(() => {
29+
useEnvExtensionStub = sinon.stub(extapi, 'useEnvExtension');
30+
useEnvExtensionStub.returns(false);
31+
2632
configurationService = TypeMoq.Mock.ofType<IConfigurationService>();
2733
configurationService
2834
.setup((c) => c.getSettings(TypeMoq.It.isAny()))
@@ -42,6 +48,9 @@ suite('Reset Interpreter Command', () => {
4248
configurationService.object,
4349
);
4450
});
51+
teardown(() => {
52+
sinon.restore();
53+
});
4554

4655
suite('Test method resetInterpreter()', async () => {
4756
test('Update Global settings when there are no workspaces', async () => {

src/test/configuration/interpreterSelector/commands/setInterpreter.unit.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ import { IInterpreterService, PythonEnvironmentsChangedEvent } from '../../../..
4848
import { createDeferred, sleep } from '../../../../client/common/utils/async';
4949
import { SystemVariables } from '../../../../client/common/variables/systemVariables';
5050
import { untildify } from '../../../../client/common/helpers';
51+
import * as extapi from '../../../../client/envExt/api.internal';
5152

5253
type TelemetryEventType = { eventName: EventName; properties: unknown };
5354

@@ -62,12 +63,16 @@ suite('Set Interpreter Command', () => {
6263
let platformService: TypeMoq.IMock<IPlatformService>;
6364
let multiStepInputFactory: TypeMoq.IMock<IMultiStepInputFactory>;
6465
let interpreterService: IInterpreterService;
66+
let useEnvExtensionStub: sinon.SinonStub;
6567
const folder1 = { name: 'one', uri: Uri.parse('one'), index: 1 };
6668
const folder2 = { name: 'two', uri: Uri.parse('two'), index: 2 };
6769

6870
let setInterpreterCommand: SetInterpreterCommand;
6971

7072
setup(() => {
73+
useEnvExtensionStub = sinon.stub(extapi, 'useEnvExtension');
74+
useEnvExtensionStub.returns(false);
75+
7176
interpreterSelector = TypeMoq.Mock.ofType<IInterpreterSelector>();
7277
multiStepInputFactory = TypeMoq.Mock.ofType<IMultiStepInputFactory>();
7378
platformService = TypeMoq.Mock.ofType<IPlatformService>();

src/test/interpreters/activation/indicatorPrompt.unit.test.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
'use strict';
55

6+
import * as sinon from 'sinon';
67
import { mock, when, anything, instance, verify, reset } from 'ts-mockito';
78
import { EventEmitter, Terminal, Uri } from 'vscode';
89
import { IActiveResourceService, IApplicationShell, ITerminalManager } from '../../../client/common/application/types';
@@ -21,6 +22,7 @@ import { IInterpreterService } from '../../../client/interpreter/contracts';
2122
import { PythonEnvironment } from '../../../client/pythonEnvironments/info';
2223
import { ITerminalEnvVarCollectionService } from '../../../client/terminals/types';
2324
import { PythonEnvType } from '../../../client/pythonEnvironments/base/info';
25+
import * as extapi from '../../../client/envExt/api.internal';
2426

2527
suite('Terminal Activation Indicator Prompt', () => {
2628
let shell: IApplicationShell;
@@ -34,12 +36,16 @@ suite('Terminal Activation Indicator Prompt', () => {
3436
let notificationEnabled: IPersistentState<boolean>;
3537
let configurationService: IConfigurationService;
3638
let interpreterService: IInterpreterService;
39+
let useEnvExtensionStub: sinon.SinonStub;
3740
const prompts = [Common.doNotShowAgain];
3841
const envName = 'env';
3942
const type = PythonEnvType.Virtual;
4043
const expectedMessage = Interpreters.terminalEnvVarCollectionPrompt.format('Python virtual', `"(${envName})"`);
4144

4245
setup(async () => {
46+
useEnvExtensionStub = sinon.stub(extapi, 'useEnvExtension');
47+
useEnvExtensionStub.returns(false);
48+
4349
shell = mock<IApplicationShell>();
4450
terminalManager = mock<ITerminalManager>();
4551
interpreterService = mock<IInterpreterService>();
@@ -77,6 +83,10 @@ suite('Terminal Activation Indicator Prompt', () => {
7783
);
7884
});
7985

86+
teardown(() => {
87+
sinon.restore();
88+
});
89+
8090
test('Show notification when a new terminal is opened for which there is no prompt set', async () => {
8191
const resource = Uri.file('a');
8292
const terminal = ({

src/test/interpreters/activation/terminalEnvVarCollectionService.unit.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import { PythonEnvType } from '../../../client/pythonEnvironments/base/info';
3939
import { PythonEnvironment } from '../../../client/pythonEnvironments/info';
4040
import { IShellIntegrationDetectionService, ITerminalDeactivateService } from '../../../client/terminals/types';
4141
import { IEnvironmentVariablesProvider } from '../../../client/common/variables/types';
42+
import * as extapi from '../../../client/envExt/api.internal';
4243

4344
suite('Terminal Environment Variable Collection Service', () => {
4445
let platform: IPlatformService;
@@ -53,6 +54,7 @@ suite('Terminal Environment Variable Collection Service', () => {
5354
let workspaceService: IWorkspaceService;
5455
let terminalEnvVarCollectionService: TerminalEnvVarCollectionService;
5556
let terminalDeactivateService: ITerminalDeactivateService;
57+
let useEnvExtensionStub: sinon.SinonStub;
5658
const progressOptions = {
5759
location: ProgressLocation.Window,
5860
title: Interpreters.activatingTerminals,
@@ -64,6 +66,9 @@ suite('Terminal Environment Variable Collection Service', () => {
6466
const defaultShell = defaultShells[getOSType()];
6567

6668
setup(() => {
69+
useEnvExtensionStub = sinon.stub(extapi, 'useEnvExtension');
70+
useEnvExtensionStub.returns(false);
71+
6772
workspaceService = mock<IWorkspaceService>();
6873
terminalDeactivateService = mock<ITerminalDeactivateService>();
6974
when(terminalDeactivateService.getScriptLocation(anything(), anything())).thenResolve(undefined);

src/test/interpreters/display.unit.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import { IServiceContainer } from '../../client/ioc/types';
3232
import * as logging from '../../client/logging';
3333
import { EnvironmentType, PythonEnvironment } from '../../client/pythonEnvironments/info';
3434
import { ThemeColor } from '../mocks/vsc';
35+
import * as extapi from '../../client/envExt/api.internal';
3536

3637
const info: PythonEnvironment = {
3738
architecture: Architecture.Unknown,
@@ -58,6 +59,7 @@ suite('Interpreters Display', () => {
5859
let pathUtils: TypeMoq.IMock<IPathUtils>;
5960
let languageStatusItem: TypeMoq.IMock<LanguageStatusItem>;
6061
let traceLogStub: sinon.SinonStub;
62+
let useEnvExtensionStub: sinon.SinonStub;
6163
async function createInterpreterDisplay(filters: IInterpreterStatusbarVisibilityFilter[] = []) {
6264
interpreterDisplay = new InterpreterDisplay(serviceContainer.object);
6365
try {
@@ -67,6 +69,9 @@ suite('Interpreters Display', () => {
6769
}
6870

6971
async function setupMocks(useLanguageStatus: boolean) {
72+
useEnvExtensionStub = sinon.stub(extapi, 'useEnvExtension');
73+
useEnvExtensionStub.returns(false);
74+
7075
serviceContainer = TypeMoq.Mock.ofType<IServiceContainer>();
7176
workspaceService = TypeMoq.Mock.ofType<IWorkspaceService>();
7277
applicationShell = TypeMoq.Mock.ofType<IApplicationShell>();

src/test/interpreters/interpreterService.unit.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import { PYTHON_PATH } from '../common';
3737
import { MockAutoSelectionService } from '../mocks/autoSelector';
3838
import * as proposedApi from '../../client/environmentApi';
3939
import { createTypeMoq } from '../mocks/helper';
40+
import * as extapi from '../../client/envExt/api.internal';
4041

4142
/* eslint-disable @typescript-eslint/no-explicit-any */
4243

@@ -62,8 +63,12 @@ suite('Interpreters service', () => {
6263
let installer: TypeMoq.IMock<IInstaller>;
6364
let appShell: TypeMoq.IMock<IApplicationShell>;
6465
let reportActiveInterpreterChangedStub: sinon.SinonStub;
66+
let useEnvExtensionStub: sinon.SinonStub;
6567

6668
setup(() => {
69+
useEnvExtensionStub = sinon.stub(extapi, 'useEnvExtension');
70+
useEnvExtensionStub.returns(false);
71+
6772
const cont = new Container();
6873
serviceManager = new ServiceManager(cont);
6974
serviceContainer = new ServiceContainer(cont);

src/test/providers/terminal.unit.test.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Licensed under the MIT License.
33

44
import * as assert from 'assert';
5+
import * as sinon from 'sinon';
56
import { expect } from 'chai';
67
import * as TypeMoq from 'typemoq';
78
import { Disposable, Terminal, Uri } from 'vscode';
@@ -18,6 +19,7 @@ import {
1819
} from '../../client/common/types';
1920
import { IServiceContainer } from '../../client/ioc/types';
2021
import { TerminalProvider } from '../../client/providers/terminalProvider';
22+
import * as extapi from '../../client/envExt/api.internal';
2123

2224
suite('Terminal Provider', () => {
2325
let serviceContainer: TypeMoq.IMock<IServiceContainer>;
@@ -26,8 +28,12 @@ suite('Terminal Provider', () => {
2628
let activeResourceService: TypeMoq.IMock<IActiveResourceService>;
2729
let experimentService: TypeMoq.IMock<IExperimentService>;
2830
let terminalProvider: TerminalProvider;
31+
let useEnvExtensionStub: sinon.SinonStub;
2932
const resource = Uri.parse('a');
3033
setup(() => {
34+
useEnvExtensionStub = sinon.stub(extapi, 'useEnvExtension');
35+
useEnvExtensionStub.returns(false);
36+
3137
serviceContainer = TypeMoq.Mock.ofType<IServiceContainer>();
3238
commandManager = TypeMoq.Mock.ofType<ICommandManager>();
3339
experimentService = TypeMoq.Mock.ofType<IExperimentService>();
@@ -40,6 +46,7 @@ suite('Terminal Provider', () => {
4046
serviceContainer.setup((c) => c.get(IActiveResourceService)).returns(() => activeResourceService.object);
4147
});
4248
teardown(() => {
49+
sinon.restore();
4350
try {
4451
terminalProvider.dispose();
4552
} catch {

src/test/terminals/codeExecution/codeExecutionManager.unit.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { IConfigurationService } from '../../../client/common/types';
1414
import { IInterpreterService } from '../../../client/interpreter/contracts';
1515
import { PythonEnvironment } from '../../../client/pythonEnvironments/info';
1616
import * as triggerApis from '../../../client/pythonEnvironments/creation/createEnvironmentTrigger';
17+
import * as extapi from '../../../client/envExt/api.internal';
1718

1819
suite('Terminal - Code Execution Manager', () => {
1920
let executionManager: ICodeExecutionManager;
@@ -25,7 +26,11 @@ suite('Terminal - Code Execution Manager', () => {
2526
let configService: TypeMoq.IMock<IConfigurationService>;
2627
let interpreterService: TypeMoq.IMock<IInterpreterService>;
2728
let triggerCreateEnvironmentCheckNonBlockingStub: sinon.SinonStub;
29+
let useEnvExtensionStub: sinon.SinonStub;
2830
setup(() => {
31+
useEnvExtensionStub = sinon.stub(extapi, 'useEnvExtension');
32+
useEnvExtensionStub.returns(false);
33+
2934
workspace = TypeMoq.Mock.ofType<IWorkspaceService>();
3035
workspace
3136
.setup((c) => c.onDidChangeWorkspaceFolders(TypeMoq.It.isAny(), TypeMoq.It.isAny(), TypeMoq.It.isAny()))

0 commit comments

Comments
 (0)