From c4dd0a155e8b2b147b967dad26ee66b16e59dacc Mon Sep 17 00:00:00 2001 From: Karthik Nadig Date: Mon, 30 Jan 2023 23:07:13 -0800 Subject: [PATCH] Ensure dependency quick pick is not shown when user exits env creation --- .../creation/provider/venvCreationProvider.ts | 10 +++++----- .../provider/venvCreationProvider.unit.test.ts | 8 ++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/client/pythonEnvironments/creation/provider/venvCreationProvider.ts b/src/client/pythonEnvironments/creation/provider/venvCreationProvider.ts index 3bc927d898e9..3e0850b996fd 100644 --- a/src/client/pythonEnvironments/creation/provider/venvCreationProvider.ts +++ b/src/client/pythonEnvironments/creation/provider/venvCreationProvider.ts @@ -127,6 +127,11 @@ export class VenvCreationProvider implements CreateEnvironmentProvider { [EnvironmentType.System, EnvironmentType.MicrosoftStore, EnvironmentType.Global].includes(i.envType), ); + if (!interpreter) { + traceError('Virtual env creation requires an interpreter.'); + return undefined; + } + let addGitIgnore = true; let installPackages = true; if (options) { @@ -139,11 +144,6 @@ export class VenvCreationProvider implements CreateEnvironmentProvider { } const args = generateCommandArgs(installInfo, addGitIgnore); - if (!interpreter) { - traceError('Virtual env creation requires an interpreter.'); - return undefined; - } - if (!installInfo) { traceInfo('Virtual env creation exited during dependencies selection.'); return undefined; diff --git a/src/test/pythonEnvironments/creation/provider/venvCreationProvider.unit.test.ts b/src/test/pythonEnvironments/creation/provider/venvCreationProvider.unit.test.ts index 856733b29a1c..6ee56cbdc7f9 100644 --- a/src/test/pythonEnvironments/creation/provider/venvCreationProvider.unit.test.ts +++ b/src/test/pythonEnvironments/creation/provider/venvCreationProvider.unit.test.ts @@ -62,9 +62,14 @@ suite('venv Creation provider tests', () => { test('No workspace selected', async () => { pickWorkspaceFolderStub.resolves(undefined); + interpreterQuickPick + .setup((i) => i.getInterpreterViaQuickPick(typemoq.It.isAny(), typemoq.It.isAny())) + .verifiable(typemoq.Times.never()); assert.isUndefined(await venvProvider.createEnvironment()); assert.isTrue(pickWorkspaceFolderStub.calledOnce); + interpreterQuickPick.verifyAll(); + assert.isTrue(pickPackagesToInstallStub.notCalled); }); test('No Python selected', async () => { @@ -76,7 +81,10 @@ suite('venv Creation provider tests', () => { .verifiable(typemoq.Times.once()); assert.isUndefined(await venvProvider.createEnvironment()); + + assert.isTrue(pickWorkspaceFolderStub.calledOnce); interpreterQuickPick.verifyAll(); + assert.isTrue(pickPackagesToInstallStub.notCalled); }); test('User pressed Esc while selecting dependencies', async () => {