Skip to content

Commit ffbf5bc

Browse files
Only pass non-passing values to UnitTestDiagnosticService.
1 parent 55bbcd8 commit ffbf5bc

2 files changed

Lines changed: 17 additions & 11 deletions

File tree

src/client/testing/common/services/unitTestDiagnosticService.ts

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,34 +6,37 @@
66
import { injectable } from 'inversify';
77
import { DiagnosticSeverity } from 'vscode';
88
import * as localize from '../../../common/utils/localize';
9-
import { DiagnosticMessageType, ITestDiagnosticService, PythonTestMessageSeverity } from '../../types';
10-
import { TestStatus } from '../types';
9+
import {
10+
DiagnosticMessageType,
11+
NonPassingTestMessageType,
12+
ITestDiagnosticService,
13+
NonPassingTestSeverity,
14+
PythonTestMessageSeverity,
15+
} from '../../types';
16+
import { NonPassingTestStatus, TestStatus } from '../types';
1117

1218
@injectable()
1319
export class UnitTestDiagnosticService implements ITestDiagnosticService {
14-
private MessageTypes = new Map<TestStatus, DiagnosticMessageType>();
15-
private MessageSeverities = new Map<PythonTestMessageSeverity, DiagnosticSeverity | undefined>();
16-
private MessagePrefixes = new Map<DiagnosticMessageType, string>();
20+
private MessageTypes = new Map<NonPassingTestStatus, NonPassingTestMessageType>();
21+
private MessageSeverities = new Map<NonPassingTestSeverity, DiagnosticSeverity | undefined>();
22+
private MessagePrefixes = new Map<NonPassingTestMessageType, string>();
1723

1824
constructor() {
1925
this.MessageTypes.set(TestStatus.Error, DiagnosticMessageType.Error);
2026
this.MessageTypes.set(TestStatus.Fail, DiagnosticMessageType.Fail);
2127
this.MessageTypes.set(TestStatus.Skipped, DiagnosticMessageType.Skipped);
22-
this.MessageTypes.set(TestStatus.Pass, DiagnosticMessageType.Pass);
2328
this.MessageSeverities.set(PythonTestMessageSeverity.Error, DiagnosticSeverity.Error);
2429
this.MessageSeverities.set(PythonTestMessageSeverity.Failure, DiagnosticSeverity.Error);
2530
this.MessageSeverities.set(PythonTestMessageSeverity.Skip, DiagnosticSeverity.Information);
26-
this.MessageSeverities.set(PythonTestMessageSeverity.Pass, undefined);
2731
this.MessagePrefixes.set(DiagnosticMessageType.Error, localize.Testing.testErrorDiagnosticMessage());
2832
this.MessagePrefixes.set(DiagnosticMessageType.Fail, localize.Testing.testFailDiagnosticMessage());
2933
this.MessagePrefixes.set(DiagnosticMessageType.Skipped, localize.Testing.testSkippedDiagnosticMessage());
30-
this.MessagePrefixes.set(DiagnosticMessageType.Pass, '');
3134
}
32-
public getMessagePrefix(status: TestStatus): string | undefined {
35+
public getMessagePrefix(status: NonPassingTestStatus): string | undefined {
3336
const msgType = this.MessageTypes.get(status);
3437
return msgType !== undefined ? this.MessagePrefixes.get(msgType) : undefined;
3538
}
36-
public getSeverity(unitTestSeverity: PythonTestMessageSeverity): DiagnosticSeverity | undefined {
39+
public getSeverity(unitTestSeverity: NonPassingTestSeverity): DiagnosticSeverity | undefined {
3740
return this.MessageSeverities.get(unitTestSeverity);
3841
}
3942
}

src/test/testing/pytest/pytest.run.test.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ import { CommandSource } from '../../../client/testing/common/constants';
2929
import { UnitTestDiagnosticService } from '../../../client/testing/common/services/unitTestDiagnosticService';
3030
import {
3131
FlattenedTestFunction,
32+
isNonPassingTestStatus,
33+
NonPassingTestStatus,
3234
ITestManager,
3335
ITestManagerFactory,
3436
Tests,
@@ -274,7 +276,8 @@ async function getExpectedDiagnosticFromTestDetails(testDetails: ITestDetails):
274276
expectedSourceTestFilePath = path.join(UNITTEST_TEST_FILES_PATH, testDetails.sourceFileName!);
275277
}
276278
const expectedSourceTestFileUri = vscode.Uri.file(expectedSourceTestFilePath);
277-
const diagMsgPrefix = new UnitTestDiagnosticService().getMessagePrefix(testDetails.status);
279+
assert.ok(isNonPassingTestStatus(testDetails.status));
280+
const diagMsgPrefix = new UnitTestDiagnosticService().getMessagePrefix(testDetails.status as NonPassingTestStatus);
278281
const expectedDiagMsg = `${diagMsgPrefix ? `${diagMsgPrefix}: ` : ''}${testDetails.message}`;
279282
let expectedDiagRange = testDetails.testDefRange;
280283
let expectedSeverity = vscode.DiagnosticSeverity.Error;

0 commit comments

Comments
 (0)