elasticsearch-api 1.0.6 → 1.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +16 -0
- data/Rakefile +3 -3
- data/elasticsearch-api.gemspec +4 -1
- data/lib/elasticsearch/api.rb +19 -0
- data/lib/elasticsearch/api/actions/abort_benchmark.rb +1 -1
- data/lib/elasticsearch/api/actions/benchmark.rb +1 -1
- data/lib/elasticsearch/api/actions/bulk.rb +1 -1
- data/lib/elasticsearch/api/actions/cat/aliases.rb +1 -1
- data/lib/elasticsearch/api/actions/cat/allocation.rb +1 -1
- data/lib/elasticsearch/api/actions/cat/count.rb +1 -1
- data/lib/elasticsearch/api/actions/cat/fielddata.rb +1 -1
- data/lib/elasticsearch/api/actions/cat/health.rb +1 -1
- data/lib/elasticsearch/api/actions/cat/help.rb +1 -1
- data/lib/elasticsearch/api/actions/cat/indices.rb +1 -1
- data/lib/elasticsearch/api/actions/cat/master.rb +1 -1
- data/lib/elasticsearch/api/actions/cat/nodes.rb +1 -1
- data/lib/elasticsearch/api/actions/cat/pending_tasks.rb +1 -1
- data/lib/elasticsearch/api/actions/cat/recovery.rb +1 -1
- data/lib/elasticsearch/api/actions/cat/segments.rb +34 -0
- data/lib/elasticsearch/api/actions/cat/shards.rb +1 -1
- data/lib/elasticsearch/api/actions/cat/thread_pool.rb +1 -1
- data/lib/elasticsearch/api/actions/clear_scroll.rb +12 -3
- data/lib/elasticsearch/api/actions/cluster/get_settings.rb +1 -1
- data/lib/elasticsearch/api/actions/cluster/health.rb +1 -1
- data/lib/elasticsearch/api/actions/cluster/pending_tasks.rb +1 -1
- data/lib/elasticsearch/api/actions/cluster/put_settings.rb +1 -1
- data/lib/elasticsearch/api/actions/cluster/reroute.rb +1 -1
- data/lib/elasticsearch/api/actions/cluster/state.rb +8 -2
- data/lib/elasticsearch/api/actions/count.rb +1 -1
- data/lib/elasticsearch/api/actions/count_percolate.rb +1 -1
- data/lib/elasticsearch/api/actions/delete.rb +1 -1
- data/lib/elasticsearch/api/actions/delete_by_query.rb +1 -1
- data/lib/elasticsearch/api/actions/delete_script.rb +1 -1
- data/lib/elasticsearch/api/actions/delete_template.rb +1 -1
- data/lib/elasticsearch/api/actions/exists.rb +4 -2
- data/lib/elasticsearch/api/actions/explain.rb +1 -1
- data/lib/elasticsearch/api/actions/get.rb +2 -2
- data/lib/elasticsearch/api/actions/get_script.rb +1 -1
- data/lib/elasticsearch/api/actions/get_source.rb +2 -2
- data/lib/elasticsearch/api/actions/get_template.rb +1 -1
- data/lib/elasticsearch/api/actions/index.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/analyze.rb +5 -3
- data/lib/elasticsearch/api/actions/indices/clear_cache.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/close.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/create.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/delete.rb +7 -1
- data/lib/elasticsearch/api/actions/indices/delete_alias.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/delete_mapping.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/delete_template.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/delete_warmer.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/exists.rb +3 -1
- data/lib/elasticsearch/api/actions/indices/exists_alias.rb +3 -1
- data/lib/elasticsearch/api/actions/indices/exists_template.rb +3 -2
- data/lib/elasticsearch/api/actions/indices/exists_type.rb +3 -1
- data/lib/elasticsearch/api/actions/indices/flush.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/get.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/get_alias.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/get_aliases.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/get_field_mapping.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/get_mapping.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/get_settings.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/get_template.rb +3 -2
- data/lib/elasticsearch/api/actions/indices/get_warmer.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/open.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/optimize.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/put_alias.rb +2 -2
- data/lib/elasticsearch/api/actions/indices/put_mapping.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/put_settings.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/put_template.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/put_warmer.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/recovery.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/refresh.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/segments.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/snapshot_index.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/stats.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/status.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/update_aliases.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/upgrade.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/validate_query.rb +1 -1
- data/lib/elasticsearch/api/actions/info.rb +1 -1
- data/lib/elasticsearch/api/actions/list_benchmarks.rb +1 -1
- data/lib/elasticsearch/api/actions/mget.rb +1 -1
- data/lib/elasticsearch/api/actions/mlt.rb +1 -1
- data/lib/elasticsearch/api/actions/mpercolate.rb +1 -1
- data/lib/elasticsearch/api/actions/msearch.rb +1 -1
- data/lib/elasticsearch/api/actions/mtermvectors.rb +1 -1
- data/lib/elasticsearch/api/actions/nodes/hot_threads.rb +1 -1
- data/lib/elasticsearch/api/actions/nodes/info.rb +18 -2
- data/lib/elasticsearch/api/actions/nodes/shutdown.rb +1 -1
- data/lib/elasticsearch/api/actions/nodes/stats.rb +1 -1
- data/lib/elasticsearch/api/actions/percolate.rb +4 -5
- data/lib/elasticsearch/api/actions/ping.rb +1 -1
- data/lib/elasticsearch/api/actions/put_script.rb +1 -1
- data/lib/elasticsearch/api/actions/put_template.rb +1 -1
- data/lib/elasticsearch/api/actions/scroll.rb +2 -2
- data/lib/elasticsearch/api/actions/search.rb +4 -3
- data/lib/elasticsearch/api/actions/search_shards.rb +1 -1
- data/lib/elasticsearch/api/actions/search_template.rb +1 -1
- data/lib/elasticsearch/api/actions/snapshot/create.rb +1 -1
- data/lib/elasticsearch/api/actions/snapshot/create_repository.rb +1 -1
- data/lib/elasticsearch/api/actions/snapshot/delete.rb +1 -1
- data/lib/elasticsearch/api/actions/snapshot/delete_repository.rb +1 -1
- data/lib/elasticsearch/api/actions/snapshot/get.rb +1 -1
- data/lib/elasticsearch/api/actions/snapshot/get_repository.rb +1 -1
- data/lib/elasticsearch/api/actions/snapshot/restore.rb +1 -1
- data/lib/elasticsearch/api/actions/snapshot/status.rb +1 -1
- data/lib/elasticsearch/api/actions/snapshot/verify_repository.rb +1 -1
- data/lib/elasticsearch/api/actions/suggest.rb +1 -1
- data/lib/elasticsearch/api/actions/{termvector.rb → termvectors.rb} +24 -7
- data/lib/elasticsearch/api/actions/update.rb +1 -1
- data/lib/elasticsearch/api/utils.rb +27 -6
- data/lib/elasticsearch/api/version.rb +1 -1
- data/test/integration/yaml_test_runner.rb +3 -2
- data/test/unit/api_test.rb +24 -0
- data/test/unit/cat/segments_test.rb +26 -0
- data/test/unit/clear_scroll_test.rb +4 -4
- data/test/unit/exists_document_test.rb +5 -0
- data/test/unit/indices/delete_test.rb +7 -0
- data/test/unit/indices/exists_alias_test.rb +5 -0
- data/test/unit/indices/exists_test.rb +5 -0
- data/test/unit/indices/exists_type_test.rb +5 -0
- data/test/unit/indices/put_alias_test.rb +9 -0
- data/test/unit/nodes/info_test.rb +9 -0
- data/test/unit/scroll_test.rb +1 -2
- data/test/unit/{termvector_test.rb → termvectors_test.rb} +15 -12
- data/test/unit/utils_test.rb +22 -0
- data/utils/Gemfile +9 -0
- data/utils/Thorfile +3 -0
- data/utils/thor/generate_api.rb +189 -0
- data/utils/thor/generate_source.rb +122 -0
- data/utils/thor/lister.rb +41 -0
- data/utils/thor/templates/ruby/method.erb +62 -0
- data/utils/thor/templates/ruby/test.erb +26 -0
- data/utils/thor/templates/ruby/test_helper.rb +71 -0
- metadata +18 -5
@@ -39,7 +39,7 @@ module Elasticsearch
|
|
39
39
|
repository = arguments.delete(:repository)
|
40
40
|
snapshot = arguments.delete(:snapshot)
|
41
41
|
|
42
|
-
method =
|
42
|
+
method = HTTP_POST
|
43
43
|
path = Utils.__pathify( '_snapshot', Utils.__escape(repository), Utils.__escape(snapshot), '_restore' )
|
44
44
|
|
45
45
|
params = Utils.__validate_and_extract_params arguments, valid_params
|
@@ -26,7 +26,7 @@ module Elasticsearch
|
|
26
26
|
repository = arguments.delete(:repository)
|
27
27
|
snapshot = arguments.delete(:snapshot)
|
28
28
|
|
29
|
-
method =
|
29
|
+
method = HTTP_GET
|
30
30
|
|
31
31
|
path = Utils.__pathify( '_snapshot', Utils.__escape(repository), Utils.__escape(snapshot), '_status')
|
32
32
|
params = Utils.__validate_and_extract_params arguments, valid_params
|
@@ -20,7 +20,7 @@ module Elasticsearch
|
|
20
20
|
:timeout ]
|
21
21
|
|
22
22
|
repository = arguments.delete(:repository)
|
23
|
-
method =
|
23
|
+
method = HTTP_POST
|
24
24
|
path = Utils.__pathify( '_snapshot', Utils.__escape(repository), '_verify' )
|
25
25
|
params = Utils.__validate_and_extract_params arguments, valid_params
|
26
26
|
body = nil
|
@@ -4,7 +4,7 @@ module Elasticsearch
|
|
4
4
|
|
5
5
|
# Return information and statistics about terms in the fields of a particular document
|
6
6
|
#
|
7
|
-
# @example Get statistics for
|
7
|
+
# @example Get statistics for an indexed document
|
8
8
|
#
|
9
9
|
# client.indices.create index: 'my_index',
|
10
10
|
# body: {
|
@@ -22,12 +22,23 @@ module Elasticsearch
|
|
22
22
|
#
|
23
23
|
# client.index index: 'my_index', type: 'my_type', id: '1', body: { text: 'Foo Bar Fox' }
|
24
24
|
#
|
25
|
-
# client.
|
25
|
+
# client.termvectors index: 'my_index', type: 'my_type', id: '1'
|
26
|
+
# # => { ..., "term_vectors" => { "text" => { "field_statistics" => { ... }, "terms" => { "bar" => ... } } }
|
27
|
+
#
|
28
|
+
#
|
29
|
+
# @example Get statistics for an arbitrary document
|
30
|
+
#
|
31
|
+
# client.termvector index: 'my_index', type: 'my_type',
|
32
|
+
# body: {
|
33
|
+
# doc: {
|
34
|
+
# text: 'Foo Bar Fox'
|
35
|
+
# }
|
36
|
+
# }
|
26
37
|
# # => { ..., "term_vectors" => { "text" => { "field_statistics" => { ... }, "terms" => { "bar" => ... } } }
|
27
38
|
#
|
28
39
|
# @option arguments [String] :index The name of the index (*Required*)
|
29
40
|
# @option arguments [String] :type The type of the document (*Required*)
|
30
|
-
# @option arguments [String] :id The document ID
|
41
|
+
# @option arguments [String] :id The document ID
|
31
42
|
# @option arguments [Hash] :body The request definition
|
32
43
|
# @option arguments [Boolean] :term_statistics Whether total term frequency and
|
33
44
|
# document frequency should be returned
|
@@ -46,10 +57,9 @@ module Elasticsearch
|
|
46
57
|
#
|
47
58
|
# @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/docs-termvectors.html
|
48
59
|
#
|
49
|
-
def
|
60
|
+
def termvectors(arguments={})
|
50
61
|
raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
|
51
62
|
raise ArgumentError, "Required argument 'type' missing" unless arguments[:type]
|
52
|
-
raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
|
53
63
|
|
54
64
|
valid_params = [
|
55
65
|
:term_statistics,
|
@@ -63,18 +73,25 @@ module Elasticsearch
|
|
63
73
|
:routing,
|
64
74
|
:parent ]
|
65
75
|
|
66
|
-
method =
|
76
|
+
method = HTTP_GET
|
77
|
+
endpoint = arguments.delete(:endpoint) || '_termvectors'
|
67
78
|
|
68
79
|
path = Utils.__pathify Utils.__escape(arguments[:index]),
|
69
80
|
Utils.__escape(arguments[:type]),
|
70
81
|
arguments[:id],
|
71
|
-
|
82
|
+
endpoint
|
72
83
|
|
73
84
|
params = Utils.__validate_and_extract_params arguments, valid_params
|
74
85
|
body = arguments[:body]
|
75
86
|
|
76
87
|
perform_request(method, path, params, body).body
|
77
88
|
end
|
89
|
+
|
90
|
+
# @deprecated Use the plural version, {#termvectors}
|
91
|
+
#
|
92
|
+
def termvector(arguments={})
|
93
|
+
termvectors(arguments.merge :endpoint => '_termvector')
|
94
|
+
end
|
78
95
|
end
|
79
96
|
end
|
80
97
|
end
|
@@ -110,24 +110,45 @@ module Elasticsearch
|
|
110
110
|
# @raise [ArgumentError] If the arguments Hash contains invalid keys
|
111
111
|
#
|
112
112
|
# @example Extract parameters
|
113
|
-
# __validate_and_extract_params { :foo => 'qux' }, [:foo, :bar]
|
113
|
+
# __validate_and_extract_params( { :foo => 'qux' }, [:foo, :bar] )
|
114
114
|
# # => { :foo => 'qux' }
|
115
115
|
#
|
116
116
|
# @example Raise an exception for invalid parameters
|
117
|
-
# __validate_and_extract_params { :foo => 'qux', :bam => 'mux' }, [:foo, :bar]
|
117
|
+
# __validate_and_extract_params( { :foo => 'qux', :bam => 'mux' }, [:foo, :bar] )
|
118
118
|
# # ArgumentError: "URL parameter 'bam' is not supported"
|
119
119
|
#
|
120
|
+
# @example Skip validating parameters
|
121
|
+
# __validate_and_extract_params( { :foo => 'q', :bam => 'm' }, [:foo, :bar], { skip_parameter_validation: true } )
|
122
|
+
# # => { :foo => "q", :bam => "m" }
|
123
|
+
#
|
124
|
+
# @example Skip validating parameters when the module setting is set
|
125
|
+
# Elasticsearch::API.settings[:skip_parameter_validation] = true
|
126
|
+
# __validate_and_extract_params( { :foo => 'q', :bam => 'm' }, [:foo, :bar] )
|
127
|
+
# # => { :foo => "q", :bam => "m" }
|
128
|
+
#
|
120
129
|
# @api private
|
121
130
|
#
|
122
|
-
def __validate_and_extract_params(arguments,
|
131
|
+
def __validate_and_extract_params(arguments, params=[], options={})
|
132
|
+
if options[:skip_parameter_validation] || Elasticsearch::API.settings[:skip_parameter_validation]
|
133
|
+
arguments
|
134
|
+
else
|
135
|
+
__validate_params(arguments, params)
|
136
|
+
__extract_params(arguments, params)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
def __validate_params(arguments, valid_params=[])
|
123
141
|
arguments.each do |k,v|
|
124
142
|
raise ArgumentError, "URL parameter '#{k}' is not supported" \
|
125
143
|
unless COMMON_PARAMS.include?(k) || COMMON_QUERY_PARAMS.include?(k) || valid_params.include?(k)
|
126
144
|
end
|
145
|
+
end
|
127
146
|
|
128
|
-
|
129
|
-
|
130
|
-
|
147
|
+
def __extract_params(arguments, params=[])
|
148
|
+
result = arguments.select { |k,v| COMMON_QUERY_PARAMS.include?(k) || params.include?(k) }
|
149
|
+
result = Hash[result] unless result.is_a?(Hash) # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
|
150
|
+
result = Hash[result.map { |k,v| v.is_a?(Array) ? [k, __listify(v)] : [k,v] }] # Listify Arrays
|
151
|
+
result
|
131
152
|
end
|
132
153
|
|
133
154
|
# Extracts the valid parts of the URL from the arguments
|
@@ -14,7 +14,8 @@ require 'elasticsearch/extensions/test/startup_shutdown'
|
|
14
14
|
require 'elasticsearch/extensions/test/profiling' unless JRUBY
|
15
15
|
|
16
16
|
# Skip features
|
17
|
-
|
17
|
+
skip_features = 'stash_in_path,requires_replica'
|
18
|
+
SKIP_FEATURES = ENV.fetch('TEST_SKIP_FEATURES', skip_features)
|
18
19
|
|
19
20
|
# Turn configuration
|
20
21
|
ENV['ansi'] = 'false' if ENV['CI']
|
@@ -261,7 +262,7 @@ end
|
|
261
262
|
include Elasticsearch::YamlTestSuite
|
262
263
|
|
263
264
|
PATH = Pathname(ENV['TEST_REST_API_SPEC'] || \
|
264
|
-
File.expand_path('../../../../
|
265
|
+
File.expand_path('../../../../tmp/elasticsearch/rest-api-spec/test', __FILE__))
|
265
266
|
suites = Dir.glob(PATH.join('*')).map { |d| Pathname(d) }
|
266
267
|
suites = suites.select { |s| s.to_s =~ Regexp.new(ENV['FILTER']) } if ENV['FILTER']
|
267
268
|
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
module Elasticsearch
|
6
|
+
module Test
|
7
|
+
class APITest < ::Test::Unit::TestCase
|
8
|
+
|
9
|
+
context "The API module" do
|
10
|
+
|
11
|
+
should "access the settings" do
|
12
|
+
assert_not_nil Elasticsearch::API.settings
|
13
|
+
end
|
14
|
+
|
15
|
+
should "allow to set settings" do
|
16
|
+
assert_nothing_raised { Elasticsearch::API.settings[:foo] = 'bar' }
|
17
|
+
assert_equal 'bar', Elasticsearch::API.settings[:foo]
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module Elasticsearch
|
4
|
+
module Test
|
5
|
+
class CatSegmentsTest < ::Test::Unit::TestCase
|
6
|
+
|
7
|
+
context "Cat: Segments" do
|
8
|
+
subject { FakeClient.new }
|
9
|
+
|
10
|
+
should "perform correct request" do
|
11
|
+
subject.expects(:perform_request).with do |method, url, params, body|
|
12
|
+
assert_equal 'GET', method
|
13
|
+
assert_equal '_cat/segments', url
|
14
|
+
assert_equal Hash.new, params
|
15
|
+
assert_nil body
|
16
|
+
true
|
17
|
+
end.returns(FakeResponse.new)
|
18
|
+
|
19
|
+
subject.cat.segments
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -10,9 +10,9 @@ module Elasticsearch
|
|
10
10
|
should "perform correct request" do
|
11
11
|
subject.expects(:perform_request).with do |method, url, params, body|
|
12
12
|
assert_equal 'DELETE', method
|
13
|
-
assert_equal '_search/scroll
|
13
|
+
assert_equal '_search/scroll', url
|
14
14
|
assert_equal Hash.new, params
|
15
|
-
|
15
|
+
assert_equal 'abc123', body
|
16
16
|
true
|
17
17
|
end.returns(FakeResponse.new)
|
18
18
|
|
@@ -22,9 +22,9 @@ module Elasticsearch
|
|
22
22
|
should "listify scroll IDs" do
|
23
23
|
subject.expects(:perform_request).with do |method, url, params, body|
|
24
24
|
assert_equal 'DELETE', method
|
25
|
-
assert_equal '_search/scroll
|
25
|
+
assert_equal '_search/scroll', url
|
26
26
|
assert_equal Hash.new, params
|
27
|
-
|
27
|
+
assert_equal 'abc123,def456', body
|
28
28
|
true
|
29
29
|
end.returns(FakeResponse.new)
|
30
30
|
|
@@ -78,6 +78,11 @@ module Elasticsearch
|
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
|
+
should "be aliased as predicate method" do
|
82
|
+
assert_nothing_raised do
|
83
|
+
subject.exists?(:index => 'foo', :type => 'bar', :id => '1') == subject.exists(:index => 'foo', :type => 'bar', :id => '1')
|
84
|
+
end
|
85
|
+
end
|
81
86
|
end
|
82
87
|
|
83
88
|
end
|
@@ -47,6 +47,13 @@ module Elasticsearch
|
|
47
47
|
subject.indices.delete :index => 'foo^bar'
|
48
48
|
end
|
49
49
|
|
50
|
+
should "catch a NotFound exception with the ignore parameter" do
|
51
|
+
subject.expects(:perform_request).raises(NotFound)
|
52
|
+
|
53
|
+
assert_nothing_raised do
|
54
|
+
subject.indices.delete :index => 'foo', :ignore => 404
|
55
|
+
end
|
56
|
+
end
|
50
57
|
end
|
51
58
|
|
52
59
|
end
|
@@ -61,6 +61,11 @@ module Elasticsearch
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
+
should "be aliased as predicate method" do
|
65
|
+
assert_nothing_raised do
|
66
|
+
subject.indices.exists_type?(:index => 'foo', :type => 'bar') == subject.indices.exists_type(:index => 'foo', :type => 'bar')
|
67
|
+
end
|
68
|
+
end
|
64
69
|
end
|
65
70
|
|
66
71
|
end
|
@@ -34,6 +34,15 @@ module Elasticsearch
|
|
34
34
|
subject.indices.put_alias :index => 'foo', :name => 'bar', :body => { :filter => 'foo' }
|
35
35
|
end
|
36
36
|
|
37
|
+
should "Listify indices" do
|
38
|
+
subject.expects(:perform_request).with do |method, url, params, body|
|
39
|
+
assert_equal 'foo,bar/_alias/bar%2Fbam', url
|
40
|
+
true
|
41
|
+
end.returns(FakeResponse.new)
|
42
|
+
|
43
|
+
subject.indices.put_alias :index => ['foo', 'bar'], :name => 'bar/bam', :body => {}
|
44
|
+
end
|
45
|
+
|
37
46
|
should "URL-escape the parts" do
|
38
47
|
subject.expects(:perform_request).with do |method, url, params, body|
|
39
48
|
assert_equal 'foo%5Ebar/_alias/bar%2Fbam', url
|
@@ -59,6 +59,15 @@ module Elasticsearch
|
|
59
59
|
subject.nodes.info :format => 'yaml'
|
60
60
|
end
|
61
61
|
|
62
|
+
should "encode metrics" do
|
63
|
+
subject.expects(:perform_request).with do |method, url, params, body|
|
64
|
+
assert_equal '_nodes/http,network', url
|
65
|
+
assert_nil params[:metric]
|
66
|
+
true
|
67
|
+
end.returns(FakeResponse.new)
|
68
|
+
|
69
|
+
subject.nodes.info :metric => ['http', 'network']
|
70
|
+
end
|
62
71
|
end
|
63
72
|
|
64
73
|
end
|
data/test/unit/scroll_test.rb
CHANGED
@@ -11,8 +11,7 @@ module Elasticsearch
|
|
11
11
|
subject.expects(:perform_request).with do |method, url, params, body|
|
12
12
|
assert_equal 'GET', method
|
13
13
|
assert_equal '_search/scroll', url
|
14
|
-
assert_equal 'cXVlcn...',
|
15
|
-
assert_nil body
|
14
|
+
assert_equal 'cXVlcn...', body
|
16
15
|
true
|
17
16
|
end.returns(FakeResponse.new)
|
18
17
|
|
@@ -2,39 +2,42 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
module Elasticsearch
|
4
4
|
module Test
|
5
|
-
class
|
5
|
+
class TermvectorsTest < ::Test::Unit::TestCase
|
6
6
|
|
7
|
-
context "
|
7
|
+
context "Termvectors" do
|
8
8
|
subject { FakeClient.new }
|
9
9
|
|
10
10
|
should "require the :index argument" do
|
11
11
|
assert_raise ArgumentError do
|
12
|
-
subject.
|
12
|
+
subject.termvectors :type => 'bar', :id => '1'
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
16
|
should "require the :type argument" do
|
17
17
|
assert_raise ArgumentError do
|
18
|
-
subject.
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
should "require the :id argument" do
|
23
|
-
assert_raise ArgumentError do
|
24
|
-
subject.termvector :index => 'foo', :type => 'bar'
|
18
|
+
subject.termvectors :index => 'foo', :id => '1'
|
25
19
|
end
|
26
20
|
end
|
27
21
|
|
28
22
|
should "perform correct request" do
|
29
23
|
subject.expects(:perform_request).with do |method, url, params, body|
|
30
24
|
assert_equal 'GET', method
|
31
|
-
assert_equal 'foo/bar/123/
|
25
|
+
assert_equal 'foo/bar/123/_termvectors', url
|
32
26
|
assert_equal Hash.new, params
|
33
27
|
assert_equal Hash.new, body
|
34
28
|
true
|
35
29
|
end.returns(FakeResponse.new)
|
36
30
|
|
37
|
-
subject.
|
31
|
+
subject.termvectors :index => 'foo', :type => 'bar', :id => '123', :body => {}
|
32
|
+
end
|
33
|
+
|
34
|
+
should "be aliased to singular for older versions" do
|
35
|
+
subject.expects(:perform_request).with do |method, url, params, body|
|
36
|
+
assert_equal 'foo/bar/123/_termvector', url
|
37
|
+
true
|
38
|
+
end.returns(FakeResponse.new)
|
39
|
+
|
40
|
+
subject.termvector :index => 'foo', :type => 'bar', :id => '123'
|
38
41
|
end
|
39
42
|
|
40
43
|
end
|
data/test/unit/utils_test.rb
CHANGED
@@ -141,6 +141,9 @@ module Elasticsearch
|
|
141
141
|
end
|
142
142
|
|
143
143
|
context "__validate_and_extract_params" do
|
144
|
+
teardown do
|
145
|
+
Elasticsearch::API.settings.clear
|
146
|
+
end
|
144
147
|
|
145
148
|
should "extract valid params from a Hash" do
|
146
149
|
assert_equal( {:foo => 'qux'},
|
@@ -164,6 +167,25 @@ module Elasticsearch
|
|
164
167
|
__validate_and_extract_params( { :format => 'yaml' } ) )
|
165
168
|
end
|
166
169
|
|
170
|
+
should "not validate parameters when the option is set" do
|
171
|
+
assert_nothing_raised do
|
172
|
+
result = __validate_and_extract_params( { :foo => 'q', :bam => 'm' }, [:foo, :bar], { :skip_parameter_validation => true } )
|
173
|
+
assert_equal( { :foo => 'q', :bam => 'm' }, result )
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
should "not validate parameters when the module setting is set" do
|
178
|
+
assert_nothing_raised do
|
179
|
+
Elasticsearch::API.settings[:skip_parameter_validation] = true
|
180
|
+
result = __validate_and_extract_params( { :foo => 'q', :bam => 'm' }, [:foo, :bar] )
|
181
|
+
assert_equal( { :foo => 'q', :bam => 'm' }, result )
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
should "listify Arrays" do
|
186
|
+
result = __validate_and_extract_params( { :foo => ['a', 'b'] }, [:foo] )
|
187
|
+
assert_equal( { :foo => 'a,b'}, result )
|
188
|
+
end
|
167
189
|
end
|
168
190
|
|
169
191
|
context "__extract_parts" do
|