influxdb-client 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +157 -0
  3. data/.circleci/setup-rubygems.sh +3 -0
  4. data/.codecov.yml +3 -0
  5. data/.github/PULL_REQUEST_TEMPLATE +8 -0
  6. data/.gitignore +16 -0
  7. data/.rubocop.yml +38 -0
  8. data/CHANGELOG.md +12 -0
  9. data/Gemfile +24 -0
  10. data/LICENSE +21 -0
  11. data/README.md +226 -0
  12. data/Rakefile +37 -0
  13. data/bin/generate-sources.sh +30 -0
  14. data/bin/influxdb-onboarding.sh +39 -0
  15. data/bin/influxdb-restart.sh +60 -0
  16. data/bin/pom.xml +34 -0
  17. data/bin/swagger.yml +9867 -0
  18. data/influxdb-client.gemspec +53 -0
  19. data/lib/influxdb2/client.rb +28 -0
  20. data/lib/influxdb2/client/client.rb +82 -0
  21. data/lib/influxdb2/client/default_api.rb +68 -0
  22. data/lib/influxdb2/client/flux_csv_parser.rb +246 -0
  23. data/lib/influxdb2/client/flux_table.rb +99 -0
  24. data/lib/influxdb2/client/influx_error.rb +27 -0
  25. data/lib/influxdb2/client/models/dialect.rb +317 -0
  26. data/lib/influxdb2/client/models/query.rb +284 -0
  27. data/lib/influxdb2/client/point.rb +215 -0
  28. data/lib/influxdb2/client/query_api.rb +93 -0
  29. data/lib/influxdb2/client/version.rb +23 -0
  30. data/lib/influxdb2/client/worker.rb +89 -0
  31. data/lib/influxdb2/client/write_api.rb +219 -0
  32. data/test/influxdb/client_test.rb +70 -0
  33. data/test/influxdb/flux_csv_parser_test.rb +326 -0
  34. data/test/influxdb/point_test.rb +221 -0
  35. data/test/influxdb/query_api_integration_test.rb +58 -0
  36. data/test/influxdb/query_api_stream_test.rb +98 -0
  37. data/test/influxdb/query_api_test.rb +75 -0
  38. data/test/influxdb/write_api_batching_test.rb +153 -0
  39. data/test/influxdb/write_api_integration_test.rb +75 -0
  40. data/test/influxdb/write_api_test.rb +235 -0
  41. data/test/test_helper.rb +39 -0
  42. metadata +208 -0
@@ -0,0 +1,235 @@
1
+ # The MIT License
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the "Software"), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in
11
+ # all copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ # THE SOFTWARE.
20
+
21
+ require 'test_helper'
22
+
23
+ class WriteApiTest < MiniTest::Test
24
+ def setup
25
+ WebMock.disable_net_connect!
26
+ end
27
+
28
+ def test_required_arguments
29
+ client = InfluxDB2::Client.new('http://localhost:9999', 'my-token')
30
+ write_api = client.create_write_api
31
+
32
+ # precision
33
+ assert_raises ArgumentError do
34
+ write_api.write(data: {}, bucket: 'my-bucket', org: 'my-org')
35
+ end
36
+ # bucket
37
+ assert_raises ArgumentError do
38
+ write_api.write(data: {}, org: 'my-org', precision: InfluxDB2::WritePrecision::NANOSECOND)
39
+ end
40
+ # org
41
+ assert_raises ArgumentError do
42
+ write_api.write(data: {}, bucket: 'my-bucket', precision: InfluxDB2::WritePrecision::NANOSECOND)
43
+ end
44
+ end
45
+
46
+ def test_default_arguments_
47
+ client = InfluxDB2::Client.new('http://localhost:9999', 'my-token',
48
+ bucket: 'my-bucket',
49
+ org: 'my-org',
50
+ precision: InfluxDB2::WritePrecision::NANOSECOND)
51
+ write_api = client.create_write_api
52
+
53
+ # without argument errors
54
+ write_api.write(data: {})
55
+ end
56
+
57
+ def test_write_line_protocol
58
+ stub_request(:any, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
59
+ .to_return(status: 204)
60
+ client = InfluxDB2::Client.new('http://localhost:9999', 'my-token',
61
+ bucket: 'my-bucket',
62
+ org: 'my-org',
63
+ precision: InfluxDB2::WritePrecision::NANOSECOND,
64
+ use_ssl: false)
65
+
66
+ client.create_write_api.write(data: 'h2o,location=west value=33i 15')
67
+
68
+ assert_requested(:post, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns',
69
+ times: 1, body: 'h2o,location=west value=33i 15')
70
+ end
71
+
72
+ def test_write_point
73
+ stub_request(:any, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
74
+ .to_return(status: 204)
75
+ client = InfluxDB2::Client.new('http://localhost:9999', 'my-token',
76
+ bucket: 'my-bucket',
77
+ org: 'my-org',
78
+ precision: InfluxDB2::WritePrecision::NANOSECOND,
79
+ use_ssl: false)
80
+
81
+ client.create_write_api.write(data: InfluxDB2::Point.new(name: 'h2o')
82
+ .add_tag('location', 'europe')
83
+ .add_field('level', 2))
84
+
85
+ assert_requested(:post, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns',
86
+ times: 1, body: 'h2o,location=europe level=2i')
87
+ end
88
+
89
+ def test_write_hash
90
+ stub_request(:any, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
91
+ .to_return(status: 204)
92
+ client = InfluxDB2::Client.new('http://localhost:9999', 'my-token',
93
+ bucket: 'my-bucket',
94
+ org: 'my-org',
95
+ precision: InfluxDB2::WritePrecision::NANOSECOND,
96
+ use_ssl: false)
97
+
98
+ client.create_write_api.write(data: { name: 'h2o',
99
+ tags: { host: 'aws', region: 'us' },
100
+ fields: { level: 5, saturation: '99%' }, time: 123 })
101
+
102
+ expected = 'h2o,host=aws,region=us level=5i,saturation="99%" 123'
103
+ assert_requested(:post, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns',
104
+ times: 1, body: expected)
105
+ end
106
+
107
+ def test_write_collection
108
+ stub_request(:any, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
109
+ .to_return(status: 204)
110
+ client = InfluxDB2::Client.new('http://localhost:9999', 'my-token',
111
+ bucket: 'my-bucket',
112
+ org: 'my-org',
113
+ precision: InfluxDB2::WritePrecision::NANOSECOND,
114
+ use_ssl: false)
115
+
116
+ point = InfluxDB2::Point.new(name: 'h2o')
117
+ .add_tag('location', 'europe')
118
+ .add_field('level', 2)
119
+
120
+ hash = { name: 'h2o',
121
+ tags: { host: 'aws', region: 'us' },
122
+ fields: { level: 5, saturation: '99%' }, time: 123 }
123
+
124
+ client.create_write_api.write(data: ['h2o,location=west value=33i 15', nil, '', point, hash])
125
+
126
+ expected = "h2o,location=west value=33i 15\nh2o,location=europe level=2i"\
127
+ "\nh2o,host=aws,region=us level=5i,saturation=\"99%\" 123"
128
+ assert_requested(:post, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns',
129
+ times: 1, body: expected)
130
+ end
131
+
132
+ def test_authorization_header
133
+ stub_request(:any, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
134
+ .to_return(status: 204)
135
+ client = InfluxDB2::Client.new('http://localhost:9999', 'my-token',
136
+ bucket: 'my-bucket',
137
+ org: 'my-org',
138
+ precision: InfluxDB2::WritePrecision::NANOSECOND,
139
+ use_ssl: false)
140
+
141
+ client.create_write_api.write(data: 'h2o,location=west value=33i 15')
142
+
143
+ assert_requested(:post, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns',
144
+ times: 1, headers: { 'Authorization' => 'Token my-token' })
145
+ end
146
+
147
+ def test_without_data
148
+ stub_request(:any, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
149
+ .to_return(status: 204)
150
+ client = InfluxDB2::Client.new('http://localhost:9999', 'my-token',
151
+ bucket: 'my-bucket',
152
+ org: 'my-org',
153
+ precision: InfluxDB2::WritePrecision::NANOSECOND)
154
+
155
+ client.create_write_api.write(data: '')
156
+
157
+ assert_requested(:post, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns', times: 0)
158
+ end
159
+
160
+ def test_influx_exception
161
+ error_body = '{"code":"invalid","message":"unable to parse '\
162
+ '\'h2o_feet, location=coyote_creek water_level=1.0 1\': missing tag key"}'
163
+
164
+ stub_request(:any, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
165
+ .to_return(status: 400, headers: { 'X-Platform-Error-Code' => 'invalid' }, body: error_body)
166
+
167
+ client = InfluxDB2::Client.new('http://localhost:9999', 'my-token',
168
+ bucket: 'my-bucket',
169
+ org: 'my-org',
170
+ precision: InfluxDB2::WritePrecision::NANOSECOND,
171
+ use_ssl: false)
172
+
173
+ error = assert_raises InfluxDB2::InfluxError do
174
+ client.create_write_api.write(data: 'h2o,location=west value=33i 15')
175
+ end
176
+
177
+ assert_equal '400', error.code
178
+ assert_equal 'invalid', error.reference
179
+ assert_equal "unable to parse 'h2o_feet, location=coyote_creek water_level=1.0 1': missing tag key", error.message
180
+ end
181
+
182
+ def test_follow_redirect
183
+ stub_request(:any, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
184
+ .to_return(status: 307, headers:
185
+ { 'location' => 'http://localhost:9090/api/v2/write?bucket=my-bucket&org=my-org&precision=ns' })
186
+ .then.to_return(status: 204)
187
+ stub_request(:any, 'http://localhost:9090/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
188
+ .to_return(status: 204)
189
+
190
+ client = InfluxDB2::Client.new('http://localhost:9999', 'my-token',
191
+ bucket: 'my-bucket',
192
+ org: 'my-org',
193
+ precision: InfluxDB2::WritePrecision::NANOSECOND,
194
+ use_ssl: false)
195
+
196
+ client.create_write_api.write(data: 'h2o,location=west value=33i 15')
197
+
198
+ assert_requested(:post, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns',
199
+ times: 1, body: 'h2o,location=west value=33i 15')
200
+ assert_requested(:post, 'http://localhost:9090/api/v2/write?bucket=my-bucket&org=my-org&precision=ns',
201
+ times: 1, body: 'h2o,location=west value=33i 15')
202
+ end
203
+
204
+ def test_follow_redirect_max
205
+ stub_request(:any, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
206
+ .to_return(status: 307, headers:
207
+ { 'location' => 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns' })
208
+
209
+ client = InfluxDB2::Client.new('http://localhost:9999', 'my-token',
210
+ bucket: 'my-bucket',
211
+ org: 'my-org',
212
+ precision: InfluxDB2::WritePrecision::NANOSECOND,
213
+ max_redirect_count: 5,
214
+ use_ssl: false)
215
+
216
+ error = assert_raises InfluxDB2::InfluxError do
217
+ client.create_write_api.write(data: 'h2o,location=west value=33i 15')
218
+ end
219
+
220
+ assert_equal 'Too many HTTP redirects. Exceeded limit: 5', error.message
221
+ end
222
+
223
+ def test_write_precision_constant
224
+ assert_equal InfluxDB2::WritePrecision::SECOND, InfluxDB2::WritePrecision.new.get_from_value('s')
225
+ assert_equal InfluxDB2::WritePrecision::MILLISECOND, InfluxDB2::WritePrecision.new.get_from_value('ms')
226
+ assert_equal InfluxDB2::WritePrecision::MICROSECOND, InfluxDB2::WritePrecision.new.get_from_value('us')
227
+ assert_equal InfluxDB2::WritePrecision::NANOSECOND, InfluxDB2::WritePrecision.new.get_from_value('ns')
228
+
229
+ error = assert_raises RuntimeError do
230
+ InfluxDB2::WritePrecision.new.get_from_value('not_supported')
231
+ end
232
+
233
+ assert_equal 'The time precision not_supported is not supported.', error.message
234
+ end
235
+ end
@@ -0,0 +1,39 @@
1
+ # The MIT License
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the "Software"), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in
11
+ # all copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ # THE SOFTWARE.
20
+
21
+ require 'simplecov'
22
+ SimpleCov.start do
23
+ add_filter 'lib/influxdb2/client/models/'
24
+ add_filter 'test/influxdb'
25
+ end
26
+
27
+ if ENV['CI'] == 'true'
28
+ require 'codecov'
29
+ SimpleCov.formatter = SimpleCov::Formatter::Codecov
30
+ end
31
+
32
+ $LOAD_PATH.unshift File.expand_path('../lib', __dir__)
33
+ require 'influxdb2/client'
34
+
35
+ require 'minitest/autorun'
36
+ require 'minitest/reporters'
37
+ Minitest::Reporters.use!
38
+
39
+ require 'webmock/minitest'
metadata ADDED
@@ -0,0 +1,208 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: influxdb-client
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jakub Bednar
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-02-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: codecov
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.1.16
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.1.16
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest-reporters
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.4'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.4'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '10.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '10.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.66.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.66.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: simplecov
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.17.1
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.17.1
111
+ - !ruby/object:Gem::Dependency
112
+ name: webmock
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '3.7'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '3.7'
125
+ description: This is the official Ruby library for InfluxDB 2.
126
+ email:
127
+ - jakub.bednar@gmail.com
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files: []
131
+ files:
132
+ - ".circleci/config.yml"
133
+ - ".circleci/setup-rubygems.sh"
134
+ - ".codecov.yml"
135
+ - ".github/PULL_REQUEST_TEMPLATE"
136
+ - ".gitignore"
137
+ - ".rubocop.yml"
138
+ - CHANGELOG.md
139
+ - Gemfile
140
+ - LICENSE
141
+ - README.md
142
+ - Rakefile
143
+ - bin/generate-sources.sh
144
+ - bin/influxdb-onboarding.sh
145
+ - bin/influxdb-restart.sh
146
+ - bin/pom.xml
147
+ - bin/swagger.yml
148
+ - influxdb-client.gemspec
149
+ - lib/influxdb2/client.rb
150
+ - lib/influxdb2/client/client.rb
151
+ - lib/influxdb2/client/default_api.rb
152
+ - lib/influxdb2/client/flux_csv_parser.rb
153
+ - lib/influxdb2/client/flux_table.rb
154
+ - lib/influxdb2/client/influx_error.rb
155
+ - lib/influxdb2/client/models/dialect.rb
156
+ - lib/influxdb2/client/models/query.rb
157
+ - lib/influxdb2/client/point.rb
158
+ - lib/influxdb2/client/query_api.rb
159
+ - lib/influxdb2/client/version.rb
160
+ - lib/influxdb2/client/worker.rb
161
+ - lib/influxdb2/client/write_api.rb
162
+ - test/influxdb/client_test.rb
163
+ - test/influxdb/flux_csv_parser_test.rb
164
+ - test/influxdb/point_test.rb
165
+ - test/influxdb/query_api_integration_test.rb
166
+ - test/influxdb/query_api_stream_test.rb
167
+ - test/influxdb/query_api_test.rb
168
+ - test/influxdb/write_api_batching_test.rb
169
+ - test/influxdb/write_api_integration_test.rb
170
+ - test/influxdb/write_api_test.rb
171
+ - test/test_helper.rb
172
+ homepage: https://github.com/influxdata/influxdb-client-ruby
173
+ licenses:
174
+ - MIT
175
+ metadata:
176
+ homepage_uri: https://github.com/influxdata/influxdb-client-ruby
177
+ source_code_uri: https://github.com/influxdata/influxdb-client-ruby
178
+ changelog_uri: https://raw.githubusercontent.com/influxdata/influxdb-client-ruby/master/CHANGELOG.md
179
+ post_install_message:
180
+ rdoc_options: []
181
+ require_paths:
182
+ - lib
183
+ required_ruby_version: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: 2.2.0
188
+ required_rubygems_version: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ requirements: []
194
+ rubygems_version: 3.0.3
195
+ signing_key:
196
+ specification_version: 4
197
+ summary: Ruby library for InfluxDB 2.
198
+ test_files:
199
+ - test/influxdb/client_test.rb
200
+ - test/influxdb/flux_csv_parser_test.rb
201
+ - test/influxdb/point_test.rb
202
+ - test/influxdb/query_api_integration_test.rb
203
+ - test/influxdb/query_api_stream_test.rb
204
+ - test/influxdb/query_api_test.rb
205
+ - test/influxdb/write_api_batching_test.rb
206
+ - test/influxdb/write_api_integration_test.rb
207
+ - test/influxdb/write_api_test.rb
208
+ - test/test_helper.rb