Skip to content

Commit 599e375

Browse files
committed
all tests working
1 parent bdfd34c commit 599e375

File tree

1 file changed

+43
-42
lines changed

1 file changed

+43
-42
lines changed

src/test/testing/testController/pytest/pytestDiscoveryAdapter.test.ts renamed to src/test/testing/common/testingAdapter.test.ts

Lines changed: 43 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@ import { TestRun, Uri } from 'vscode';
55
import * as typeMoq from 'typemoq';
66
import * as path from 'path';
77
import * as assert from 'assert';
8-
import { PytestTestDiscoveryAdapter } from '../../../../client/testing/testController/pytest/pytestDiscoveryAdapter';
9-
import { ITestResultResolver, ITestServer } from '../../../../client/testing/testController/common/types';
10-
import { PythonTestServer } from '../../../../client/testing/testController/common/server';
11-
import { IPythonExecutionFactory } from '../../../../client/common/process/types';
12-
import { ITestDebugLauncher } from '../../../../client/testing/common/types';
13-
import { IConfigurationService, ITestOutputChannel } from '../../../../client/common/types';
14-
import { IServiceContainer } from '../../../../client/ioc/types';
15-
import { EXTENSION_ROOT_DIR_FOR_TESTS, initialize } from '../../../initialize';
16-
import { traceLog } from '../../../../client/logging';
17-
import { PytestTestExecutionAdapter } from '../../../../client/testing/testController/pytest/pytestExecutionAdapter';
18-
import { UnittestTestDiscoveryAdapter } from '../../../../client/testing/testController/unittest/testDiscoveryAdapter';
19-
import { UnittestTestExecutionAdapter } from '../../../../client/testing/testController/unittest/testExecutionAdapter';
8+
import { PytestTestDiscoveryAdapter } from '../../../client/testing/testController/pytest/pytestDiscoveryAdapter';
9+
import { ITestResultResolver, ITestServer } from '../../../client/testing/testController/common/types';
10+
import { PythonTestServer } from '../../../client/testing/testController/common/server';
11+
import { IPythonExecutionFactory } from '../../../client/common/process/types';
12+
import { ITestDebugLauncher } from '../../../client/testing/common/types';
13+
import { IConfigurationService, ITestOutputChannel } from '../../../client/common/types';
14+
import { IServiceContainer } from '../../../client/ioc/types';
15+
import { EXTENSION_ROOT_DIR_FOR_TESTS, initialize } from '../../initialize';
16+
import { traceError, traceLog } from '../../../client/logging';
17+
import { PytestTestExecutionAdapter } from '../../../client/testing/testController/pytest/pytestExecutionAdapter';
18+
import { UnittestTestDiscoveryAdapter } from '../../../client/testing/testController/unittest/testDiscoveryAdapter';
19+
import { UnittestTestExecutionAdapter } from '../../../client/testing/testController/unittest/testExecutionAdapter';
2020

2121
suite('Functional Tests: test adapters', () => {
2222
let resultResolver: typeMoq.IMock<ITestResultResolver>;
@@ -74,18 +74,19 @@ suite('Functional Tests: test adapters', () => {
7474
actualData = data;
7575
return Promise.resolve();
7676
});
77+
78+
// set workspace to test workspace folder and set up settings
79+
workspaceUri = Uri.parse(rootPathSmallWorkspace);
7780
configService.getSettings(workspaceUri).testing.unittestArgs = ['-s', '.', '-p', '*test*.py'];
78-
// run pytest discovery
81+
82+
// run unittest discovery
7983
const discoveryAdapter = new UnittestTestDiscoveryAdapter(
8084
pythonTestServer,
8185
configService,
8286
testOutputChannel,
8387
resultResolver.object,
8488
);
8589

86-
// set workspace to test workspace folder
87-
workspaceUri = Uri.parse(rootPathSmallWorkspace);
88-
8990
await discoveryAdapter.discoverTests(workspaceUri).finally(() => {
9091
// verification after discovery is complete
9192
resultResolver.verify(
@@ -117,18 +118,17 @@ suite('Functional Tests: test adapters', () => {
117118
return Promise.resolve();
118119
});
119120

121+
// set settings to work for the given workspace
122+
workspaceUri = Uri.parse(rootPathLargeWorkspace);
120123
configService.getSettings(workspaceUri).testing.unittestArgs = ['-s', '.', '-p', '*test*.py'];
121-
// run pytest discovery
124+
// run discovery
122125
const discoveryAdapter = new UnittestTestDiscoveryAdapter(
123126
pythonTestServer,
124127
configService,
125128
testOutputChannel,
126129
resultResolver.object,
127130
);
128131

129-
// set workspace to test workspace folder
130-
workspaceUri = Uri.parse(rootPathLargeWorkspace);
131-
132132
await discoveryAdapter.discoverTests(workspaceUri).finally(() => {
133133
// verification after discovery is complete
134134
resultResolver.verify(
@@ -242,7 +242,7 @@ suite('Functional Tests: test adapters', () => {
242242
// set workspace to test workspace folder
243243
workspaceUri = Uri.parse(rootPathSmallWorkspace);
244244
configService.getSettings(workspaceUri).testing.unittestArgs = ['-s', '.', '-p', '*test*.py'];
245-
// run pytest execution
245+
// run execution
246246
const executionAdapter = new UnittestTestExecutionAdapter(
247247
pythonTestServer,
248248
configService,
@@ -261,17 +261,15 @@ suite('Functional Tests: test adapters', () => {
261261
await executionAdapter
262262
.runTests(workspaceUri, ['test_simple.SimpleClass.test_simple_unit'], false, testRun.object)
263263
.finally(() => {
264-
// verification after discovery is complete
264+
// verification after execution is complete
265265
resultResolver.verify(
266266
(x) => x.resolveExecution(typeMoq.It.isAny(), typeMoq.It.isAny()),
267267
typeMoq.Times.once(),
268268
);
269269

270270
// 1. Check the status is "success"
271271
assert.strictEqual(actualData.status, 'success', "Expected status to be 'success'");
272-
// 2. Confirm no errors
273-
assert.strictEqual(actualData.error, null, "Expected no errors in 'error' field");
274-
// 3. Confirm tests are found
272+
// 2. Confirm tests are found
275273
assert.ok(actualData.result, 'Expected results to be present');
276274
});
277275
});
@@ -280,22 +278,25 @@ suite('Functional Tests: test adapters', () => {
280278
resultResolver
281279
.setup((x) => x.resolveExecution(typeMoq.It.isAny(), typeMoq.It.isAny()))
282280
.returns((data) => {
281+
traceError(`resolveExecution ${data}`);
282+
console.log(`resolveExecution ${data}`);
283283
traceLog(`resolveExecution ${data}`);
284284
// do the following asserts for each time resolveExecution is called, should be called once per test.
285-
// 1. Check the status is "success"
286-
assert.strictEqual(data.status, 'success', "Expected status to be 'success'");
287-
// 2. Confirm no errors
288-
assert.strictEqual(data.error, null, "Expected no errors in 'error' field");
289-
// 3. Confirm tests are found
285+
// 1. Check the status, can be subtest success or failure
286+
assert(
287+
data.status === 'subtest-success' || data.status === 'subtest-failure',
288+
"Expected status to be 'subtest-success' or 'subtest-failure'",
289+
);
290+
// 2. Confirm tests are found
290291
assert.ok(data.result, 'Expected results to be present');
291292
return Promise.resolve();
292293
});
293294

294295
// set workspace to test workspace folder
295-
workspaceUri = Uri.parse(rootPathSmallWorkspace);
296+
workspaceUri = Uri.parse(rootPathLargeWorkspace);
296297
configService.getSettings(workspaceUri).testing.unittestArgs = ['-s', '.', '-p', '*test*.py'];
297298

298-
// run pytest execution
299+
// run unittest execution
299300
const executionAdapter = new UnittestTestExecutionAdapter(
300301
pythonTestServer,
301302
configService,
@@ -311,14 +312,15 @@ suite('Functional Tests: test adapters', () => {
311312
onCancellationRequested: () => undefined,
312313
} as any),
313314
);
314-
// ['test_parameterized_subtest.NumbersTest.test_even'];
315-
await executionAdapter.runTests(workspaceUri, [], false, testRun.object).finally(() => {
316-
// verification after discovery is complete
317-
resultResolver.verify(
318-
(x) => x.resolveExecution(typeMoq.It.isAny(), typeMoq.It.isAny()),
319-
typeMoq.Times.exactly(200),
320-
);
321-
});
315+
await executionAdapter
316+
.runTests(workspaceUri, ['test_parameterized_subtest.NumbersTest.test_even'], false, testRun.object)
317+
.finally(() => {
318+
// verification after discovery is complete
319+
resultResolver.verify(
320+
(x) => x.resolveExecution(typeMoq.It.isAny(), typeMoq.It.isAny()),
321+
typeMoq.Times.exactly(200),
322+
);
323+
});
322324
});
323325
test('pytest execution adapter small workspace', async () => {
324326
// result resolver and saved data for assertions
@@ -397,9 +399,8 @@ suite('Functional Tests: test adapters', () => {
397399

398400
// generate list of test_ids
399401
const testIds: string[] = [];
400-
401402
for (let i = 0; i < 200; i = i + 1) {
402-
const testId = `${rootPathLargeWorkspace}/test_parameterized.py::test_odd_even[${i}]`;
403+
const testId = `${rootPathLargeWorkspace}/test_parameterized_subtest.py::test_odd_even[${i}]`;
403404
testIds.push(testId);
404405
}
405406

0 commit comments

Comments
 (0)