Skip to content

Commit 7dfaabe

Browse files
committed
PR Suggestions
- move TreeView files to more appropriate location - move registrations to more appropriate location - clean up some lengthy import statements
1 parent 1393fbb commit 7dfaabe

File tree

7 files changed

+60
-30
lines changed

7 files changed

+60
-30
lines changed

src/client/extension.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,7 @@ import { ReplProvider } from './providers/replProvider';
9393
import { registerTypes as providersRegisterTypes } from './providers/serviceRegistry';
9494
import { activateSimplePythonRefactorProvider } from './providers/simpleRefactorProvider';
9595
import { TerminalProvider } from './providers/terminalProvider';
96-
import {
97-
IPythonTestTreeViewProvider, ISortImportsEditingProvider
98-
} from './providers/types';
96+
import { ISortImportsEditingProvider } from './providers/types';
9997
import { activateUpdateSparkLibraryProvider } from './providers/updateSparkLibraryProvider';
10098
import { sendTelemetryEvent } from './telemetry';
10199
import { EventName } from './telemetry/constants';
@@ -209,9 +207,6 @@ async function activateUnsafe(context: ExtensionContext): Promise<IExtensionApi>
209207

210208
context.subscriptions.push(languages.registerCodeActionsProvider(PYTHON, new PythonCodeActionProvider(), { providedCodeActionKinds: [CodeActionKind.SourceOrganizeImports] }));
211209

212-
const testViewProvider = serviceContainer.get<IPythonTestTreeViewProvider>(IPythonTestTreeViewProvider);
213-
context.subscriptions.push(window.registerTreeDataProvider('python_tests', testViewProvider));
214-
215210
serviceContainer.getAll<DebugConfigurationProvider>(IDebugConfigurationService).forEach(debugConfigProvider => {
216211
context.subscriptions.push(debug.registerDebugConfigurationProvider(DebuggerTypeName, debugConfigProvider));
217212
});

src/client/providers/serviceRegistry.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,8 @@
55

66
import { IServiceManager } from '../ioc/types';
77
import { SortImportsEditingProvider } from './importSortProvider';
8-
import { TestTreeViewProvider } from './testTreeViewProvider';
9-
import {
10-
ISortImportsEditingProvider, ITestTreeViewProvider
11-
} from './types';
8+
import { ISortImportsEditingProvider } from './types';
129

1310
export function registerTypes(serviceManager: IServiceManager) {
1411
serviceManager.addSingleton<ISortImportsEditingProvider>(ISortImportsEditingProvider, SortImportsEditingProvider);
15-
serviceManager.addSingleton<ITestTreeViewProvider>(ITestTreeViewProvider, TestTreeViewProvider);
1612
}

src/client/providers/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
CancellationToken, Event, ProviderResult,
88
TreeDataProvider, Uri, WorkspaceEdit
99
} from 'vscode';
10-
import { TestTreeItem } from './testTreeViewItem';
10+
import { TestTreeItem } from '../unittests/providers/testTreeViewItem';
1111

1212
export const ISortImportsEditingProvider = Symbol('ISortImportsEditingProvider');
1313
export interface ISortImportsEditingProvider {

src/client/unittests/main.ts

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,50 @@
33
// tslint:disable:no-duplicate-imports no-unnecessary-callback-wrapper
44

55
import { inject, injectable } from 'inversify';
6-
import { ConfigurationChangeEvent, Disposable, OutputChannel, TextDocument, Uri } from 'vscode';
7-
import * as vscode from 'vscode';
8-
import { ICommandManager, IDocumentManager, IWorkspaceService } from '../common/application/types';
6+
import {
7+
ConfigurationChangeEvent, Disposable,
8+
DocumentSymbolProvider, EventEmitter,
9+
OutputChannel, TextDocument, Uri, window
10+
} from 'vscode';
11+
import {
12+
ICommandManager, IDocumentManager, IWorkspaceService
13+
} from '../common/application/types';
914
import * as constants from '../common/constants';
1015
import '../common/extensions';
11-
import { IConfigurationService, IDisposableRegistry, ILogger, IOutputChannel } from '../common/types';
16+
import {
17+
IConfigurationService, IDisposableRegistry,
18+
ILogger, IOutputChannel
19+
} from '../common/types';
1220
import { IServiceContainer } from '../ioc/types';
21+
import { ITestTreeViewProvider } from '../providers/types';
1322
import { EventName } from '../telemetry/constants';
1423
import { sendTelemetryEvent } from '../telemetry/index';
1524
import { activateCodeLenses } from './codeLenses/main';
16-
import { CANCELLATION_REASON, CommandSource, TEST_OUTPUT_CHANNEL } from './common/constants';
25+
import {
26+
CANCELLATION_REASON, CommandSource, TEST_OUTPUT_CHANNEL
27+
} from './common/constants';
1728
import { selectTestWorkspace } from './common/testUtils';
18-
import { ITestCollectionStorageService, ITestManager, IWorkspaceTestManagerService, TestFile, TestFunction, TestStatus, TestsToRun } from './common/types';
19-
import { ITestDisplay, ITestResultDisplay, IUnitTestConfigurationService, IUnitTestManagementService } from './types';
29+
import {
30+
ITestCollectionStorageService, ITestManager,
31+
IWorkspaceTestManagerService, TestFile,
32+
TestFunction, TestStatus, TestsToRun
33+
} from './common/types';
34+
import {
35+
ITestDisplay, ITestResultDisplay,
36+
IUnitTestConfigurationService, IUnitTestManagementService
37+
} from './types';
2038

2139
@injectable()
2240
export class UnitTestManagementService implements IUnitTestManagementService, Disposable {
23-
private readonly outputChannel: vscode.OutputChannel;
41+
private readonly outputChannel: OutputChannel;
2442
private readonly disposableRegistry: Disposable[];
2543
private workspaceTestManagerService?: IWorkspaceTestManagerService;
2644
private documentManager: IDocumentManager;
2745
private workspaceService: IWorkspaceService;
2846
private testResultDisplay?: ITestResultDisplay;
2947
private autoDiscoverTimer?: NodeJS.Timer;
3048
private configChangedTimer?: NodeJS.Timer;
31-
private readonly onDidChange: vscode.EventEmitter<void> = new vscode.EventEmitter<void>();
49+
private readonly onDidChange: EventEmitter<void> = new EventEmitter<void>();
3250

3351
constructor(@inject(IServiceContainer) private serviceContainer: IServiceContainer) {
3452
this.disposableRegistry = serviceContainer.get<Disposable[]>(IDisposableRegistry);
@@ -45,12 +63,20 @@ export class UnitTestManagementService implements IUnitTestManagementService, Di
4563
}
4664
public async activate(symboldProvider: vscode.DocumentSymbolProvider): Promise<void> {
4765
this.workspaceTestManagerService = this.serviceContainer.get<IWorkspaceTestManagerService>(IWorkspaceTestManagerService);
66+
const disposablesRegistry = this.serviceContainer.get<Disposable[]>(IDisposableRegistry);
4867

4968
this.registerHandlers();
5069
this.registerCommands();
70+
71+
// register provider...
72+
const testViewProvider = this.serviceContainer.get<ITestTreeViewProvider>(ITestTreeViewProvider);
73+
const disposable = window.registerTreeDataProvider('python_tests', testViewProvider);
74+
disposablesRegistry.push(disposable);
75+
5176
this.autoDiscoverTests()
5277
.catch(ex => this.serviceContainer.get<ILogger>(ILogger).logError('Failed to auto discover tests upon activation', ex));
5378
await this.registerSymbolProvider(symboldProvider);
79+
public async activateCodeLenses(symboldProvider: DocumentSymbolProvider): Promise<void> {
5480
}
5581
public async getTestManager(displayTestNotConfiguredMessage: boolean, resource?: Uri): Promise<ITestManager | undefined | void> {
5682
let wkspace: Uri | undefined;

src/client/providers/testTreeViewItem.ts renamed to src/client/unittests/providers/testTreeViewItem.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
import {
1010
TestFile, TestFolder, TestFunction,
1111
TestStatus, TestSuite
12-
} from '../unittests/common/types';
12+
} from '../common/types';
1313

1414
export enum TestTreeItemType {
1515
Root = 'Root',

src/client/providers/testTreeViewProvider.ts renamed to src/client/unittests/providers/testTreeViewProvider.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,18 @@ import { inject, injectable } from 'inversify';
77
import {
88
Event, EventEmitter, ProviderResult, Uri
99
} from 'vscode';
10-
import { IWorkspaceService } from '../common/application/types';
11-
import { traceDecorators } from '../common/logger';
12-
import { IDisposable, IDisposableRegistry, Resource } from '../common/types';
10+
import { IWorkspaceService } from '../../common/application/types';
11+
import { traceDecorators } from '../../common/logger';
12+
import {
13+
IDisposable, IDisposableRegistry, Resource
14+
} from '../../common/types';
15+
import { ITestTreeViewProvider } from '../../providers/types';
1316
import {
1417
ITestCollectionStorageService, TestFolder, Tests, TestStatus
15-
} from '../unittests/common/types';
18+
} from '../common/types';
1619
import {
1720
TestTreeItem, TestTreeItemType
1821
} from './testTreeViewItem';
19-
import { ITestTreeViewProvider as ITestTreeViewProvider } from './types';
2022

2123
@injectable()
2224
export class TestTreeViewProvider implements ITestTreeViewProvider, IDisposable {

src/client/unittests/serviceRegistry.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
import { Uri } from 'vscode';
55
import { IServiceContainer, IServiceManager } from '../ioc/types';
6+
import { ITestTreeViewProvider } from '../providers/types';
67
import { ArgumentsHelper } from './common/argumentsHelper';
78
import { NOSETEST_PROVIDER, PYTEST_PROVIDER, UNITTEST_PROVIDER } from './common/constants';
89
import { DebugLauncher } from './common/debugLauncher';
@@ -18,8 +19,11 @@ import { TestFlatteningVisitor } from './common/testVisitors/flatteningVisitor';
1819
import { TestFolderGenerationVisitor } from './common/testVisitors/folderGenerationVisitor';
1920
import { TestResultResetVisitor } from './common/testVisitors/resultResetVisitor';
2021
import {
21-
ITestCollectionStorageService, ITestConfigSettingsService, ITestDebugLauncher, ITestDiscoveryService, ITestManager, ITestManagerFactory, ITestManagerService, ITestManagerServiceFactory,
22-
ITestMessageService, ITestResultsService, ITestRunner, ITestsHelper, ITestsParser, ITestVisitor, IUnitTestSocketServer, IWorkspaceTestManagerService, IXUnitParser, TestProvider
22+
ITestCollectionStorageService, ITestConfigSettingsService, ITestDebugLauncher,
23+
ITestDiscoveryService, ITestManager, ITestManagerFactory, ITestManagerService,
24+
ITestManagerServiceFactory, ITestMessageService, ITestResultsService, ITestRunner,
25+
ITestsHelper, ITestsParser, ITestVisitor, IUnitTestSocketServer, IWorkspaceTestManagerService,
26+
IXUnitParser, TestProvider
2327
} from './common/types';
2428
import { XUnitParser } from './common/xUnitParser';
2529
import { UnitTestConfigurationService } from './configuration';
@@ -33,13 +37,19 @@ import { TestManagerRunner as NoseTestManagerRunner } from './nosetest/runner';
3337
import { ArgumentsService as NoseTestArgumentsService } from './nosetest/services/argsService';
3438
import { TestDiscoveryService as NoseTestDiscoveryService } from './nosetest/services/discoveryService';
3539
import { TestsParser as NoseTestTestsParser } from './nosetest/services/parserService';
40+
import { TestTreeViewProvider } from './providers/testTreeViewProvider';
3641
import { TestManager as PyTestTestManager } from './pytest/main';
3742
import { TestManagerRunner as PytestManagerRunner } from './pytest/runner';
3843
import { ArgumentsService as PyTestArgumentsService } from './pytest/services/argsService';
3944
import { TestDiscoveryService as PytestTestDiscoveryService } from './pytest/services/discoveryService';
4045
import { TestsParser as PytestTestsParser } from './pytest/services/parserService';
4146
import { TestMessageService } from './pytest/services/testMessageService';
42-
import { IArgumentsHelper, IArgumentsService, ITestConfigurationManagerFactory, ITestDisplay, ITestManagerRunner, ITestResultDisplay, IUnitTestConfigurationService, IUnitTestDiagnosticService, IUnitTestHelper, IUnitTestManagementService } from './types';
47+
import {
48+
IArgumentsHelper, IArgumentsService, ITestConfigurationManagerFactory,
49+
ITestDisplay, ITestManagerRunner, ITestResultDisplay,
50+
IUnitTestConfigurationService, IUnitTestDiagnosticService,
51+
IUnitTestHelper, IUnitTestManagementService
52+
} from './types';
4353
import { UnitTestHelper } from './unittest/helper';
4454
import { TestManager as UnitTestTestManager } from './unittest/main';
4555
import { TestManagerRunner as UnitTestTestManagerRunner } from './unittest/runner';
@@ -92,6 +102,7 @@ export function registerTypes(serviceManager: IServiceManager) {
92102

93103
serviceManager.addSingleton<IUnitTestDiagnosticService>(IUnitTestDiagnosticService, UnitTestDiagnosticService);
94104
serviceManager.addSingleton<ITestMessageService>(ITestMessageService, TestMessageService, PYTEST_PROVIDER);
105+
serviceManager.addSingleton<ITestTreeViewProvider>(ITestTreeViewProvider, TestTreeViewProvider);
95106

96107
serviceManager.addFactory<ITestManager>(ITestManagerFactory, (context) => {
97108
return (testProvider: TestProvider, workspaceFolder: Uri, rootDirectory: string) => {

0 commit comments

Comments
 (0)