From 80ec95d5ee6df19a00809e91b90f1374e5ee6810 Mon Sep 17 00:00:00 2001 From: Anthony Kim Date: Mon, 5 May 2025 16:12:46 -0700 Subject: [PATCH 1/3] PYTHONSTARTUP should be injected regardless of pythonTerminalEnv Experiment. --- src/client/terminals/envCollectionActivation/service.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/client/terminals/envCollectionActivation/service.ts b/src/client/terminals/envCollectionActivation/service.ts index 43b8ceeb8e06..ef9c634c3be6 100644 --- a/src/client/terminals/envCollectionActivation/service.ts +++ b/src/client/terminals/envCollectionActivation/service.ts @@ -44,6 +44,7 @@ import { } from '../types'; import { ProgressService } from '../../common/application/progressService'; import { useEnvExtension } from '../../envExt/api.internal'; +import { registerPythonStartup } from '../pythonStartup'; @injectable() export class TerminalEnvVarCollectionService implements IExtensionActivationService, ITerminalEnvVarCollectionService { @@ -98,6 +99,7 @@ export class TerminalEnvVarCollectionService implements IExtensionActivationServ try { if (!inTerminalEnvVarExperiment(this.experimentService)) { this.context.environmentVariableCollection.clear(); + await registerPythonStartup(this.context); await this.handleMicroVenv(resource); if (!this.registeredOnce) { this.interpreterService.onDidChangeInterpreter( From a0b933db44409c3c1ed31ff04380ff0001a2a490 Mon Sep 17 00:00:00 2001 From: Anthony Kim Date: Mon, 5 May 2025 16:27:08 -0700 Subject: [PATCH 2/3] fix test --- .../activation/terminalEnvVarCollectionService.unit.test.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/test/interpreters/activation/terminalEnvVarCollectionService.unit.test.ts b/src/test/interpreters/activation/terminalEnvVarCollectionService.unit.test.ts index 7016a25c7a4e..dfe3ad8c081a 100644 --- a/src/test/interpreters/activation/terminalEnvVarCollectionService.unit.test.ts +++ b/src/test/interpreters/activation/terminalEnvVarCollectionService.unit.test.ts @@ -6,12 +6,14 @@ import * as sinon from 'sinon'; import { assert, expect } from 'chai'; import { mock, instance, when, anything, verify, reset } from 'ts-mockito'; +import * as TypeMoq from 'typemoq'; import { EnvironmentVariableCollection, EnvironmentVariableMutatorOptions, GlobalEnvironmentVariableCollection, ProgressLocation, Uri, + WorkspaceConfiguration, WorkspaceFolder, } from 'vscode'; import { @@ -55,6 +57,7 @@ suite('Terminal Environment Variable Collection Service', () => { let terminalEnvVarCollectionService: TerminalEnvVarCollectionService; let terminalDeactivateService: ITerminalDeactivateService; let useEnvExtensionStub: sinon.SinonStub; + let pythonConfig: TypeMoq.IMock; const progressOptions = { location: ProgressLocation.Window, title: Interpreters.activatingTerminals, @@ -122,6 +125,8 @@ suite('Terminal Environment Variable Collection Service', () => { instance(shellIntegrationService), instance(envVarProvider), ); + pythonConfig = TypeMoq.Mock.ofType(); + pythonConfig.setup((p) => p.get('terminal.shellIntegration.enabled')).returns(() => false); }); teardown(() => { From a5009cdfae67dd2431165de6f105b941e378f278 Mon Sep 17 00:00:00 2001 From: Anthony Kim Date: Mon, 5 May 2025 18:40:12 -0700 Subject: [PATCH 3/3] working --- src/client/terminals/envCollectionActivation/service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/terminals/envCollectionActivation/service.ts b/src/client/terminals/envCollectionActivation/service.ts index ef9c634c3be6..bd2ce1c6f717 100644 --- a/src/client/terminals/envCollectionActivation/service.ts +++ b/src/client/terminals/envCollectionActivation/service.ts @@ -99,7 +99,6 @@ export class TerminalEnvVarCollectionService implements IExtensionActivationServ try { if (!inTerminalEnvVarExperiment(this.experimentService)) { this.context.environmentVariableCollection.clear(); - await registerPythonStartup(this.context); await this.handleMicroVenv(resource); if (!this.registeredOnce) { this.interpreterService.onDidChangeInterpreter( @@ -111,6 +110,7 @@ export class TerminalEnvVarCollectionService implements IExtensionActivationServ ); this.registeredOnce = true; } + await registerPythonStartup(this.context); return; } if (!this.registeredOnce) {