Skip to content

Test: Enable strict deprecation on all tests #36558

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jan 30, 2019
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,12 @@ private void createTestDoc(final String indexName, final String typeName) throws

public void testDocumentExists() throws IOException {
createTestDoc();
headTestCase("/test/test/1", emptyMap(), greaterThan(0));
headTestCase("/test/test/1", singletonMap("pretty", "true"), greaterThan(0));
headTestCase("/test/test/2", emptyMap(), NOT_FOUND.getStatus(), greaterThan(0));
headTestCase("/test/test/1", emptyMap(), OK.getStatus(), greaterThan(0),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we could switch to the _doc type in this test, so that we don't need to check deprecation warnings for get requests. The main purpose of the tests is to check how HEAD is handled, and not verify deprecation warnings (we do that in other places), so it could be nice to bring the test in line with the new API.

"[types removal] Specifying types in document get requests is deprecated, use the /{index}/_doc/{id} endpoint instead.");
headTestCase("/test/test/1", singletonMap("pretty", "true"), OK.getStatus(), greaterThan(0),
"[types removal] Specifying types in document get requests is deprecated, use the /{index}/_doc/{id} endpoint instead.");
headTestCase("/test/test/2", emptyMap(), NOT_FOUND.getStatus(), greaterThan(0),
"[types removal] Specifying types in document get requests is deprecated, use the /{index}/_doc/{id} endpoint instead.");
}

public void testIndexExists() throws IOException {
Expand All @@ -73,22 +76,20 @@ public void testIndexExists() throws IOException {
headTestCase("/test", singletonMap("pretty", "true"), greaterThan(0));
}

@Override
protected boolean getStrictDeprecationMode() {
// Remove this override when we remove the reference to types below
return false;
}

public void testTypeExists() throws IOException {
createTestDoc();
headTestCase("/test/_mapping/test", emptyMap(), greaterThan(0));
headTestCase("/test/_mapping/test", singletonMap("pretty", "true"), greaterThan(0));
headTestCase("/test/_mapping/test", emptyMap(), OK.getStatus(), greaterThan(0),
"Type exists requests are deprecated, as types have been deprecated.");
headTestCase("/test/_mapping/test", singletonMap("pretty", "true"), OK.getStatus(), greaterThan(0),
"Type exists requests are deprecated, as types have been deprecated.");
}

public void testTypeDoesNotExist() throws IOException {
createTestDoc();
headTestCase("/test/_mapping/does-not-exist", emptyMap(), NOT_FOUND.getStatus(), greaterThan(0));
headTestCase("/text/_mapping/test,does-not-exist", emptyMap(), NOT_FOUND.getStatus(), greaterThan(0));
headTestCase("/test/_mapping/does-not-exist", emptyMap(), NOT_FOUND.getStatus(), greaterThan(0),
"Type exists requests are deprecated, as types have been deprecated.");
headTestCase("/text/_mapping/test,does-not-exist", emptyMap(), NOT_FOUND.getStatus(), greaterThan(0),
"Type exists requests are deprecated, as types have been deprecated.");
}

public void testAliasExists() throws IOException {
Expand Down Expand Up @@ -197,11 +198,15 @@ private void headTestCase(
final String url,
final Map<String, String> params,
final int expectedStatusCode,
final Matcher<Integer> matcher) throws IOException {
final Matcher<Integer> matcher,
final String... expectedWarnings) throws IOException {
Request request = new Request("HEAD", url);
for (Map.Entry<String, String> param : params.entrySet()) {
request.addParameter(param.getKey(), param.getValue());
}
request.setOptions(expectVersionSpecificWarnings(w -> {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In #36511 I added expectWarnings, which is syntactic sugar for this call. It might be nice to switch to that when it merges (should be very soon).

w.current(expectedWarnings);
}));
Response response = client().performRequest(request);
assertEquals(expectedStatusCode, response.getStatusLine().getStatusCode());
assertThat(Integer.valueOf(response.getHeader("Content-Length")), matcher);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -681,22 +681,10 @@ protected String getProtocol() {
protected RestClient buildClient(Settings settings, HttpHost[] hosts) throws IOException {
RestClientBuilder builder = RestClient.builder(hosts);
configureClient(builder, settings);
builder.setStrictDeprecationMode(getStrictDeprecationMode());
builder.setStrictDeprecationMode(true);
return builder.build();
}

/**
* Whether the used REST client should return any response containing at
* least one warning header as a failure.
* @deprecated always run in strict mode and use
* {@link RequestOptions.Builder#setWarningsHandler} to override this
* behavior on individual requests
*/
@Deprecated
protected boolean getStrictDeprecationMode() {
return true;
}

protected static void configureClient(RestClientBuilder builder, Settings settings) throws IOException {
String keystorePath = settings.get(TRUSTSTORE_PATH);
if (keystorePath != null) {
Expand Down