Skip to content

Commit ef298a0

Browse files
committed
fix comments p2
1 parent b1bf868 commit ef298a0

File tree

2 files changed

+18
-9
lines changed

2 files changed

+18
-9
lines changed

src/features/copilotTools.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,8 @@ import {
99
Uri,
1010
} from 'vscode';
1111
import {
12-
EnvironmentManager,
13-
PythonCommandRunConfiguration,
1412
PythonEnvironment,
1513
PythonEnvironmentExecutionInfo,
16-
PythonEnvironmentManagementApi,
1714
PythonPackageGetterApi,
1815
PythonPackageManagementApi,
1916
PythonProjectEnvironmentApi,
@@ -79,8 +76,9 @@ export class GetEnvironmentInfoTool implements LanguageModelTool<IResourceRefere
7976
}
8077

8178
const execInfo: PythonEnvironmentExecutionInfo = environment.execInfo;
82-
const run: PythonCommandRunConfiguration = execInfo.run;
83-
envInfo.runCommand = run.executable + (run.args && run.args.length > 0 ? ` ${run.args.join(' ')}` : '');
79+
const executable = execInfo?.activatedRun?.executable ?? execInfo?.run.executable ?? 'python';
80+
const args = execInfo?.activatedRun?.args ?? execInfo?.run.args ?? [];
81+
envInfo.runCommand = args.length > 0 ? `${executable} ${args.join(' ')}` : executable;
8482
envInfo.version = environment.version;
8583

8684
// get the environment type or manager if type is not available
@@ -210,8 +208,6 @@ export class InstallPackageTool implements LanguageModelTool<IInstallPackageInpu
210208
await this.api.installPackages(environment, parameters.packageList);
211209
const resultMessage = `Successfully installed ${packagePlurality}: ${parameters.packageList.join(', ')}`;
212210

213-
214-
215211
deferredReturn.resolve({
216212
content: [new LanguageModelTextPart(resultMessage)],
217213
});

src/test/copilotTools.unit.test.ts

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
InstallPackageTool,
1919
IResourceReference,
2020
} from '../features/copilotTools';
21+
import { EnvironmentManagers, InternalEnvironmentManager } from '../internal.api';
2122

2223
suite('InstallPackageTool Tests', () => {
2324
let installPackageTool: InstallPackageTool;
@@ -249,6 +250,8 @@ suite('GetEnvironmentInfoTool Tests', () => {
249250
let getEnvironmentInfoTool: GetEnvironmentInfoTool;
250251
let mockApi: typeMoq.IMock<PythonProjectEnvironmentApi & PythonPackageGetterApi & PythonPackageManagementApi>;
251252
let mockEnvironment: typeMoq.IMock<PythonEnvironment>;
253+
let em: typeMoq.IMock<EnvironmentManagers>;
254+
let manager: typeMoq.IMock<InternalEnvironmentManager>;
252255

253256
setup(() => {
254257
// Create mock functions
@@ -261,7 +264,16 @@ suite('GetEnvironmentInfoTool Tests', () => {
261264
mockEnvironment.setup((x: any) => x.then).returns(() => undefined);
262265

263266
// Create an instance of GetEnvironmentInfoTool with the mock functions
264-
getEnvironmentInfoTool = new GetEnvironmentInfoTool(mockApi.object);
267+
manager = typeMoq.Mock.ofType<InternalEnvironmentManager>();
268+
manager.setup((m) => m.id).returns(() => 'ms-python.python:venv');
269+
manager.setup((m) => m.name).returns(() => 'venv');
270+
manager.setup((m) => m.displayName).returns(() => 'Test Manager');
271+
272+
em = typeMoq.Mock.ofType<EnvironmentManagers>();
273+
em.setup((e) => e.managers).returns(() => [manager.object]);
274+
em.setup((e) => e.getEnvironmentManager(typeMoq.It.isAnyString())).returns(() => manager.object);
275+
276+
getEnvironmentInfoTool = new GetEnvironmentInfoTool(mockApi.object, em.object);
265277

266278
// runConfig valid / not valid
267279
// const runConfigValid: PythonCommandRunConfiguration = {
@@ -390,7 +402,8 @@ suite('GetEnvironmentInfoTool Tests', () => {
390402
mockEnvironmentSuccess.setup((x: any) => x.then).returns(() => undefined);
391403
mockEnvironmentSuccess.setup((x) => x.version).returns(() => '3.12.1');
392404
const mockEnvId = typeMoq.Mock.ofType<PythonEnvironmentId>();
393-
mockEnvId.setup((x) => x.managerId).returns(() => 'ms-python.python:sys');
405+
mockEnvId.setup((x) => x.managerId).returns(() => 'ms-python.python:system');
406+
manager.setup((m) => m.name).returns(() => 'system');
394407
mockEnvironmentSuccess.setup((x) => x.envId).returns(() => mockEnvId.object);
395408
mockEnvironmentSuccess
396409
.setup((x) => x.execInfo)

0 commit comments

Comments
 (0)