Skip to content

Commit

Permalink
Msearch template API tests (#735)
Browse files Browse the repository at this point in the history
* added msearch template tests

Signed-off-by: Tokesh <tokesh789@gmail.com>

* lint fix

Signed-off-by: Tokesh <tokesh789@gmail.com>

* added core msearch template tests

Signed-off-by: Tokesh <tokesh789@gmail.com>

* added msearch get tests

Signed-off-by: Tokesh <tokesh789@gmail.com>

* renaming folders, using multiple methods, deleting default code

Signed-off-by: Tokesh <tokesh789@gmail.com>

---------

Signed-off-by: Tokesh <tokesh789@gmail.com>
Signed-off-by: Niyazbek Torekeldi <78027392+Tokesh@users.noreply.github.com>
  • Loading branch information
Tokesh authored Dec 17, 2024
1 parent b9e9c01 commit 4226d83
Show file tree
Hide file tree
Showing 6 changed files with 86 additions and 39 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
- Fixed request schema for `PATCH /_plugins/_security/api/nodesdn` ([#731](https://github.com/opensearch-project/opensearch-api-specification/pull/731))
- Fixed response schema for `GET /_plugins/_security/api/nodesdn/{cluster_name}` ([#731](https://github.com/opensearch-project/opensearch-api-specification/pull/731))
- Fixed request body for `/_search/scroll/{scroll_id}` ([#732](https://github.com/opensearch-project/opensearch-api-specification/pull/732))
- Fixed type in `_msearch/template` ([#735](https://github.com/opensearch-project/opensearch-api-specification/pull/735))

### Changed
- Changed `tasks._common:TaskInfo` and `tasks._common:TaskGroup` to be composed of a `tasks._common:TaskInfoBase` ([#683](https://github.com/opensearch-project/opensearch-api-specification/pull/683))
Expand Down
4 changes: 3 additions & 1 deletion spec/schemas/_core.msearch_template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ components:
The value is the variable value.
type: object
additionalProperties:
type: object
oneOf:
- type: string
- type: object
profile:
description: When `true`, provides a profile for the query execution.
type: boolean
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
$schema: ../../../json_schemas/test_story.schema.yaml
$schema: ../../../../json_schemas/test_story.schema.yaml

description: Test document multi-search.
epilogues:
Expand All @@ -25,7 +25,9 @@ prologues:
chapters:
- synopsis: Run multiple search requests in single request (GET).
path: /_msearch
method: GET
method:
- GET
- POST
request:
content_type: application/x-ndjson
payload:
Expand All @@ -52,34 +54,4 @@ chapters:
- _index: movies
_id: movie1
- _index: movies
_id: movie2
- synopsis: Run multiple search requests in single request (POST).
path: /_msearch
method: POST
request:
content_type: application/x-ndjson
payload:
- {index: movies}
- {query: {match_all: {}}}
- {index: books}
- {query: {match_all: {}}}
response:
status: 200
payload:
responses:
- hits:
total:
value: 2
relation: eq
hits:
- _index: movies
_id: movie1
- _index: movies
_id: movie2
- hits:
total:
value: 1
relation: eq
hits:
- _index: books
_id: book1
_id: movie2
35 changes: 35 additions & 0 deletions tests/default/_core/msearch/template.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
$schema: ../../../../json_schemas/test_story.schema.yaml

description: Test _msearch/template APIs.
prologues:
- path: /_bulk
method: POST
parameters:
refresh: true
request:
content_type: application/x-ndjson
payload:
- {create: {_index: books, _id: book1}}
- {author: Harper Lee, title: To Kill a Mockingbird, year: 1960}
- {create: {_index: books, _id: book2}}
- {author: Elizabeth Rudnick, title: Beauty and the Beast, year: 1991}
- {create: {_index: books, _id: book3}}
- {author: George Orwell, title: '1984', year: 1949}
epilogues:
- path: /books
method: DELETE
status: [200, 404]

chapters:
- synopsis: Perform a multi-search template query using a GET request.
path: /_msearch/template
method:
- GET
- POST
request:
content_type: application/x-ndjson
payload:
- {index: books}
- {source: '{"query": {"match": {"title": "{{title}}"}}}', params: {title: Mockingbird}}
- {index: books}
- {source: '{"query": {"match": {"title": "{{title}}"}}}', params: {title: Beast}}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
$schema: ../../../json_schemas/test_story.schema.yaml
$schema: ../../../../json_schemas/test_story.schema.yaml

description: Test endpoints relevant to the lifecycle of an index, including multi-get and multi-search operations.
prologues:
Expand All @@ -22,7 +22,9 @@ epilogues:
chapters:
- synopsis: Perform a `_msearch` request to execute multiple search queries in a single call.
path: /{index}/_msearch
method: POST
method:
- GET
- POST
parameters:
index: books
request:
Expand All @@ -31,6 +33,4 @@ chapters:
- {index: books}
- {query: {match: {title: To Kill a Mockingbird}}}
- {index: books}
- {query: {match: {title: The Cruise}}}
response:
status: 200
- {query: {match: {title: The Cruise}}}
37 changes: 37 additions & 0 deletions tests/default/indices/msearch/template.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
$schema: ../../../../json_schemas/test_story.schema.yaml

description: Test _msearch/template APIs.
prologues:
- path: /_bulk
method: POST
parameters:
refresh: true
request:
content_type: application/x-ndjson
payload:
- {create: {_index: books, _id: book1}}
- {author: Harper Lee, title: To Kill a Mockingbird, year: 1960}
- {create: {_index: books, _id: book2}}
- {author: Elizabeth Rudnick, title: Beauty and the Beast, year: 1991}
- {create: {_index: books, _id: book3}}
- {author: George Orwell, title: '1984', year: 1949}
epilogues:
- path: /books
method: DELETE
status: [200, 404]

chapters:
- synopsis: Perform a multi-search template query using a GET request.
path: /{index}/_msearch/template
parameters:
index: books
method:
- GET
- POST
request:
content_type: application/x-ndjson
payload:
- {index: books}
- {source: '{"query": {"match": {"title": "{{title}}"}}}', params: {title: Mockingbird}}
- {index: books}
- {source: '{"query": {"match": {"title": "{{title}}"}}}', params: {title: Beast}}

0 comments on commit 4226d83

Please sign in to comment.