Skip to content

Commit 7e9c7a3

Browse files
committed
test: restrict package roundtrip to isolated environments
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 6b2fe9b5-38ea-442f-b07a-b6c71134d480
1 parent 01575b1 commit 7e9c7a3

1 file changed

Lines changed: 11 additions & 8 deletions

File tree

src/test/integration/packageManagerRoundtrip.integration.test.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import * as assert from 'assert';
4141
import * as vscode from 'vscode';
4242
import { Package, PythonEnvironment, PythonEnvironmentApi } from '../../api';
43+
import { CONDA_MANAGER_ID, PYTHON_EXTENSION_ID, VENV_MANAGER_ID } from '../../common/constants';
4344
import { normalizePackageName } from '../../managers/builtin/utils';
4445
import { ENVS_EXTENSION_ID } from '../constants';
4546
import { waitForCondition } from '../testUtils';
@@ -176,21 +177,23 @@ suite('Integration: Package Manager Roundtrip', function () {
176177

177178
/**
178179
* Picks one representative environment per package manager, grouped by managerId.
179-
* Prefers virtual-environment-like envs, which are safe to install into.
180+
* Only returns isolated environments that are safe for an install/uninstall test.
180181
*/
181182
async function getEnvironmentsByManager(): Promise<Map<string, PythonEnvironment>> {
182183
const environments = await api.getEnvironments('all');
183184
const byManager = new Map<string, PythonEnvironment>();
184-
185-
const looksModifiable = (env: PythonEnvironment): boolean =>
186-
env.displayName.includes('venv') ||
187-
env.displayName.includes('.venv') ||
188-
env.envId.managerId.includes('venv');
185+
const isolatedManagerIds = new Set([
186+
VENV_MANAGER_ID,
187+
`${PYTHON_EXTENSION_ID}:pipenv`,
188+
`${PYTHON_EXTENSION_ID}:poetry`,
189+
]);
189190

190191
for (const env of environments) {
191192
const managerId = env.envId.managerId;
192-
const current = byManager.get(managerId);
193-
if (!current || (looksModifiable(env) && !looksModifiable(current))) {
193+
const isSafeToModify =
194+
isolatedManagerIds.has(managerId) ||
195+
(managerId === CONDA_MANAGER_ID && env.name.toLowerCase() !== 'base');
196+
if (isSafeToModify && !byManager.has(managerId)) {
194197
byManager.set(managerId, env);
195198
}
196199
}

0 commit comments

Comments
 (0)