[ML] Tolerate InternalAssumptionViolatedException in overridden test (elastic/x-pack-elasticsearch#1657)
In order for elastic/elasticsearch#25100 to work, overridden test()
methods that call ESClientYamlSuiteTestCase.test() must not consume
any InternalAssumptionViolatedException that
ESClientYamlSuiteTestCase.test() throws.
Relates elastic/x-pack-elasticsearch#1650
Original commit: elastic/x-pack-elasticsearch@081ccaa0a6f2ec12d149bfaf415b59935fbcbb50
@@ -22,12 +22,18 @@ public class MlWithSecurityInsufficientRoleIT extends MlWithSecurityIT {
@Override
public void test() throws IOException {
- AssertionError ae = expectThrows(AssertionError.class, super::test);
+ try {
+ // Cannot use expectThrows here because blacklisted tests will throw an
+ // InternalAssumptionViolatedException rather than an AssertionError
+ super.test();
+ fail("should have failed because of missing role");
+ } catch (AssertionError ae) {
assertThat(ae.getMessage(),
either(containsString("action [cluster:monitor/xpack/ml")).or(containsString("action [cluster:admin/xpack/ml")));
assertThat(ae.getMessage(), containsString("returned [403 Forbidden]"));
assertThat(ae.getMessage(), containsString("is unauthorized for user [no_ml]"));
}
+ }
@Override
protected String[] getCredentials() {
