elastomer-client 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -33,15 +33,6 @@ describe Elastomer::Client::Cluster do
33
33
  template = @template.get
34
34
  assert_equal [@name], template.keys
35
35
  assert_equal "test-elastomer*", template[@name]["template"]
36
-
37
- if es_version_1_x?
38
- assert_equal "3", template[@name]["settings"]["index.number_of_shards"]
39
-
40
- elsif es_version_2_x?
41
- assert_equal "3", template[@name]["settings"]["index"]["number_of_shards"]
42
-
43
- else
44
- assert false, "Unsupported Elasticsearch version #{$client.semantic_version}"
45
- end
36
+ assert_equal "3", template[@name]["settings"]["index"]["number_of_shards"]
46
37
  end
47
38
  end
@@ -28,13 +28,7 @@ describe Elastomer::Client do
28
28
  assert false, "exception was not raised when it should have been"
29
29
  rescue Elastomer::Client::Error => err
30
30
  assert_equal 404, err.status
31
- if es_version_1_x?
32
- assert_equal "IndexMissingException[[non-existent-index] missing]", err.message
33
- elsif es_version_2_x?
34
- assert_match %r/index_not_found_exception/, err.message
35
- else
36
- fail "Elasticserch #{$client.version} is not supported"
37
- end
31
+ assert_match %r/index_not_found_exception/, err.message
38
32
  end
39
33
  end
40
34
 
@@ -3,8 +3,8 @@ require File.expand_path("../../test_helper", __FILE__)
3
3
  describe Elastomer::Middleware::EncodeJson do
4
4
  let(:middleware) { Elastomer::Middleware::EncodeJson.new(lambda {|env| env})}
5
5
 
6
- def process(body, content_type = nil)
7
- env = { :body => body, :request_headers => Faraday::Utils::Headers.new }
6
+ def process(body, content_type: nil, method: :post)
7
+ env = { :body => body, :request_headers => Faraday::Utils::Headers.new, method: method }
8
8
  env[:request_headers]["content-type"] = content_type if content_type
9
9
  middleware.call(env)
10
10
  end
@@ -12,12 +12,20 @@ describe Elastomer::Middleware::EncodeJson do
12
12
  it "handles no body" do
13
13
  result = process(nil)
14
14
  assert_nil result[:body]
15
+ assert_equal "application/json", result[:request_headers]["content-type"]
16
+
17
+ result = process(nil, method: :get)
18
+ assert_nil result[:body]
15
19
  assert_nil result[:request_headers]["content-type"]
16
20
  end
17
21
 
18
22
  it "handles empty body" do
19
23
  result = process("")
20
24
  assert_empty result[:body]
25
+ assert_equal "application/json", result[:request_headers]["content-type"]
26
+
27
+ result = process("", method: :get)
28
+ assert_empty result[:body]
21
29
  assert_nil result[:request_headers]["content-type"]
22
30
  end
23
31
 
@@ -40,13 +48,13 @@ describe Elastomer::Middleware::EncodeJson do
40
48
  end
41
49
 
42
50
  it "handles object body with json type" do
43
- result = process({:a => 1}, "application/json; charset=utf-8")
51
+ result = process({:a => 1}, content_type: "application/json; charset=utf-8")
44
52
  assert_equal '{"a":1}', result[:body]
45
53
  assert_equal "application/json; charset=utf-8", result[:request_headers]["content-type"]
46
54
  end
47
55
 
48
56
  it "handles object body with incompatible type" do
49
- result = process({:a => 1}, "application/xml; charset=utf-8")
57
+ result = process({:a => 1}, content_type: "application/xml; charset=utf-8")
50
58
  assert_equal({:a => 1}, result[:body])
51
59
  assert_equal "application/xml; charset=utf-8", result[:request_headers]["content-type"]
52
60
  end
@@ -46,10 +46,10 @@ describe Elastomer::Notifications do
46
46
 
47
47
  it "instruments index actions" do
48
48
  @index.exists?; assert_action_event("index.exists")
49
- @index.create("number_of_replicas" => 0)
49
+ @index.create(default_index_settings)
50
50
  assert_action_event("index.create")
51
51
  @index.get_settings; assert_action_event("index.get_settings")
52
- @index.update_settings("number_of_replicas" => 0)
52
+ @index.update_settings(number_of_replicas: 0)
53
53
  assert_action_event("index.get_settings")
54
54
  @index.close; assert_action_event("index.close")
55
55
  @index.open; assert_action_event("index.open")
@@ -57,13 +57,13 @@ describe Elastomer::Notifications do
57
57
  end
58
58
 
59
59
  it "includes the response body in the payload" do
60
- @index.create("number_of_replicas" => 0)
60
+ @index.create(default_index_settings)
61
61
  event = @events.detect { |e| e.payload[:action] == "index.create" }
62
62
  assert event.payload[:response_body]
63
63
  end
64
64
 
65
65
  it "includes the request body in the payload" do
66
- @index.create("number_of_replicas" => 0)
66
+ @index.create(default_index_settings)
67
67
  event = @events.detect { |e| e.payload[:action] == "index.create" }
68
68
 
69
69
  payload = event.payload
@@ -25,7 +25,7 @@ require "elastomer/client"
25
25
  # we are going to use the same client instance everywhere!
26
26
  # the client should always be stateless
27
27
  $client_params = {
28
- :port => 9200,
28
+ :port => ENV.fetch("ES_PORT", 9200),
29
29
  :read_timeout => 10,
30
30
  :open_timeout => 1,
31
31
  :opaque_id => false
@@ -84,16 +84,6 @@ def wait_for_index(name, status="yellow")
84
84
  )
85
85
  end
86
86
 
87
- # Elasticsearch 1.0 changed some request formats in a non-backward-compatible
88
- # way. Some tests need to know what version is running to structure requests
89
- # as expected.
90
- #
91
- # Returns true if Elasticsearch version is 1.x.
92
- def es_version_1_x?
93
- $client.semantic_version >= "1.0.0" &&
94
- $client.semantic_version < "2.0.0"
95
- end
96
-
97
87
  # Elasticsearch 2.0 changed some request formats in a non-backward-compatible
98
88
  # way. Some tests need to know what version is running to structure requests
99
89
  # as expected.
@@ -104,41 +94,18 @@ def es_version_2_x?
104
94
  $client.semantic_version < "3.0.0"
105
95
  end
106
96
 
107
- # Elasticsearch 1.4 changed the response body for interacting with index
108
- # aliases. If an index does not contain any aliases, then an "aliases" key is no
109
- # longer returned in the response.
110
- #
111
- # Returns `true` if the response contains an "aliases" key.
112
- def es_version_always_returns_aliases?
113
- $client.semantic_version < "1.4.0" ||
114
- $client.semantic_version >= "1.4.3"
115
- end
116
-
117
- # Elasticsearch 1.3 added the `search_shards` API endpoint.
118
- def es_version_supports_search_shards?
119
- $client.semantic_version >= "1.3.0"
120
- end
121
-
122
- # Elasticsearch 1.2 removed support for gateway snapshots.
123
- #
124
- # Returns true if Elasticsearch version supports gateway snapshots.
125
- def es_version_supports_gateway_snapshots?
126
- $client.semantic_version <= "1.2.0"
127
- end
128
-
129
- # Elasticsearch 1.4.0 had a bug in its handling of the Mapping API where it
130
- # would not accept an Update request if the index had been created with the
131
- # _all field set to disabled. This bug was fixed in 1.4.1.
97
+ # Elasticsearch 5.0 changed some request formats in a non-backward-compatible
98
+ # way. Some tests need to know what version is running to structure requests
99
+ # as expected.
132
100
  #
133
- # See: https://github.com/elastic/elasticsearch/pull/8426
134
- def es_version_supports_update_mapping_with__all_disabled?
135
- $client.semantic_version != "1.4.0"
101
+ # Returns true if Elasticsearch version is 5.x.
102
+ def es_version_5_x?
103
+ $client.semantic_version >= "5.0.0" &&
104
+ $client.semantic_version < "6.0.0"
136
105
  end
137
106
 
138
- # Elasticsearch 1.6 requires the repo.path setting when creating
139
- # FS repositories.
140
- def es_version_requires_repo_path?
141
- $client.semantic_version >= "1.6.0"
107
+ def default_index_settings
108
+ {settings: {index: {number_of_shards: 1, number_of_replicas: 0}}}
142
109
  end
143
110
 
144
111
  def run_snapshot_tests?
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elastomer-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Pease
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-04-29 00:00:00.000000000 Z
12
+ date: 2017-11-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: addressable
@@ -101,14 +101,28 @@ dependencies:
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '4.7'
104
+ version: '5.10'
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: '4.7'
111
+ version: '5.10'
112
+ - !ruby/object:Gem::Dependency
113
+ name: minitest-fail-fast
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: 0.1.0
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: 0.1.0
112
126
  - !ruby/object:Gem::Dependency
113
127
  name: webmock
114
128
  requirement: !ruby/object:Gem::Requirement
@@ -123,6 +137,20 @@ dependencies:
123
137
  - - "~>"
124
138
  - !ruby/object:Gem::Version
125
139
  version: '2.3'
140
+ - !ruby/object:Gem::Dependency
141
+ name: awesome_print
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: '1.8'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '1.8'
126
154
  - !ruby/object:Gem::Dependency
127
155
  name: rake
128
156
  requirement: !ruby/object:Gem::Requirement
@@ -195,7 +223,6 @@ files:
195
223
  - script/bootstrap
196
224
  - script/cibuild
197
225
  - script/console
198
- - script/test
199
226
  - test/assertions.rb
200
227
  - test/client/bulk_test.rb
201
228
  - test/client/cluster_test.rb
@@ -240,7 +267,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
240
267
  version: '0'
241
268
  requirements: []
242
269
  rubyforge_project:
243
- rubygems_version: 2.6.11
270
+ rubygems_version: 2.6.13
244
271
  signing_key:
245
272
  specification_version: 4
246
273
  summary: A library for interacting with Elasticsearch
@@ -1,6 +0,0 @@
1
- #!/bin/sh
2
- set -e
3
- cd "$(dirname "$0")/.."
4
-
5
- fn=${1:-"test/**/*_test.rb test/*_test.rb"}
6
- bundle exec testrb -Itest $fn $@