Skip to content

Commit 854dd07

Browse files
author
Kartik Raj
committed
Conda service is no longer legacy IOC
1 parent dc9e73a commit 854dd07

File tree

5 files changed

+6
-36
lines changed

5 files changed

+6
-36
lines changed

src/client/pythonEnvironments/discovery/locators/services/condaService.ts

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ import { IWorkspaceService } from '../../../../common/application/types';
66
import { traceDecorators, traceWarning } from '../../../../common/logger';
77
import { IFileSystem, IPlatformService } from '../../../../common/platform/types';
88
import { IProcessServiceFactory } from '../../../../common/process/types';
9-
import { IConfigurationService, IDisposableRegistry } from '../../../../common/types';
9+
import { IDisposableRegistry } from '../../../../common/types';
1010
import { cache } from '../../../../common/utils/decorators';
1111
import { ICondaService } from '../../../../interpreter/contracts';
1212
import { Conda, CondaInfo } from '../../../common/environmentManagers/conda';
1313

1414
/**
15-
* A wrapper around a conda installation.
15+
* Injectable version of Conda utility.
1616
*/
1717
@injectable()
1818
export class CondaService implements ICondaService {
@@ -24,7 +24,6 @@ export class CondaService implements ICondaService {
2424
@inject(IProcessServiceFactory) private processServiceFactory: IProcessServiceFactory,
2525
@inject(IPlatformService) private platform: IPlatformService,
2626
@inject(IFileSystem) private fileSystem: IFileSystem,
27-
@inject(IConfigurationService) private readonly configService: IConfigurationService,
2827
@inject(IDisposableRegistry) private disposableRegistry: IDisposableRegistry,
2928
@inject(IWorkspaceService) private readonly workspaceService: IWorkspaceService,
3029
) {
@@ -36,7 +35,7 @@ export class CondaService implements ICondaService {
3635
*/
3736
public async getCondaFile(): Promise<string> {
3837
if (!this.condaFile) {
39-
this.condaFile = this.getCondaFileImpl();
38+
this.condaFile = Conda.getConda().then((conda) => conda?.command ?? 'conda');
4039
}
4140
return this.condaFile;
4241
}
@@ -147,19 +146,6 @@ export class CondaService implements ICondaService {
147146
return conda?.getInfo();
148147
}
149148

150-
/**
151-
* Return the path to the "conda file", if there is one (in known locations).
152-
*/
153-
private async getCondaFileImpl(): Promise<string> {
154-
const settings = this.configService.getSettings();
155-
const setting = settings.condaPath;
156-
if (setting && setting !== '') {
157-
return setting;
158-
}
159-
const conda = await Conda.getConda();
160-
return conda?.command ?? 'conda';
161-
}
162-
163149
private addCondaPathChangedHandler() {
164150
const disposable = this.workspaceService.onDidChangeConfiguration(this.onDidChangeConfiguration.bind(this));
165151
this.disposableRegistry.push(disposable);

src/client/pythonEnvironments/index.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import { PyenvLocator } from './base/locators/lowLevel/pyenvLocator';
2222
import { WindowsRegistryLocator } from './base/locators/lowLevel/windowsRegistryLocator';
2323
import { WindowsStoreLocator } from './base/locators/lowLevel/windowsStoreLocator';
2424
import { getEnvironmentInfoService } from './base/info/environmentInfoService';
25-
import { registerLegacyDiscoveryForIOC, registerNewDiscoveryForIOC } from './legacyIOC';
25+
import { registerNewDiscoveryForIOC } from './legacyIOC';
2626
import { PoetryLocator } from './base/locators/lowLevel/poetryLocator';
2727
import { createPythonEnvironments } from './api';
2828
import {
@@ -45,8 +45,6 @@ export async function initialize(ext: ExtensionState): Promise<IDiscoveryAPI> {
4545
ext.legacyIOC.serviceManager,
4646
api,
4747
);
48-
// Deal with legacy IOC.
49-
await registerLegacyDiscoveryForIOC(ext.legacyIOC.serviceManager);
5048

5149
return api;
5250
}

src/client/pythonEnvironments/legacyIOC.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -302,10 +302,7 @@ class ComponentAdapter implements IComponentAdapter {
302302
}
303303
}
304304

305-
export async function registerLegacyDiscoveryForIOC(serviceManager: IServiceManager): Promise<void> {
306-
serviceManager.addSingleton<ICondaService>(ICondaService, CondaService);
307-
}
308-
309305
export function registerNewDiscoveryForIOC(serviceManager: IServiceManager, api: IDiscoveryAPI): void {
306+
serviceManager.addSingleton<ICondaService>(ICondaService, CondaService);
310307
serviceManager.addSingletonInstance<IComponentAdapter>(IComponentAdapter, new ComponentAdapter(api));
311308
}

src/test/pythonEnvironments/discovery/locators/condaService.unit.test.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,36 +6,27 @@ import { IWorkspaceService } from '../../../../client/common/application/types';
66
import { FileSystemPaths, FileSystemPathUtils } from '../../../../client/common/platform/fs-paths';
77
import { IFileSystem, IPlatformService } from '../../../../client/common/platform/types';
88
import { IProcessService, IProcessServiceFactory } from '../../../../client/common/process/types';
9-
import { IConfigurationService, IPythonSettings } from '../../../../client/common/types';
109
import { CondaService } from '../../../../client/pythonEnvironments/discovery/locators/services/condaService';
1110

1211
suite('Interpreters Conda Service', () => {
1312
let processService: TypeMoq.IMock<IProcessService>;
1413
let platformService: TypeMoq.IMock<IPlatformService>;
1514
let condaService: CondaService;
1615
let fileSystem: TypeMoq.IMock<IFileSystem>;
17-
let config: TypeMoq.IMock<IConfigurationService>;
18-
let settings: TypeMoq.IMock<IPythonSettings>;
1916
let procServiceFactory: TypeMoq.IMock<IProcessServiceFactory>;
20-
let condaPathSetting: string;
2117
let workspaceService: TypeMoq.IMock<IWorkspaceService>;
2218
setup(async () => {
23-
condaPathSetting = '';
2419
processService = TypeMoq.Mock.ofType<IProcessService>();
2520
workspaceService = TypeMoq.Mock.ofType<IWorkspaceService>();
2621
platformService = TypeMoq.Mock.ofType<IPlatformService>();
2722
fileSystem = TypeMoq.Mock.ofType<IFileSystem>();
28-
config = TypeMoq.Mock.ofType<IConfigurationService>();
29-
settings = TypeMoq.Mock.ofType<IPythonSettings>();
3023
procServiceFactory = TypeMoq.Mock.ofType<IProcessServiceFactory>();
3124
// eslint-disable-next-line @typescript-eslint/no-explicit-any
3225
processService.setup((x: any) => x.then).returns(() => undefined);
3326
procServiceFactory
3427
.setup((p) => p.create(TypeMoq.It.isAny()))
3528
.returns(() => Promise.resolve(processService.object));
3629

37-
config.setup((c) => c.getSettings(TypeMoq.It.isValue(undefined))).returns(() => settings.object);
38-
settings.setup((p) => p.condaPath).returns(() => condaPathSetting);
3930
fileSystem
4031
.setup((fs) => fs.arePathsSame(TypeMoq.It.isAny(), TypeMoq.It.isAny()))
4132
.returns((p1, p2) => {
@@ -49,7 +40,6 @@ suite('Interpreters Conda Service', () => {
4940
procServiceFactory.object,
5041
platformService.object,
5142
fileSystem.object,
52-
config.object,
5343
[],
5444
workspaceService.object,
5545
);

src/test/pythonEnvironments/legacyIOC.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { instance, mock } from 'ts-mockito';
55
import { IServiceContainer, IServiceManager } from '../../client/ioc/types';
66
import { IDiscoveryAPI } from '../../client/pythonEnvironments/base/locator';
77
import { initializeExternalDependencies } from '../../client/pythonEnvironments/common/externalDependencies';
8-
import { registerLegacyDiscoveryForIOC, registerNewDiscoveryForIOC } from '../../client/pythonEnvironments/legacyIOC';
8+
import { registerNewDiscoveryForIOC } from '../../client/pythonEnvironments/legacyIOC';
99

1010
/**
1111
* This is here to support old tests.
@@ -18,5 +18,4 @@ export async function registerForIOC(
1818
initializeExternalDependencies(serviceContainer);
1919
// The old tests do not need real instances, directly pass in mocks.
2020
registerNewDiscoveryForIOC(serviceManager, instance(mock<IDiscoveryAPI>()));
21-
await registerLegacyDiscoveryForIOC(serviceManager);
2221
}

0 commit comments

Comments
 (0)