Skip to content

Commit

Permalink
Merge pull request #42117 from gayaldassanayake/remove-ddt-quotes
Browse files Browse the repository at this point in the history
Allow Data driven test filters to work without single quotes
  • Loading branch information
gayaldassanayake authored Feb 14, 2024
2 parents 6a78e8f + 631f85e commit bea08a1
Show file tree
Hide file tree
Showing 10 changed files with 32 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -293,13 +293,10 @@ function skipDataDrivenTest(TestFunction testFunction, string suffix, TestType t
if (!suffixMatch) {
string[] subTests = filterSubTests.get(functionKey);
foreach string subFilter in subTests {

string updatedSubFilter = subFilter;
if (testType == DATA_DRIVEN_MAP_OF_TUPLE) {
if (subFilter.startsWith(SINGLE_QUOTE) && subFilter.endsWith(SINGLE_QUOTE)) {
updatedSubFilter = subFilter.substring(1, subFilter.length() - 1);
} else {
continue;
}
}
string|error decodedSubFilter = escapeSpecialCharacters(updatedSubFilter);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,15 @@ public void testValidDataProviderCase() throws BallerinaTestException, IOExcepti
AssertionUtils.assertOutput("DataProviderTest-testValidDataProviderCase.txt", output);
}

@Test (dependsOnMethods = "testValidDataProviderWithFail")
public void testValidDataProviderCaseWithoutQuotes() throws BallerinaTestException, IOException {
String[] args = mergeCoverageArgs(new String[]{"--tests", "dataproviders:jsonDataProviderTest#json1",
"data-providers"});
String output = balClient.runMainAndReadStdOut("test", args,
new HashMap<>(), projectPath, false);
AssertionUtils.assertOutput("DataProviderTest-testValidDataProviderCase.txt", output);
}

@Test (dependsOnMethods = "testValidDataProviderCase")
public void testDataProviderWithMixedType() throws BallerinaTestException, IOException {
String[] args = mergeCoverageArgs(new String[]{"--tests", "testFunction1#'CaseNew*'",
Expand All @@ -92,6 +101,15 @@ public void testDataProviderWithMixedType() throws BallerinaTestException, IOExc
AssertionUtils.assertOutput("DataProviderTest-testDataProviderWithMixedType.txt", output);
}

@Test (dependsOnMethods = "testValidDataProviderCase")
public void testDataProviderWithMixedTypeWithoutQuotes() throws BallerinaTestException, IOException {
String[] args = mergeCoverageArgs(new String[]{"--tests", "testFunction1#CaseNew*",
"data-providers"});
String output = balClient.runMainAndReadStdOut("test", args,
new HashMap<>(), projectPath, false);
AssertionUtils.assertOutput("DataProviderTest-testDataProviderWithMixedType.txt", output);
}

@Test (dependsOnMethods = "testDataProviderWithMixedType")
public void testWithSpecialKeys() throws BallerinaTestException, IOException {
String[] args = mergeCoverageArgs(new String[]{"--tests", "testFunction2",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Running Tests with Coverage
callableName: testDividingValuesNegative moduleName: intg_tests.dataproviders$test.0.tests.new-data-provider-tests fileName: tests/new-data-provider-tests.bal lineNumber: 191
callableName: testDividingValuesNegative$lambda14$ moduleName: intg_tests.dataproviders$test.0.tests.test_execute-generated_*****lineNumber: 18
",functionName="testDividingValuesNegative")
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 349
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 346
callableName: executeDataDrivenTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 136
callableName: executeDataDrivenTestSet moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 123
callableName: executeTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 83
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@ Running Tests
[fail data provider for the function testInvalidDataProvider]
error {ballerina/test:0}ExecutionError ("error("{ballerina/lang.function}IncompatibleArguments",message="arguments of incompatible types: argument list '(int)' cannot be passed to function expecting parameter list '(string)'")
callableName: call moduleName: ballerina.lang.function.0 fileName: function.bal lineNumber: 37
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 339
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 336
callableName: executeDataDrivenTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 136
callableName: executeDataDrivenTestSet moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 123
callableName: executeTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 83
callableName: executeTests moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 58
callableName: startSuite moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 48
callableName: __execute__ fileName: invalid-data-provider-test.bal lineNumber: 37
",functionName="testInvalidDataProvider")
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 349
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 346
callableName: executeDataDrivenTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 136
callableName: executeDataDrivenTestSet moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 123
callableName: executeTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 83
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ Running Tests
[fail data provider for the function testInvalidDataProvider2]
error {ballerina/test:0}ExecutionError ("error("{ballerina/lang.function}IncompatibleArguments",message="arguments of incompatible types: argument list '(int,int,int)' cannot be passed to function expecting parameter list '(string,string,string)'")
callableName: call moduleName: ballerina.lang.function.0 fileName: function.bal lineNumber: 37
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 339
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 336
callableName: executeDataDrivenTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 136
callableName: executeDataDrivenTestSet moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 123
callableName: executeTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 83
callableName: executeTests moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 58
callableName: startSuite moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 48
callableName: __execute__ fileName: invalid-data-provider-test2.bal lineNumber: 39
",functionName="testInvalidDataProvider2")
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 349
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 346
callableName: executeDataDrivenTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 136
callableName: executeDataDrivenTestSet moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 123
callableName: executeTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 83
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ Running Tests
[fail data provider for the function testInvalidTupleDataProvider]
error {ballerina/test:0}ExecutionError ("error("{ballerina/lang.function}IncompatibleArguments",message="arguments of incompatible types: argument list '(string,int)' cannot be passed to function expecting parameter list '(string,string)'")
callableName: call moduleName: ballerina.lang.function.0 fileName: function.bal lineNumber: 37
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 339
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 336
callableName: executeDataDrivenTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 136
callableName: executeDataDrivenTestSet moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 123
callableName: executeTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 83
callableName: executeTests moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 58
callableName: startSuite moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 48
callableName: __execute__ fileName: invalid-data-provider-test3.bal lineNumber: 36
",functionName="testInvalidTupleDataProvider")
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 349
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 346
callableName: executeDataDrivenTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 136
callableName: executeDataDrivenTestSet moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 123
callableName: executeTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 83
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Running Tests with Coverage
callableName: testDividingValuesNegative moduleName: intg_tests.dataproviders$test.0.tests.new-data-provider-tests fileName: tests/new-data-provider-tests.bal lineNumber: 191
callableName: testDividingValuesNegative$lambda14$ moduleName: intg_tests.dataproviders$test.0.tests.test_execute-generated_*****lineNumber: 18
",functionName="testDividingValuesNegative")
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 349
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 346
callableName: executeDataDrivenTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 136
callableName: executeDataDrivenTestSet moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 123
callableName: executeTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 83
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@ Running Tests
[fail data provider for the function testInvalidDataProvider]
error {ballerina/test:0}ExecutionError ("error("{ballerina/lang.function}IncompatibleArguments",message="arguments of incompatible types: argument list '(int)' cannot be passed to function expecting parameter list '(string)'")
callableName: call moduleName: ballerina.lang.function.0 fileName: function.bal lineNumber: 37
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 339
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 336
callableName: executeDataDrivenTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 136
callableName: executeDataDrivenTestSet moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 123
callableName: executeTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 83
callableName: executeTests moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 58
callableName: startSuite moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 48
callableName: __execute__ fileName: invalid-data-provider-test.bal lineNumber: 37
",functionName="testInvalidDataProvider")
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 349
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 346
callableName: executeDataDrivenTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 136
callableName: executeDataDrivenTestSet moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 123
callableName: executeTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 83
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ Running Tests
[fail data provider for the function testInvalidDataProvider2]
error {ballerina/test:0}ExecutionError ("error("{ballerina/lang.function}IncompatibleArguments",message="arguments of incompatible types: argument list '(int,int,int)' cannot be passed to function expecting parameter list '(string,string,string)'")
callableName: call moduleName: ballerina.lang.function.0 fileName: function.bal lineNumber: 37
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 339
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 336
callableName: executeDataDrivenTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 136
callableName: executeDataDrivenTestSet moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 123
callableName: executeTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 83
callableName: executeTests moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 58
callableName: startSuite moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 48
callableName: __execute__ fileName: invalid-data-provider-test2.bal lineNumber: 39
",functionName="testInvalidDataProvider2")
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 349
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 346
callableName: executeDataDrivenTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 136
callableName: executeDataDrivenTestSet moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 123
callableName: executeTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 83
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ Running Tests
[fail data provider for the function testInvalidTupleDataProvider]
error {ballerina/test:0}ExecutionError ("error("{ballerina/lang.function}IncompatibleArguments",message="arguments of incompatible types: argument list '(string,int)' cannot be passed to function expecting parameter list '(string,string)'")
callableName: call moduleName: ballerina.lang.function.0 fileName: function.bal lineNumber: 37
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 339
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 336
callableName: executeDataDrivenTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 136
callableName: executeDataDrivenTestSet moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 123
callableName: executeTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 83
callableName: executeTests moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 58
callableName: startSuite moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 48
callableName: __execute__ fileName: invalid-data-provider-test3.bal lineNumber: 36
",functionName="testInvalidTupleDataProvider")
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 349
callableName: executeTestFunction moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 346
callableName: executeDataDrivenTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 136
callableName: executeDataDrivenTestSet moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 123
callableName: executeTest moduleName: ballerina.test.0 fileName: execute.bal lineNumber: 83
Expand Down

0 comments on commit bea08a1

Please sign in to comment.