wavefront-cli 4.2.1 → 4.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (190) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +1 -0
  3. data/.rubocop.yml +1 -14
  4. data/.travis.yml +4 -4
  5. data/Gemfile +2 -0
  6. data/HISTORY.md +82 -60
  7. data/Rakefile +2 -0
  8. data/bin/wf +1 -0
  9. data/lib/wavefront-cli/alert.rb +13 -5
  10. data/lib/wavefront-cli/apitoken.rb +2 -0
  11. data/lib/wavefront-cli/base.rb +95 -47
  12. data/lib/wavefront-cli/cloudintegration.rb +6 -0
  13. data/lib/wavefront-cli/command_mixins/acl.rb +6 -1
  14. data/lib/wavefront-cli/command_mixins/tag.rb +2 -0
  15. data/lib/wavefront-cli/commands/.rubocop.yml +3 -4
  16. data/lib/wavefront-cli/commands/alert.rb +2 -1
  17. data/lib/wavefront-cli/commands/apitoken.rb +6 -0
  18. data/lib/wavefront-cli/commands/base.rb +30 -21
  19. data/lib/wavefront-cli/commands/cloudintegration.rb +2 -0
  20. data/lib/wavefront-cli/commands/config.rb +2 -0
  21. data/lib/wavefront-cli/commands/dashboard.rb +2 -0
  22. data/lib/wavefront-cli/commands/derivedmetric.rb +2 -0
  23. data/lib/wavefront-cli/commands/event.rb +3 -1
  24. data/lib/wavefront-cli/commands/integration.rb +2 -1
  25. data/lib/wavefront-cli/commands/link.rb +2 -0
  26. data/lib/wavefront-cli/commands/message.rb +2 -0
  27. data/lib/wavefront-cli/commands/metric.rb +2 -0
  28. data/lib/wavefront-cli/commands/notificant.rb +2 -0
  29. data/lib/wavefront-cli/commands/proxy.rb +2 -0
  30. data/lib/wavefront-cli/commands/query.rb +2 -0
  31. data/lib/wavefront-cli/commands/savedsearch.rb +2 -0
  32. data/lib/wavefront-cli/commands/serviceaccount.rb +58 -0
  33. data/lib/wavefront-cli/commands/settings.rb +2 -0
  34. data/lib/wavefront-cli/commands/source.rb +3 -1
  35. data/lib/wavefront-cli/commands/user.rb +4 -1
  36. data/lib/wavefront-cli/commands/usergroup.rb +3 -0
  37. data/lib/wavefront-cli/commands/webhook.rb +2 -0
  38. data/lib/wavefront-cli/commands/window.rb +2 -0
  39. data/lib/wavefront-cli/commands/write.rb +2 -0
  40. data/lib/wavefront-cli/config.rb +23 -12
  41. data/lib/wavefront-cli/constants.rb +10 -4
  42. data/lib/wavefront-cli/controller.rb +53 -22
  43. data/lib/wavefront-cli/dashboard.rb +3 -0
  44. data/lib/wavefront-cli/derivedmetric.rb +12 -11
  45. data/lib/wavefront-cli/display/alert.rb +7 -4
  46. data/lib/wavefront-cli/display/apitoken.rb +2 -0
  47. data/lib/wavefront-cli/display/base.rb +34 -8
  48. data/lib/wavefront-cli/display/cloudintegration.rb +4 -2
  49. data/lib/wavefront-cli/display/dashboard.rb +2 -0
  50. data/lib/wavefront-cli/display/derivedmetric.rb +2 -0
  51. data/lib/wavefront-cli/display/distribution.rb +2 -0
  52. data/lib/wavefront-cli/display/event.rb +2 -0
  53. data/lib/wavefront-cli/display/externallink.rb +2 -0
  54. data/lib/wavefront-cli/display/integration.rb +2 -0
  55. data/lib/wavefront-cli/display/maintenancewindow.rb +2 -0
  56. data/lib/wavefront-cli/display/message.rb +7 -3
  57. data/lib/wavefront-cli/display/metric.rb +3 -1
  58. data/lib/wavefront-cli/display/notificant.rb +3 -1
  59. data/lib/wavefront-cli/display/printer/long.rb +36 -11
  60. data/lib/wavefront-cli/display/printer/sparkline.rb +3 -0
  61. data/lib/wavefront-cli/display/printer/terse.rb +6 -1
  62. data/lib/wavefront-cli/display/proxy.rb +2 -0
  63. data/lib/wavefront-cli/display/query.rb +35 -24
  64. data/lib/wavefront-cli/display/savedsearch.rb +2 -0
  65. data/lib/wavefront-cli/display/serviceaccount.rb +60 -0
  66. data/lib/wavefront-cli/display/settings.rb +2 -0
  67. data/lib/wavefront-cli/display/source.rb +18 -4
  68. data/lib/wavefront-cli/display/user.rb +56 -10
  69. data/lib/wavefront-cli/display/usergroup.rb +25 -19
  70. data/lib/wavefront-cli/display/webhook.rb +2 -0
  71. data/lib/wavefront-cli/display/write.rb +6 -2
  72. data/lib/wavefront-cli/event.rb +83 -62
  73. data/lib/wavefront-cli/exception.rb +3 -0
  74. data/lib/wavefront-cli/externallink.rb +6 -4
  75. data/lib/wavefront-cli/integration.rb +2 -0
  76. data/lib/wavefront-cli/maintenancewindow.rb +28 -17
  77. data/lib/wavefront-cli/message.rb +4 -0
  78. data/lib/wavefront-cli/metric.rb +4 -1
  79. data/lib/wavefront-cli/notificant.rb +2 -0
  80. data/lib/wavefront-cli/opt_handler.rb +2 -0
  81. data/lib/wavefront-cli/output/base.rb +8 -3
  82. data/lib/wavefront-cli/output/csv.rb +2 -0
  83. data/lib/wavefront-cli/output/csv/base.rb +2 -0
  84. data/lib/wavefront-cli/output/csv/query.rb +14 -7
  85. data/lib/wavefront-cli/output/hcl.rb +2 -0
  86. data/lib/wavefront-cli/output/hcl/alert.rb +2 -0
  87. data/lib/wavefront-cli/output/hcl/base.rb +10 -4
  88. data/lib/wavefront-cli/output/hcl/dashboard.rb +17 -8
  89. data/lib/wavefront-cli/output/hcl/notificant.rb +2 -0
  90. data/lib/wavefront-cli/output/hcl/stdlib/array.rb +2 -0
  91. data/lib/wavefront-cli/output/hcl/stdlib/string.rb +2 -0
  92. data/lib/wavefront-cli/output/json.rb +2 -0
  93. data/lib/wavefront-cli/output/ruby.rb +2 -0
  94. data/lib/wavefront-cli/output/wavefront.rb +2 -0
  95. data/lib/wavefront-cli/output/wavefront/query.rb +7 -4
  96. data/lib/wavefront-cli/output/yaml.rb +2 -0
  97. data/lib/wavefront-cli/proxy.rb +15 -3
  98. data/lib/wavefront-cli/query.rb +14 -12
  99. data/lib/wavefront-cli/savedsearch.rb +2 -0
  100. data/lib/wavefront-cli/serviceaccount.rb +179 -0
  101. data/lib/wavefront-cli/settings.rb +2 -0
  102. data/lib/wavefront-cli/source.rb +2 -0
  103. data/lib/wavefront-cli/stdlib/array.rb +3 -0
  104. data/lib/wavefront-cli/stdlib/string.rb +17 -11
  105. data/lib/wavefront-cli/user.rb +10 -4
  106. data/lib/wavefront-cli/usergroup.rb +4 -2
  107. data/lib/wavefront-cli/version.rb +3 -1
  108. data/lib/wavefront-cli/webhook.rb +2 -0
  109. data/lib/wavefront-cli/write.rb +80 -46
  110. data/spec/.rubocop.yml +3 -16
  111. data/spec/constants.rb +21 -0
  112. data/spec/spec_helper.rb +8 -422
  113. data/spec/support/command_base.rb +82 -0
  114. data/spec/support/minitest_assertions.rb +262 -0
  115. data/spec/support/output_tester.rb +32 -0
  116. data/spec/support/supported_commands.rb +19 -0
  117. data/spec/test_mixins/acl.rb +169 -0
  118. data/spec/test_mixins/delete.rb +25 -0
  119. data/spec/test_mixins/deleteundelete.rb +106 -0
  120. data/spec/test_mixins/describe.rb +24 -0
  121. data/spec/test_mixins/dump.rb +43 -0
  122. data/spec/test_mixins/general.rb +11 -0
  123. data/spec/test_mixins/history.rb +35 -0
  124. data/spec/test_mixins/import.rb +65 -0
  125. data/spec/test_mixins/list.rb +29 -0
  126. data/spec/test_mixins/search.rb +98 -0
  127. data/spec/test_mixins/set.rb +47 -0
  128. data/spec/test_mixins/tag.rb +99 -0
  129. data/spec/wavefront-cli/alert_spec.rb +288 -111
  130. data/spec/wavefront-cli/apitoken_spec.rb +53 -24
  131. data/spec/wavefront-cli/base_spec.rb +9 -27
  132. data/spec/wavefront-cli/cloudintegration_spec.rb +65 -29
  133. data/spec/wavefront-cli/commands/alert_spec.rb +1 -0
  134. data/spec/wavefront-cli/commands/base_spec.rb +15 -13
  135. data/spec/wavefront-cli/commands/cloudintegration_spec.rb +1 -0
  136. data/spec/wavefront-cli/commands/config_spec.rb +3 -0
  137. data/spec/wavefront-cli/commands/dashboard_spec.rb +1 -0
  138. data/spec/wavefront-cli/commands/derivedmetric_spec.rb +1 -0
  139. data/spec/wavefront-cli/commands/event_spec.rb +1 -0
  140. data/spec/wavefront-cli/commands/link_spec.rb +1 -0
  141. data/spec/wavefront-cli/commands/message_spec.rb +1 -0
  142. data/spec/wavefront-cli/commands/metric_spec.rb +1 -0
  143. data/spec/wavefront-cli/commands/proxy_spec.rb +1 -0
  144. data/spec/wavefront-cli/commands/query_spec.rb +1 -0
  145. data/spec/wavefront-cli/commands/webhook_spec.rb +1 -0
  146. data/spec/wavefront-cli/commands/window_spec.rb +1 -0
  147. data/spec/wavefront-cli/commands/write_spec.rb +1 -0
  148. data/spec/wavefront-cli/config_spec.rb +25 -14
  149. data/spec/wavefront-cli/controller_spec.rb +13 -3
  150. data/spec/wavefront-cli/dashboard_spec.rb +125 -76
  151. data/spec/wavefront-cli/derivedmetric_spec.rb +83 -67
  152. data/spec/wavefront-cli/display/base_spec.rb +5 -7
  153. data/spec/wavefront-cli/display/printer/long_spec.rb +20 -16
  154. data/spec/wavefront-cli/display/printer/terse_spec.rb +5 -4
  155. data/spec/wavefront-cli/event_spec.rb +360 -18
  156. data/spec/wavefront-cli/externallink_spec.rb +92 -58
  157. data/spec/wavefront-cli/integration_spec.rb +129 -31
  158. data/spec/wavefront-cli/maintenancewindow_spec.rb +270 -32
  159. data/spec/wavefront-cli/message_spec.rb +73 -30
  160. data/spec/wavefront-cli/metric_spec.rb +60 -22
  161. data/spec/wavefront-cli/notificant_spec.rb +45 -32
  162. data/spec/wavefront-cli/opt_handler_spec.rb +4 -1
  163. data/spec/wavefront-cli/output/csv/query_spec.rb +21 -19
  164. data/spec/wavefront-cli/output/csv_spec.rb +5 -2
  165. data/spec/wavefront-cli/output/hcl_spec.rb +5 -2
  166. data/spec/wavefront-cli/output/helpers.rb +18 -0
  167. data/spec/wavefront-cli/output/json_spec.rb +3 -1
  168. data/spec/wavefront-cli/output/ruby_spec.rb +3 -1
  169. data/spec/wavefront-cli/output/wavefront/query_spec.rb +3 -1
  170. data/spec/wavefront-cli/output/wavefront_spec.rb +6 -4
  171. data/spec/wavefront-cli/output/yaml_spec.rb +3 -1
  172. data/spec/wavefront-cli/proxy_spec.rb +49 -27
  173. data/spec/wavefront-cli/query_spec.rb +174 -92
  174. data/spec/wavefront-cli/resources/responses/query.json +1 -0
  175. data/spec/wavefront-cli/resources/updates/alert.json +15 -0
  176. data/spec/wavefront-cli/resources/updates/dashboard.json +1 -0
  177. data/spec/wavefront-cli/savedsearch_spec.rb +35 -18
  178. data/spec/wavefront-cli/serviceaccount_spec.rb +399 -0
  179. data/spec/wavefront-cli/settings_spec.rb +42 -11
  180. data/spec/wavefront-cli/source_spec.rb +120 -23
  181. data/spec/wavefront-cli/stdlib/array_spec.rb +2 -1
  182. data/spec/wavefront-cli/stdlib/string_spec.rb +9 -6
  183. data/spec/wavefront-cli/user_spec.rb +278 -108
  184. data/spec/wavefront-cli/usergroup_spec.rb +152 -102
  185. data/spec/wavefront-cli/webhook_spec.rb +30 -15
  186. data/spec/wavefront-cli/write_spec.rb +25 -1
  187. data/wavefront-cli.gemspec +5 -3
  188. metadata +65 -21
  189. data/spec/wavefront-cli/commands/spec_helper.rb +0 -3
  190. data/spec/wavefront-cli/display/spec_helper.rb +0 -3
@@ -1,33 +1,76 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- id = 'CLUSTER::IHjNaHM9'
4
- bad_id = '(>_<)'
5
- word = 'message'
6
-
7
- require_relative '../spec_helper'
8
- require_relative "../../lib/wavefront-cli/#{word}"
9
-
10
- describe "#{word} command" do
11
- missing_creds(word, ['list', "mark #{id}"])
12
- cmd_noop(word, 'list',
13
- ["GET https://metrics.wavefront.com/api/v2/#{word}",
14
- offset: 0, limit: 100, unreadOnly: true])
15
- cmd_noop(word, "mark #{id}",
16
- ["POST https://metrics.wavefront.com/api/v2/#{word}/#{id}/read"])
17
-
18
- cmd_to_call(word, 'list',
19
- path: "/api/v2/#{word}?limit=100&offset=0&unreadOnly=true")
20
- cmd_to_call(word, 'list -L 50',
21
- path: "/api/v2/#{word}?limit=50&offset=0&unreadOnly=true")
22
- cmd_to_call(word, 'list -L 20 -o 8 -a',
23
- path: "/api/v2/#{word}?limit=20&offset=8&unreadOnly=false")
24
- cmd_to_call(word, 'list -a -o 60',
25
- path: "/api/v2/#{word}?limit=100&offset=60&unreadOnly=false")
26
- cmd_to_call(word, 'list -a',
27
- path: "/api/v2/#{word}?offset=0&limit=100&unreadOnly=false")
28
- cmd_to_call(word, 'list -L 50 -a',
29
- path: "/api/v2/#{word}?offset=0&limit=50&unreadOnly=false")
30
- cmd_to_call(word, "mark #{id}",
31
- method: :post, path: "/api/v2/#{word}/#{id}/read")
32
- invalid_ids(word, ["mark #{bad_id}"])
4
+ require_relative '../support/command_base'
5
+ require_relative '../../lib/wavefront-cli/message'
6
+
7
+ # Ensure 'message' commands produce the correct API calls.
8
+ #
9
+ class MessageEndToEndTest < EndToEndTest
10
+ def test_list
11
+ quietly do
12
+ assert_cmd_gets('list',
13
+ '/api/v2/message?limit=100&offset=0&unreadOnly=true')
14
+ assert_cmd_gets('list -l',
15
+ '/api/v2/message?limit=100&offset=0&unreadOnly=true')
16
+ end
17
+
18
+ assert_noop('list',
19
+ 'uri: GET https://default.wavefront.com/api/v2/message',
20
+ 'params: ' + {
21
+ offset: 0, limit: 100, unreadOnly: true
22
+ }.to_s)
23
+
24
+ assert_abort_on_missing_creds('list')
25
+ end
26
+
27
+ def test_list_offsets
28
+ quietly do
29
+ assert_cmd_gets('list --offset 2 --limit 3',
30
+ '/api/v2/message?limit=3&offset=2&unreadOnly=true')
31
+ end
32
+ end
33
+
34
+ def test_list_all
35
+ quietly do
36
+ assert_cmd_gets('list -a',
37
+ '/api/v2/message?limit=100&offset=0&unreadOnly=false')
38
+ end
39
+ end
40
+
41
+ def test_read
42
+ # TODO: add a proper chained test like we have for
43
+ # MaintenanceWindow#close, when there's some sample data to work
44
+ # with. i.e. next time Wavefront send me a message
45
+ assert_cannot_noop("read #{id}")
46
+ assert_abort_on_missing_creds("read #{id}")
47
+ assert_usage('read')
48
+ end
49
+
50
+ def test_mark
51
+ quietly do
52
+ assert_cmd_posts("mark #{id}", "/api/v2/message/#{id}/read")
53
+ end
54
+
55
+ assert_noop("mark #{id}",
56
+ 'uri: POST https://default.wavefront.com/api/v2/' \
57
+ "message/#{id}/read",
58
+ 'body: null')
59
+ assert_abort_on_missing_creds("mark #{id}")
60
+ assert_usage('mark')
61
+ end
62
+
63
+ private
64
+
65
+ def id
66
+ 'CLUSTER::IHjNaHM9'
67
+ end
68
+
69
+ def invalid_id
70
+ '(>_<)'
71
+ end
72
+
73
+ def cmd_word
74
+ 'message'
75
+ end
33
76
  end
@@ -1,25 +1,63 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- id = 'dev.cli.test'
4
- bad_id = '(>_<)'
5
- word = 'metric'
6
-
7
- require_relative '../spec_helper'
8
- require_relative "../../lib/wavefront-cli/#{word}"
9
-
10
- describe "#{word} command" do
11
- missing_creds(word, ["describe #{id}"])
12
- cmd_noop(word, "describe #{id}",
13
- ["GET https://metrics.wavefront.com/api/v2/chart/#{word}/detail",
14
- [[:m, 'dev.cli.test']]])
15
- cmd_to_call(word, "describe #{id}",
16
- path: "/api/v2/chart/#{word}/detail?m=#{id}")
17
- cmd_to_call(word, "describe -g ptn1 #{id}",
18
- path: "/api/v2/chart/#{word}/detail?m=#{id}&h=ptn1")
19
- cmd_to_call(word, "describe -g ptn1 -g ptn2 #{id}",
20
- path: "/api/v2/chart/#{word}/detail?m=#{id}&h=ptn1&h=ptn2")
21
- cmd_to_call(word, "describe -g ptn1 -g ptn2 -o 10 #{id}",
22
- path: "/api/v2/chart/#{word}/detail?m=#{id}&h=ptn1&h=ptn2&c=10")
23
-
24
- invalid_ids(word, ["describe #{bad_id}"])
4
+ require_relative '../support/command_base'
5
+ require_relative '../../lib/wavefront-cli/metric'
6
+
7
+ # Ensure 'metric' commands produce the correct API calls.
8
+ #
9
+ class MetricEndToEndTest < EndToEndTest
10
+ def test_describe
11
+ out, err = capture_io do
12
+ assert_raises(SystemExit) do
13
+ assert_cmd_gets("describe #{id}",
14
+ "/api/v2/chart/metric/detail?m=#{id}")
15
+ end
16
+ end
17
+
18
+ assert_empty(err)
19
+ assert_equal("Did not find metric 'dev.cli.test'.", out.strip)
20
+
21
+ assert_invalid_id("describe #{invalid_id}")
22
+ assert_usage('describe')
23
+ assert_abort_on_missing_creds("describe #{id}")
24
+ end
25
+
26
+ def test_describe_with_globs
27
+ out, err = capture_io do
28
+ assert_raises(SystemExit) do
29
+ assert_cmd_gets("describe -g ptn1 -g ptn2 #{id}",
30
+ "/api/v2/chart/metric/detail?m=#{id}&h=ptn1&h=ptn2")
31
+ end
32
+ end
33
+
34
+ assert_empty(err)
35
+ assert_equal("Did not find metric 'dev.cli.test'.", out.strip)
36
+ end
37
+
38
+ def test_describe_with_glob_and_offset
39
+ out, err = capture_io do
40
+ assert_raises(SystemExit) do
41
+ assert_cmd_gets("describe -g ptn1 -o 5 #{id}",
42
+ "/api/v2/chart/metric/detail?m=#{id}&h=ptn1&c=5")
43
+ end
44
+ end
45
+
46
+ assert_empty(err)
47
+ assert_equal("Did not find metric 'dev.cli.test'.", out.strip)
48
+ end
49
+
50
+ private
51
+
52
+ def id
53
+ 'dev.cli.test'
54
+ end
55
+
56
+ def invalid_id
57
+ '(>_<)'
58
+ end
59
+
60
+ def cmd_word
61
+ 'metric'
62
+ end
25
63
  end
@@ -1,39 +1,52 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- id = '9wltLtYXsP8Je2kI'
4
- bad_id = '__bad_id__'
5
- word = 'notificant'
6
-
7
- require_relative '../spec_helper'
8
- require_relative "../../lib/wavefront-cli/#{word}"
9
-
10
- describe "#{word} command" do
11
- missing_creds(word, ['list',
12
- "describe #{id}",
13
- 'import file',
14
- "delete #{id}",
15
- "test #{id}",
16
- 'search name=pattern'])
17
- invalid_ids(word, ["describe #{bad_id}",
18
- "delete #{bad_id}",
19
- "test #{bad_id}",
20
- "set #{bad_id} key=value"])
21
- list_tests(word)
22
- cmd_to_call(word, "describe #{id}", path: "/api/v2/#{word}/#{id}")
23
- list_tests(word)
24
- search_tests(word, id)
25
- noop_tests(word, id)
26
- test_list_output(word)
27
- end
4
+ require_relative '../support/command_base'
5
+ require_relative '../../lib/wavefront-cli/notificant'
6
+
7
+ # Ensure 'notificant' commands produce the correct API calls.
8
+ #
9
+ class NotificantEndToEndTest < EndToEndTest
10
+ include WavefrontCliTest::Delete
11
+ include WavefrontCliTest::Describe
12
+ include WavefrontCliTest::Dump
13
+ # include WavefrontCliTest::Import
14
+ include WavefrontCliTest::List
15
+ include WavefrontCliTest::Search
16
+ include WavefrontCliTest::Set
17
+
18
+ def test_test
19
+ assert_repeated_output("Testing notificant '#{id}'.") do
20
+ assert_cmd_posts("test #{id}", "/api/v2/notificant/test/#{id}")
21
+ end
22
+
23
+ assert_noop("test #{id}",
24
+ 'uri: POST https://default.wavefront.com/api/v2/' \
25
+ "notificant/test/#{id}", 'body: null')
26
+ assert_invalid_id("test #{invalid_id}")
27
+ assert_usage('test')
28
+ assert_abort_on_missing_creds("test #{id}")
29
+ end
30
+
31
+ private
32
+
33
+ def id
34
+ '9wltLtYXsP8Je2kI'
35
+ end
36
+
37
+ def invalid_id
38
+ '__BAD__'
39
+ end
40
+
41
+ def cmd_word
42
+ 'notificant'
43
+ end
28
44
 
29
- class TestNotificantMethods < CliMethodTest
30
- def test_import_method
31
- import_tester(:notificant,
32
- %i[method title creatorId triggers template],
33
- %i[id])
45
+ def set_key
46
+ 'title'
34
47
  end
35
48
 
36
- def cliclass
37
- WavefrontCli::Notificant
49
+ def import_fields
50
+ %i[method title creatorId triggers template]
38
51
  end
39
52
  end
@@ -1,6 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require_relative '../spec_helper'
4
+ require 'minitest/autorun'
5
+ require_relative '../constants'
6
+ require_relative '../../lib/wavefront-cli/exception'
4
7
  require_relative '../../lib/wavefront-cli/opt_handler'
5
8
 
6
9
  # Some of these tests will be skipped if you have a ~/.wavefront
@@ -1,6 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require_relative '../../../spec_helper'
4
+ require 'minitest/autorun'
5
+ require_relative '../helpers'
4
6
  require_relative '../../../../lib/wavefront-cli/output/csv/query'
5
7
 
6
8
  # Test CSV output
@@ -59,35 +61,35 @@ class WavefrontOutputCsvTest < MiniTest::Test
59
61
  def test_map_row_to_csv
60
62
  assert_equal(',,,,,,,,,,', wfq.map_row_to_csv(merp: 1))
61
63
  assert_equal('test.path,1,1544529523,testsource,,"unit test",,,,,',
62
- wfq.map_row_to_csv(path: 'test.path',
63
- value: 1,
64
- timestamp: 1_544_529_523,
65
- source: 'testsource',
64
+ wfq.map_row_to_csv(path: 'test.path',
65
+ value: 1,
66
+ timestamp: 1_544_529_523,
67
+ source: 'testsource',
66
68
  environment: 'unit test'))
67
69
  assert_equal('"test.path","1","1544529523","testsource",,"unit test",,,,,',
68
- wfqq.map_row_to_csv(path: 'test.path',
69
- value: 1,
70
- timestamp: 1_544_529_523,
71
- source: 'testsource',
70
+ wfqq.map_row_to_csv(path: 'test.path',
71
+ value: 1,
72
+ timestamp: 1_544_529_523,
73
+ source: 'testsource',
72
74
  environment: 'unit test'))
73
75
  end
74
76
 
75
77
  def test_csv_format
76
- assert_equal({ path: 'test.path',
77
- value: 1,
78
- timestamp: 1_544_529_523,
79
- source: 'testsource',
78
+ assert_equal({ path: 'test.path',
79
+ value: 1,
80
+ timestamp: 1_544_529_523,
81
+ source: 'testsource',
80
82
  environment: 'test',
81
- dc: 'travis' },
83
+ dc: 'travis' },
82
84
  wfq.csv_format('test.path', 1, 1_544_529_523, 'testsource',
83
85
  environment: 'test', dc: 'travis'))
84
86
 
85
- assert_equal({ path: 'test.path',
86
- value: 1,
87
- timestamp: 1_544_529_523,
88
- source: 'testsource',
87
+ assert_equal({ path: 'test.path',
88
+ value: 1,
89
+ timestamp: 1_544_529_523,
90
+ source: 'testsource',
89
91
  environment: 'environment=test',
90
- dc: 'dc=travis' },
92
+ dc: 'dc=travis' },
91
93
  wft.csv_format('test.path', 1, 1_544_529_523, 'testsource',
92
94
  environment: 'test', dc: 'travis'))
93
95
  end
@@ -1,6 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require_relative '../../spec_helper'
4
+ require 'minitest/autorun'
5
+ require_relative 'helpers'
6
+ require_relative '../../support/supported_commands'
4
7
  require_relative '../../../lib/wavefront-cli/output/csv'
5
8
 
6
9
  # Test the CSV instantiation of the base class
@@ -35,7 +38,7 @@ class CsvOutputBaseTest < MiniTest::Test
35
38
  assert klass.respond_to?(:run)
36
39
  end
37
40
 
38
- (CMDS - supported_commands).each do |cmd|
41
+ (SupportedCommands.new.all - supported_commands).each do |cmd|
39
42
  wfo = WavefrontOutput::Csv.new(load_query_response, class: cmd)
40
43
  assert_raises(LoadError) { wfo.command_class }
41
44
  end
@@ -1,6 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require_relative '../../spec_helper'
4
+ require 'minitest/autorun'
5
+ require_relative 'helpers'
6
+ require_relative '../../support/supported_commands'
4
7
  require_relative '../../../lib/wavefront-cli/output/hcl'
5
8
 
6
9
  # Test HCL stuff
@@ -35,7 +38,7 @@ class WavefrontOutputBaseTest < MiniTest::Test
35
38
  assert klass.respond_to?(:run)
36
39
  end
37
40
 
38
- (CMDS - supported_commands).each do |cmd|
41
+ (SupportedCommands.new.all - supported_commands).each do |cmd|
39
42
  wfo = WavefrontOutput::Hcl.new(load_query_response, class: cmd)
40
43
  assert_raises(LoadError) { wfo.command_class }
41
44
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'json'
4
+ require_relative '../../constants'
5
+
6
+ # Load in a canned query response
7
+ #
8
+ def load_query_response
9
+ load_file('sample_query_response.json')
10
+ end
11
+
12
+ def load_raw_query_response
13
+ load_file('sample_raw_query_response.json')
14
+ end
15
+
16
+ def load_file(file)
17
+ JSON.parse(IO.read(RES_DIR + file), symbolize_names: true)
18
+ end
@@ -1,7 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'json'
4
- require_relative '../../spec_helper'
5
+ require 'minitest/autorun'
6
+ require_relative 'helpers'
5
7
  require_relative '../../../lib/wavefront-cli/output/json'
6
8
 
7
9
  # Test JSON output
@@ -1,6 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require_relative '../../spec_helper'
4
+ require 'minitest/autorun'
5
+ require_relative 'helpers'
4
6
  require_relative '../../../lib/wavefront-cli/output/ruby'
5
7
 
6
8
  # We can't really test this without `eval`-ing the output, and
@@ -1,6 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require_relative '../../../spec_helper'
4
+ require 'minitest/autorun'
5
+ require_relative '../helpers'
4
6
  require_relative '../../../../lib/wavefront-cli/output/wavefront/query'
5
7
 
6
8
  # Test Wavefront wire-format output