From ffc928816dceef7d16f5228c479cef92d294363a Mon Sep 17 00:00:00 2001 From: wasim-builds <108329802+wasim-builds@users.noreply.github.com> Date: Fri, 16 Oct 2026 17:34:38 +0530 Subject: [PATCH 1/2] fix: skip watching missing .pixi/envs directory --- .../base/locators/lowLevel/pixiLocator.ts | 6 +++--- .../lowLevel/pixiLocator.unit.test.ts | 19 ++++++++++++++++++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/client/pythonEnvironments/base/locators/lowLevel/pixiLocator.ts b/src/client/pythonEnvironments/base/locators/lowLevel/pixiLocator.ts index f4a3886a2120..6095e203511a 100644 --- a/src/client/pythonEnvironments/base/locators/lowLevel/pixiLocator.ts +++ b/src/client/pythonEnvironments/base/locators/lowLevel/pixiLocator.ts @@ -24,8 +24,8 @@ async function getVirtualEnvDirs(root: string): Promise { /** * Returns all virtual environment locations to look for in a workspace. */ -function getVirtualEnvRootDirs(root: string): string[] { - return [path.join(path.join(root, '.pixi'), 'envs')]; +export async function getVirtualEnvRootDirs(root: string): Promise { + return asyncFilter([path.join(path.join(root, '.pixi'), 'envs')], pathExists); } export class PixiLocator extends FSWatchingLocator { @@ -33,7 +33,7 @@ export class PixiLocator extends FSWatchingLocator { public constructor(private readonly root: string) { super( - async () => getVirtualEnvRootDirs(this.root), + () => getVirtualEnvRootDirs(this.root), async () => PythonEnvKind.Pixi, { // Note detecting kind of virtual env depends on the file structure around the diff --git a/src/test/pythonEnvironments/base/locators/lowLevel/pixiLocator.unit.test.ts b/src/test/pythonEnvironments/base/locators/lowLevel/pixiLocator.unit.test.ts index b55f61c3a771..1e196df6ef8a 100644 --- a/src/test/pythonEnvironments/base/locators/lowLevel/pixiLocator.unit.test.ts +++ b/src/test/pythonEnvironments/base/locators/lowLevel/pixiLocator.unit.test.ts @@ -1,9 +1,10 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. +import * as assert from 'assert'; import * as sinon from 'sinon'; import * as path from 'path'; -import { PixiLocator } from '../../../../../client/pythonEnvironments/base/locators/lowLevel/pixiLocator'; +import { PixiLocator, getVirtualEnvRootDirs } from '../../../../../client/pythonEnvironments/base/locators/lowLevel/pixiLocator'; import * as externalDependencies from '../../../../../client/pythonEnvironments/common/externalDependencies'; import * as platformUtils from '../../../../../client/common/utils/platform'; import { makeExecHandler, projectDirs } from '../../../common/environmentManagers/pixi.unit.test'; @@ -81,4 +82,20 @@ suite('Pixi Locator', () => { assertBasicEnvsEqual(actualEnvs, expectedEnvs); }); }); + + suite('getVirtualEnvRootDirs()', () => { + test('returns pixi envs root dir when directory exists', async () => { + pathExistsStub.resolves(true); + const root = '/path/to/project'; + const result = await getVirtualEnvRootDirs(root); + assert.deepStrictEqual(result, [path.join(root, '.pixi', 'envs')]); + }); + + test('returns empty array when .pixi/envs directory does not exist', async () => { + pathExistsStub.resolves(false); + const root = '/path/to/non-pixi-project'; + const result = await getVirtualEnvRootDirs(root); + assert.deepStrictEqual(result, []); + }); + }); }); From 9fec6e6de70bdc7d6a2ffe129a8de8c80b2a28c8 Mon Sep 17 00:00:00 2001 From: Wasim Date: Sun, 18 Oct 2026 17:20:47 +0530 Subject: [PATCH 2/2] style: format pixiLocator.unit.test.ts with prettier --- .../base/locators/lowLevel/pixiLocator.unit.test.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/test/pythonEnvironments/base/locators/lowLevel/pixiLocator.unit.test.ts b/src/test/pythonEnvironments/base/locators/lowLevel/pixiLocator.unit.test.ts index 1e196df6ef8a..3096ab0ccc5a 100644 --- a/src/test/pythonEnvironments/base/locators/lowLevel/pixiLocator.unit.test.ts +++ b/src/test/pythonEnvironments/base/locators/lowLevel/pixiLocator.unit.test.ts @@ -4,7 +4,10 @@ import * as assert from 'assert'; import * as sinon from 'sinon'; import * as path from 'path'; -import { PixiLocator, getVirtualEnvRootDirs } from '../../../../../client/pythonEnvironments/base/locators/lowLevel/pixiLocator'; +import { + PixiLocator, + getVirtualEnvRootDirs, +} from '../../../../../client/pythonEnvironments/base/locators/lowLevel/pixiLocator'; import * as externalDependencies from '../../../../../client/pythonEnvironments/common/externalDependencies'; import * as platformUtils from '../../../../../client/common/utils/platform'; import { makeExecHandler, projectDirs } from '../../../common/environmentManagers/pixi.unit.test';