hammer_cli 3.7.0 → 3.8.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.
- checksums.yaml +4 -4
- data/bin/hammer +1 -6
- data/doc/release_notes.md +15 -0
- data/lib/hammer_cli/help/builder.rb +1 -2
- data/lib/hammer_cli/i18n/find_task.rb +88 -0
- data/lib/hammer_cli/i18n.rb +4 -0
- data/lib/hammer_cli/options/normalizers.rb +2 -5
- data/lib/hammer_cli/settings.rb +7 -0
- data/lib/hammer_cli/task_helper.rb +84 -0
- data/lib/hammer_cli/testing/output_matchers.rb +1 -1
- data/lib/hammer_cli/utils.rb +1 -1
- data/lib/hammer_cli/version.rb +1 -1
- data/locale/Makefile.def +29 -7
- data/locale/ca/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/cs_CZ/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/de/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/en/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/en_GB/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/es/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/fr/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/it/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/ja/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/ka/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/ko/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/pt_BR/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/ru/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/zh_CN/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/zh_TW/LC_MESSAGES/hammer-cli.mo +0 -0
- data/man/hammer.1.gz +0 -0
- data/test/functional/help_test.rb +1 -1
- data/test/test_helper.rb +1 -1
- data/test/unit/abstract_test.rb +54 -54
- data/test/unit/apipie/command_test.rb +26 -27
- data/test/unit/apipie/option_builder_test.rb +28 -28
- data/test/unit/apipie/option_definition_test.rb +5 -5
- data/test/unit/apipie/test_helper.rb +3 -0
- data/test/unit/bash_test.rb +21 -21
- data/test/unit/command_extensions_test.rb +68 -68
- data/test/unit/completer_test.rb +57 -57
- data/test/unit/csv_parser_test.rb +12 -12
- data/test/unit/defaults_test.rb +3 -3
- data/test/unit/help/builder_test.rb +7 -7
- data/test/unit/help/definition/abstract_item_test.rb +2 -2
- data/test/unit/help/definition/list_test.rb +2 -2
- data/test/unit/help/definition/note_test.rb +2 -2
- data/test/unit/help/definition/section_test.rb +2 -2
- data/test/unit/help/definition/text_test.rb +2 -2
- data/test/unit/help/definition_test.rb +36 -36
- data/test/unit/help/text_builder_test.rb +39 -39
- data/test/unit/history_test.rb +6 -6
- data/test/unit/i18n_test.rb +2 -2
- data/test/unit/logger_test.rb +1 -1
- data/test/unit/main_test.rb +7 -7
- data/test/unit/modules_test.rb +24 -25
- data/test/unit/option_builder_test.rb +1 -1
- data/test/unit/options/matcher_test.rb +15 -15
- data/test/unit/options/normalizers_test.rb +92 -88
- data/test/unit/options/option_definition_test.rb +11 -11
- data/test/unit/options/option_family_test.rb +7 -7
- data/test/unit/options/validators/dsl_test.rb +35 -35
- data/test/unit/output/adapter/abstract_test.rb +10 -10
- data/test/unit/output/adapter/base_test.rb +36 -36
- data/test/unit/output/adapter/csv_test.rb +38 -38
- data/test/unit/output/adapter/json_test.rb +38 -38
- data/test/unit/output/adapter/table_test.rb +42 -50
- data/test/unit/output/adapter/yaml_test.rb +38 -38
- data/test/unit/output/definition_test.rb +43 -43
- data/test/unit/output/dsl_test.rb +19 -19
- data/test/unit/output/field_filter_test.rb +10 -10
- data/test/unit/output/fields_test.rb +27 -27
- data/test/unit/output/formatters_test.rb +39 -39
- data/test/unit/output/output_test.rb +14 -14
- data/test/unit/output/record_collection_test.rb +18 -18
- data/test/unit/settings_test.rb +35 -35
- data/test/unit/utils_test.rb +30 -27
- metadata +33 -44
@@ -5,7 +5,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
5
5
|
let(:adapter) { HammerCLI::Output::Adapter::Table.new }
|
6
6
|
|
7
7
|
it "allows default pagination" do
|
8
|
-
adapter.paginate_by_default
|
8
|
+
_(adapter.paginate_by_default?).must_equal true
|
9
9
|
end
|
10
10
|
|
11
11
|
context "print_collection" do
|
@@ -40,11 +40,11 @@ describe HammerCLI::Output::Adapter::Table do
|
|
40
40
|
let(:empty_data) { HammerCLI::Output::RecordCollection.new [] }
|
41
41
|
|
42
42
|
it "should print column name " do
|
43
|
-
|
43
|
+
_{ adapter.print_collection(fields, data) }.must_output(/.*NAME.*/, "")
|
44
44
|
end
|
45
45
|
|
46
46
|
it "should print field value" do
|
47
|
-
|
47
|
+
_{ adapter.print_collection(fields, data) }.must_output(/.*John Doe.*/, "")
|
48
48
|
end
|
49
49
|
|
50
50
|
it "does not print fields which data are missing from api by default" do
|
@@ -58,7 +58,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
58
58
|
''
|
59
59
|
].join("\n")
|
60
60
|
|
61
|
-
|
61
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
62
62
|
end
|
63
63
|
|
64
64
|
it "prints fields which data are missing from api when field has hide_missing flag set to false" do
|
@@ -72,18 +72,18 @@ describe HammerCLI::Output::Adapter::Table do
|
|
72
72
|
''
|
73
73
|
].join("\n")
|
74
74
|
|
75
|
-
|
75
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
76
76
|
end
|
77
77
|
|
78
78
|
context "pagination" do
|
79
79
|
it "should print pagination info if data are not complete" do
|
80
80
|
data = HammerCLI::Output::RecordCollection.new([record], { :total => 2, :page => 1, :per_page => 1, :subtotal => 2 })
|
81
|
-
|
81
|
+
_{ adapter.print_collection(fields, data) }.must_output(/.*Page 1 of 2 (use --page and --per-page for navigation)*/, "")
|
82
82
|
end
|
83
83
|
|
84
84
|
it "should print pagination info if data are complete" do
|
85
85
|
data = HammerCLI::Output::RecordCollection.new([record], { :total => 1, :page => 1, :per_page => 1, :subtotal => 1 })
|
86
|
-
|
86
|
+
_{ adapter.print_collection(fields, data) }.must_output("--------\nNAME \n--------\nJohn Doe\n--------\n", "")
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
@@ -95,7 +95,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
95
95
|
|
96
96
|
it "should ommit column of type Id by default" do
|
97
97
|
out, _ = capture_io { adapter.print_collection(fields, data) }
|
98
|
-
out.wont_match(/.*ID.*/)
|
98
|
+
_(out).wont_match(/.*ID.*/)
|
99
99
|
end
|
100
100
|
|
101
101
|
it "should ommit column of type Id by default but no data" do
|
@@ -105,13 +105,13 @@ describe HammerCLI::Output::Adapter::Table do
|
|
105
105
|
"----",
|
106
106
|
""
|
107
107
|
].join("\n")
|
108
|
-
|
108
|
+
_{ adapter.print_collection(fields, empty_data) }.must_output(expected_output)
|
109
109
|
end
|
110
110
|
|
111
111
|
it "should print column of type Id when --show-ids is set" do
|
112
112
|
adapter = HammerCLI::Output::Adapter::Table.new( { :show_ids => true } )
|
113
113
|
out, _ = capture_io { adapter.print_collection(fields, data) }
|
114
|
-
out.must_match(/.*ID.*/)
|
114
|
+
_(out).must_match(/.*ID.*/)
|
115
115
|
end
|
116
116
|
|
117
117
|
it "should print column of type ID when --show-ids is set but no data" do
|
@@ -122,19 +122,19 @@ describe HammerCLI::Output::Adapter::Table do
|
|
122
122
|
"",
|
123
123
|
].join("\n")
|
124
124
|
adapter = HammerCLI::Output::Adapter::Table.new( { :show_ids => true } )
|
125
|
-
|
125
|
+
_{ adapter.print_collection(fields, empty_data) }.must_output(expected_output)
|
126
126
|
end
|
127
127
|
end
|
128
128
|
|
129
129
|
context "handle headers" do
|
130
130
|
it "should print headers by default" do
|
131
131
|
out, _ = capture_io { adapter.print_collection(fields, data) }
|
132
|
-
out.must_match(/.*NAME.*/)
|
132
|
+
_(out).must_match(/.*NAME.*/)
|
133
133
|
end
|
134
134
|
|
135
135
|
it "should print headers by default even if there is no data" do
|
136
136
|
out, _ = capture_io { adapter.print_collection(fields, empty_data) }
|
137
|
-
out.must_match(/.*NAME.*/)
|
137
|
+
_(out).must_match(/.*NAME.*/)
|
138
138
|
end
|
139
139
|
|
140
140
|
it "should print data only when --no-headers is set" do
|
@@ -143,13 +143,13 @@ describe HammerCLI::Output::Adapter::Table do
|
|
143
143
|
"",
|
144
144
|
].join("\n")
|
145
145
|
adapter = HammerCLI::Output::Adapter::Table.new( { :no_headers => true } )
|
146
|
-
|
146
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
147
147
|
end
|
148
148
|
|
149
149
|
it "should print nothing when --no-headers is set but no data" do
|
150
150
|
expected_output = ""
|
151
151
|
adapter = HammerCLI::Output::Adapter::Table.new( { :no_headers => true } )
|
152
|
-
|
152
|
+
_{ adapter.print_collection(fields, empty_data) }.must_output(expected_output)
|
153
153
|
end
|
154
154
|
end
|
155
155
|
|
@@ -168,7 +168,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
168
168
|
""
|
169
169
|
].join("\n")
|
170
170
|
|
171
|
-
|
171
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
172
172
|
end
|
173
173
|
|
174
174
|
it "calculates correct width of czech characters" do
|
@@ -184,7 +184,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
184
184
|
""
|
185
185
|
].join("\n")
|
186
186
|
|
187
|
-
|
187
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
188
188
|
end
|
189
189
|
|
190
190
|
it "calculates correct width of colorized strings" do
|
@@ -200,7 +200,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
200
200
|
""
|
201
201
|
].join("\n").gsub('John', "#{red}John#{reset}")
|
202
202
|
|
203
|
-
|
203
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
204
204
|
end
|
205
205
|
|
206
206
|
it "truncates two-column characters when it exceeds maximum width" do
|
@@ -216,7 +216,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
216
216
|
""
|
217
217
|
].join("\n")
|
218
218
|
|
219
|
-
|
219
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
220
220
|
end
|
221
221
|
|
222
222
|
it "truncates colorized string string when it exceeds maximum width" do
|
@@ -232,7 +232,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
232
232
|
""
|
233
233
|
].join("\n").gsub('SomeVer', "#{red}SomeVer#{reset}")
|
234
234
|
|
235
|
-
|
235
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
236
236
|
end
|
237
237
|
|
238
238
|
it "truncates string when it exceeds maximum width" do
|
@@ -248,7 +248,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
248
248
|
""
|
249
249
|
].join("\n")
|
250
250
|
|
251
|
-
|
251
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
252
252
|
end
|
253
253
|
|
254
254
|
it "truncates string when it exceeds width" do
|
@@ -264,7 +264,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
264
264
|
""
|
265
265
|
].join("\n")
|
266
266
|
|
267
|
-
|
267
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
268
268
|
end
|
269
269
|
|
270
270
|
it "sets width to the longest column name when no data" do
|
@@ -277,7 +277,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
277
277
|
"------------------------|---------",
|
278
278
|
""
|
279
279
|
].join("\n")
|
280
|
-
|
280
|
+
_{ adapter.print_collection(fields, empty_data) }.must_output(expected_output)
|
281
281
|
end
|
282
282
|
|
283
283
|
it "sets certain width" do
|
@@ -293,7 +293,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
293
293
|
""
|
294
294
|
].join("\n")
|
295
295
|
|
296
|
-
|
296
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
297
297
|
end
|
298
298
|
|
299
299
|
it "sets certain width when no data" do
|
@@ -307,7 +307,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
307
307
|
""
|
308
308
|
].join("\n")
|
309
309
|
|
310
|
-
|
310
|
+
_{ adapter.print_collection(fields, empty_data) }.must_output(expected_output)
|
311
311
|
end
|
312
312
|
|
313
313
|
|
@@ -324,7 +324,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
324
324
|
""
|
325
325
|
].join("\n")
|
326
326
|
|
327
|
-
|
327
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
328
328
|
end
|
329
329
|
|
330
330
|
it "gives preference to width over maximal width when no data" do
|
@@ -338,7 +338,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
338
338
|
""
|
339
339
|
].join("\n")
|
340
340
|
|
341
|
-
|
341
|
+
_{ adapter.print_collection(fields, empty_data) }.must_output(expected_output)
|
342
342
|
end
|
343
343
|
|
344
344
|
|
@@ -354,7 +354,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
354
354
|
|
355
355
|
adapter = HammerCLI::Output::Adapter::Table.new({}, { :Field => [ DotFormatter.new ]})
|
356
356
|
out, _ = capture_io { adapter.print_collection(fields, data) }
|
357
|
-
out.must_match(/.*-DOT-.*/)
|
357
|
+
_(out).must_match(/.*-DOT-.*/)
|
358
358
|
end
|
359
359
|
|
360
360
|
it "should not break formatting" do
|
@@ -375,7 +375,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
375
375
|
""
|
376
376
|
].join("\n")
|
377
377
|
|
378
|
-
|
378
|
+
_{ adapter.print_collection([field_long], data) }.must_output(expected_output)
|
379
379
|
end
|
380
380
|
|
381
381
|
end
|
@@ -401,9 +401,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
401
401
|
"---|------------",
|
402
402
|
).join("\n") + "\n---|------------\n"
|
403
403
|
|
404
|
-
|
405
|
-
adapter.print_collection(fields, collection_data)
|
406
|
-
end.must_output(expected_output)
|
404
|
+
_{adapter.print_collection(fields, collection_data)}.must_output(expected_output)
|
407
405
|
end
|
408
406
|
|
409
407
|
it 'prints first chunk' do
|
@@ -417,11 +415,9 @@ describe HammerCLI::Output::Adapter::Table do
|
|
417
415
|
"---|-----------",
|
418
416
|
).join("\n") + "\n"
|
419
417
|
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
)
|
424
|
-
end.must_output(expected_output)
|
418
|
+
_{adapter.print_collection(
|
419
|
+
fields, collection_data[0...10], current_chunk: :first
|
420
|
+
)}.must_output(expected_output)
|
425
421
|
end
|
426
422
|
|
427
423
|
it 'prints another chunk' do
|
@@ -429,11 +425,9 @@ describe HammerCLI::Output::Adapter::Table do
|
|
429
425
|
r << ["#{t} | John Doe #{t}"]
|
430
426
|
end.flatten(1).join("\n") + "\n"
|
431
427
|
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
)
|
436
|
-
end.must_output(expected_output)
|
428
|
+
_{adapter.print_collection(
|
429
|
+
fields, collection_data[10...20], current_chunk: :another
|
430
|
+
)}.must_output(expected_output)
|
437
431
|
end
|
438
432
|
#
|
439
433
|
it 'prints last chunk' do
|
@@ -441,11 +435,9 @@ describe HammerCLI::Output::Adapter::Table do
|
|
441
435
|
r << ["#{t} | John Doe #{t}"]
|
442
436
|
end.flatten(1).join("\n") + "\n---|------------\n"
|
443
437
|
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
)
|
448
|
-
end.must_output(expected_output)
|
438
|
+
_{adapter.print_collection(
|
439
|
+
fields, collection_data[20...30], current_chunk: :last
|
440
|
+
)}.must_output(expected_output)
|
449
441
|
end
|
450
442
|
end
|
451
443
|
|
@@ -458,7 +450,7 @@ describe HammerCLI::Output::Adapter::Table do
|
|
458
450
|
it "should not print to stdout when --output-file is set" do
|
459
451
|
fields = [field_firstname]
|
460
452
|
|
461
|
-
|
453
|
+
_{ adapter.print_collection(fields, data) }.must_output("")
|
462
454
|
end
|
463
455
|
|
464
456
|
it "should print to file if --output-file is set" do
|
@@ -474,14 +466,14 @@ describe HammerCLI::Output::Adapter::Table do
|
|
474
466
|
|
475
467
|
adapter.print_collection(fields, data)
|
476
468
|
tempfile.close
|
477
|
-
IO.read(tempfile.path).must_equal(expected_output)
|
469
|
+
_(IO.read(tempfile.path)).must_equal(expected_output)
|
478
470
|
end
|
479
471
|
|
480
472
|
end
|
481
473
|
|
482
474
|
context 'print_message' do
|
483
475
|
it 'should print message with nil params' do
|
484
|
-
|
476
|
+
_{ adapter.print_message('MESSAGE', nil) }.must_output(/.*MESSAGE.*/, '')
|
485
477
|
end
|
486
478
|
end
|
487
479
|
end
|
@@ -6,7 +6,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
6
6
|
let(:adapter) { HammerCLI::Output::Adapter::Yaml.new(context, HammerCLI::Output::Output.formatters) }
|
7
7
|
|
8
8
|
it "forbids default pagination" do
|
9
|
-
adapter.paginate_by_default
|
9
|
+
_(adapter.paginate_by_default?).must_equal false
|
10
10
|
end
|
11
11
|
|
12
12
|
context "print_message" do
|
@@ -19,7 +19,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
19
19
|
''
|
20
20
|
].join("\n")
|
21
21
|
|
22
|
-
|
22
|
+
_{ adapter.print_message(msg, params) }.must_output(expected_output)
|
23
23
|
end
|
24
24
|
|
25
25
|
it "prints the message with name and id" do
|
@@ -33,7 +33,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
33
33
|
''
|
34
34
|
].join("\n")
|
35
35
|
|
36
|
-
|
36
|
+
_{ adapter.print_message(msg, params) }.must_output(expected_output)
|
37
37
|
end
|
38
38
|
|
39
39
|
it 'prints the message with nil params' do
|
@@ -44,14 +44,14 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
44
44
|
':message: MESSAGE',
|
45
45
|
''
|
46
46
|
].join("\n")
|
47
|
-
|
47
|
+
_{ adapter.print_message(msg, params) }.must_output(expected_output)
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
51
|
context "print_collection" do
|
52
52
|
|
53
53
|
let(:id) { Fields::Id.new(:path => [:id], :label => "Id") }
|
54
|
-
let(:
|
54
|
+
let(:firstname) { Fields::Field.new(:path => [:name], :label => "Name") }
|
55
55
|
let(:unlabeled) { Fields::Field.new(:path => [:name]) }
|
56
56
|
let(:surname) { Fields::Field.new(:path => [:surname], :label => "Surname") }
|
57
57
|
let(:address_city) { Fields::Field.new(:path => [:address, :city], :label => "City") }
|
@@ -106,15 +106,15 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
106
106
|
}]}
|
107
107
|
|
108
108
|
it "should print one field" do
|
109
|
-
fields = [
|
109
|
+
fields = [firstname]
|
110
110
|
expected_output = YAML.dump([{ 'Name' => 'John' }])
|
111
|
-
|
111
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
112
112
|
end
|
113
113
|
|
114
114
|
it "should field with nested data" do
|
115
115
|
fields = [address_city]
|
116
116
|
expected_output = YAML.dump([{ 'City' => 'New York' }])
|
117
|
-
|
117
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
118
118
|
end
|
119
119
|
|
120
120
|
it "should print labeled fields" do
|
@@ -126,7 +126,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
126
126
|
}
|
127
127
|
}]
|
128
128
|
expected_output = YAML.dump(hash)
|
129
|
-
|
129
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
130
130
|
end
|
131
131
|
|
132
132
|
it "should print collection" do
|
@@ -146,7 +146,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
146
146
|
}]
|
147
147
|
|
148
148
|
expected_output = YAML.dump(hash)
|
149
|
-
|
149
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
150
150
|
end
|
151
151
|
|
152
152
|
it "should print collection with one element" do
|
@@ -162,7 +162,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
162
162
|
}]
|
163
163
|
|
164
164
|
expected_output = YAML.dump(hash)
|
165
|
-
|
165
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
166
166
|
end
|
167
167
|
|
168
168
|
it "should print unnumbered collection" do
|
@@ -181,7 +181,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
181
181
|
}]
|
182
182
|
|
183
183
|
expected_output = YAML.dump(hash)
|
184
|
-
|
184
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
185
185
|
end
|
186
186
|
|
187
187
|
it "should print unnumbered collection with one element" do
|
@@ -196,24 +196,24 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
196
196
|
}]
|
197
197
|
|
198
198
|
expected_output = YAML.dump(hash)
|
199
|
-
|
199
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
200
200
|
end
|
201
201
|
|
202
202
|
|
203
203
|
it "hides ids by default" do
|
204
|
-
fields = [id,
|
204
|
+
fields = [id, firstname]
|
205
205
|
hash = [{'Name' => 'John'}]
|
206
206
|
expected_output = YAML.dump(hash)
|
207
207
|
|
208
|
-
|
208
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
209
209
|
end
|
210
210
|
|
211
211
|
it "skips blank values" do
|
212
|
-
fields = [
|
212
|
+
fields = [firstname, blank]
|
213
213
|
hash = [{'Name' => 'John'}]
|
214
214
|
expected_output = YAML.dump(hash)
|
215
215
|
|
216
|
-
|
216
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
217
217
|
end
|
218
218
|
|
219
219
|
it "does not print fields which data are missing from api by default" do
|
@@ -221,7 +221,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
221
221
|
hash = [{ 'Surname' => 'Doe' }]
|
222
222
|
expected_output = YAML.dump(hash)
|
223
223
|
|
224
|
-
|
224
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
225
225
|
end
|
226
226
|
|
227
227
|
it "prints fields which data are missing from api when field has hide_missing flag set to false" do
|
@@ -229,7 +229,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
229
229
|
hash = [{ 'Surname' => 'Doe', 'Missing' => HammerCLI::Output::DataMissing.new }]
|
230
230
|
expected_output = YAML.dump(hash)
|
231
231
|
|
232
|
-
|
232
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
233
233
|
end
|
234
234
|
|
235
235
|
it "should print key -> value" do
|
@@ -250,11 +250,11 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
250
250
|
}]
|
251
251
|
expected_output = YAML.dump(hash)
|
252
252
|
|
253
|
-
|
253
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
254
254
|
end
|
255
255
|
|
256
256
|
context 'capitalization' do
|
257
|
-
let(:fields) { [
|
257
|
+
let(:fields) { [firstname, surname] }
|
258
258
|
let(:raw_hash) { { 'Name' => 'John', 'Surname' => 'Doe' } }
|
259
259
|
let(:settings) { HammerCLI::Settings }
|
260
260
|
let(:context) { { :capitalization => HammerCLI.capitalization } }
|
@@ -266,7 +266,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
266
266
|
out, = capture_io do
|
267
267
|
adapter.print_collection(fields, data)
|
268
268
|
end
|
269
|
-
out.must_equal(expected_output)
|
269
|
+
_(out).must_equal(expected_output)
|
270
270
|
end
|
271
271
|
|
272
272
|
it 'should respect selected capitalize capitalization' do
|
@@ -276,7 +276,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
276
276
|
out, = capture_io do
|
277
277
|
adapter.print_collection(fields, data)
|
278
278
|
end
|
279
|
-
out.must_equal(expected_output)
|
279
|
+
_(out).must_equal(expected_output)
|
280
280
|
end
|
281
281
|
|
282
282
|
it 'should respect selected upcase capitalization' do
|
@@ -286,7 +286,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
286
286
|
out, = capture_io do
|
287
287
|
adapter.print_collection(fields, data)
|
288
288
|
end
|
289
|
-
out.must_equal(expected_output)
|
289
|
+
_(out).must_equal(expected_output)
|
290
290
|
end
|
291
291
|
|
292
292
|
it 'should print a warn for not supported capitalization' do
|
@@ -297,8 +297,8 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
297
297
|
out, err = capture_io do
|
298
298
|
adapter.print_collection(fields, data)
|
299
299
|
end
|
300
|
-
out.must_equal(expected_output)
|
301
|
-
err.must_equal(expected_error)
|
300
|
+
_(out).must_equal(expected_output)
|
301
|
+
_(err).must_equal(expected_error)
|
302
302
|
end
|
303
303
|
|
304
304
|
it "shouldn't change capitalization if wasn't selected" do
|
@@ -308,7 +308,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
308
308
|
out, = capture_io do
|
309
309
|
adapter.print_collection(fields, data)
|
310
310
|
end
|
311
|
-
out.must_equal(expected_output)
|
311
|
+
_(out).must_equal(expected_output)
|
312
312
|
end
|
313
313
|
end
|
314
314
|
|
@@ -326,7 +326,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
326
326
|
let(:collection_data) do
|
327
327
|
HammerCLI::Output::RecordCollection.new(collection)
|
328
328
|
end
|
329
|
-
let(:fields) { [id,
|
329
|
+
let(:fields) { [id, firstname] }
|
330
330
|
|
331
331
|
it 'prints single chunk' do
|
332
332
|
expected_output = YAML.dump(prepared_collection)
|
@@ -334,7 +334,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
334
334
|
out, _err = capture_io do
|
335
335
|
adapter.print_collection(fields, collection_data)
|
336
336
|
end
|
337
|
-
out.must_equal(expected_output)
|
337
|
+
_(out).must_equal(expected_output)
|
338
338
|
end
|
339
339
|
|
340
340
|
it 'prints first chunk' do
|
@@ -345,7 +345,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
345
345
|
fields, collection_data[0...10], current_chunk: :first
|
346
346
|
)
|
347
347
|
end
|
348
|
-
out.must_equal(expected_output)
|
348
|
+
_(out).must_equal(expected_output)
|
349
349
|
end
|
350
350
|
|
351
351
|
it 'prints another chunk' do
|
@@ -356,7 +356,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
356
356
|
fields, collection_data[10...20], current_chunk: :another
|
357
357
|
)
|
358
358
|
end
|
359
|
-
out.must_equal(expected_output)
|
359
|
+
_(out).must_equal(expected_output)
|
360
360
|
end
|
361
361
|
|
362
362
|
it 'prints last chunk' do
|
@@ -367,7 +367,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
367
367
|
fields, collection_data[20...30], current_chunk: :last
|
368
368
|
)
|
369
369
|
end
|
370
|
-
out.must_equal(expected_output)
|
370
|
+
_(out).must_equal(expected_output)
|
371
371
|
end
|
372
372
|
end
|
373
373
|
|
@@ -376,13 +376,13 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
376
376
|
let(:context) { {:show_ids => true} }
|
377
377
|
|
378
378
|
it "shows ids if it's required in the context" do
|
379
|
-
fields = [id,
|
379
|
+
fields = [id, firstname]
|
380
380
|
hash = [{
|
381
381
|
'Id' => 112,
|
382
382
|
'Name' => 'John'
|
383
383
|
}]
|
384
384
|
expected_output = YAML.dump(hash)
|
385
|
-
|
385
|
+
_{ adapter.print_collection(fields, data) }.must_output(expected_output)
|
386
386
|
end
|
387
387
|
|
388
388
|
end
|
@@ -393,13 +393,13 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
393
393
|
let(:context) { {:output_file => tempfile} }
|
394
394
|
|
395
395
|
it "should not print to stdout when --output-file is set" do
|
396
|
-
fields = [
|
396
|
+
fields = [firstname]
|
397
397
|
|
398
|
-
|
398
|
+
_{ adapter.print_collection(fields, data) }.must_output("")
|
399
399
|
end
|
400
400
|
|
401
401
|
it "should print to file if --output-file is set" do
|
402
|
-
fields = [
|
402
|
+
fields = [firstname]
|
403
403
|
hash = [{
|
404
404
|
'Name' => 'John'
|
405
405
|
}]
|
@@ -407,7 +407,7 @@ describe HammerCLI::Output::Adapter::Yaml do
|
|
407
407
|
|
408
408
|
adapter.print_collection(fields, data)
|
409
409
|
tempfile.close
|
410
|
-
IO.read(tempfile.path).must_equal(expected_output)
|
410
|
+
_(IO.read(tempfile.path)).must_equal(expected_output)
|
411
411
|
end
|
412
412
|
|
413
413
|
end
|