hammer_cli 0.9.0 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/hammer +22 -1
- data/config/cli_config.template.yml +20 -0
- data/doc/release_notes.md +7 -0
- data/lib/hammer_cli/abstract.rb +12 -15
- data/lib/hammer_cli/apipie/api_connection.rb +3 -1
- data/lib/hammer_cli/ca_cert_fetcher.rb +67 -0
- data/lib/hammer_cli/defaults.rb +18 -10
- data/lib/hammer_cli/exception_handler.rb +44 -5
- data/lib/hammer_cli/main.rb +8 -0
- data/lib/hammer_cli/options/option_collector.rb +22 -0
- data/lib/hammer_cli/options/sources/command_line.rb +18 -0
- data/lib/hammer_cli/options/sources/saved_defaults.rb +31 -0
- data/lib/hammer_cli/output/adapter/table.rb +66 -87
- data/lib/hammer_cli/output/fields.rb +1 -1
- data/lib/hammer_cli/ssloptions.rb +65 -0
- data/lib/hammer_cli/version.rb +1 -1
- data/locale/ca/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/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/unit/abstract_test.rb +34 -0
- data/test/unit/apipie/api_connection_test.rb +3 -2
- data/test/unit/defaults_test.rb +15 -5
- data/test/unit/fixtures/defaults/defaults.yml +2 -0
- data/test/unit/options/option_collector_test.rb +29 -0
- data/test/unit/options/sources/command_line_test.rb +36 -0
- data/test/unit/options/sources/saved_defaults_test.rb +59 -0
- data/test/unit/output/adapter/table_test.rb +0 -27
- data/test/unit/{options → output}/field_filter_test.rb +0 -0
- data/test/unit/output/fields_test.rb +9 -6
- data/test/unit/validator_test.rb +0 -6
- metadata +60 -382
- data/lib/hammer_cli/table_print/column.rb +0 -19
- data/lib/hammer_cli/table_print/formatter.rb +0 -18
- data/locale/Makefile +0 -57
- data/locale/README.md +0 -18
- data/locale/ca/hammer-cli.edit.po +0 -445
- data/locale/ca/hammer-cli.po +0 -361
- data/locale/ca/hammer-cli.po.time_stamp +0 -0
- data/locale/de/hammer-cli.edit.po +0 -451
- data/locale/de/hammer-cli.po +0 -379
- data/locale/de/hammer-cli.po.time_stamp +0 -0
- data/locale/en/hammer-cli.edit.po +0 -443
- data/locale/en/hammer-cli.po +0 -355
- data/locale/en/hammer-cli.po.time_stamp +0 -0
- data/locale/en_GB/hammer-cli.edit.po +0 -445
- data/locale/en_GB/hammer-cli.po +0 -371
- data/locale/en_GB/hammer-cli.po.time_stamp +0 -0
- data/locale/es/hammer-cli.edit.po +0 -448
- data/locale/es/hammer-cli.po +0 -377
- data/locale/es/hammer-cli.po.time_stamp +0 -0
- data/locale/fr/hammer-cli.edit.po +0 -447
- data/locale/fr/hammer-cli.po +0 -374
- data/locale/fr/hammer-cli.po.time_stamp +0 -0
- data/locale/hammer-cli.pot +0 -461
- data/locale/it/hammer-cli.edit.po +0 -446
- data/locale/it/hammer-cli.po +0 -377
- data/locale/it/hammer-cli.po.time_stamp +0 -0
- data/locale/ja/hammer-cli.edit.po +0 -445
- data/locale/ja/hammer-cli.po +0 -363
- data/locale/ja/hammer-cli.po.time_stamp +0 -0
- data/locale/ko/hammer-cli.edit.po +0 -445
- data/locale/ko/hammer-cli.po +0 -364
- data/locale/ko/hammer-cli.po.time_stamp +0 -0
- data/locale/pt_BR/hammer-cli.edit.po +0 -449
- data/locale/pt_BR/hammer-cli.po +0 -374
- data/locale/pt_BR/hammer-cli.po.time_stamp +0 -0
- data/locale/ru/hammer-cli.edit.po +0 -448
- data/locale/ru/hammer-cli.po +0 -374
- data/locale/ru/hammer-cli.po.time_stamp +0 -0
- data/locale/zanata.xml +0 -28
- data/locale/zh_CN/hammer-cli.edit.po +0 -445
- data/locale/zh_CN/hammer-cli.po +0 -367
- data/locale/zh_CN/hammer-cli.po.time_stamp +0 -0
- data/locale/zh_TW/hammer-cli.edit.po +0 -445
- data/locale/zh_TW/hammer-cli.po +0 -364
- data/locale/zh_TW/hammer-cli.po.time_stamp +0 -0
- data/test/reports/TEST-Fields-ContainerField-display-.xml +0 -7
- data/test/reports/TEST-Fields-ContainerField-display-blank-is-allowed.xml +0 -15
- data/test/reports/TEST-Fields-ContainerField-display-blank-is-not-allowed.xml +0 -15
- data/test/reports/TEST-Fields-ContainerField.xml +0 -7
- data/test/reports/TEST-Fields-Field-display-.xml +0 -7
- data/test/reports/TEST-Fields-Field-display-blank-is-allowed.xml +0 -11
- data/test/reports/TEST-Fields-Field-display-blank-is-not-allowed.xml +0 -11
- data/test/reports/TEST-Fields-Field-hide-blank-.xml +0 -11
- data/test/reports/TEST-Fields-Field-parameters.xml +0 -9
- data/test/reports/TEST-Fields-Field.xml +0 -13
- data/test/reports/TEST-HammerCLI-AbstractCommand-build-options.xml +0 -15
- data/test/reports/TEST-HammerCLI-AbstractCommand-exception-handler.xml +0 -13
- data/test/reports/TEST-HammerCLI-AbstractCommand-logging.xml +0 -21
- data/test/reports/TEST-HammerCLI-AbstractCommand-option-builder.xml +0 -11
- data/test/reports/TEST-HammerCLI-AbstractCommand-options.xml +0 -11
- data/test/reports/TEST-HammerCLI-AbstractCommand-output.xml +0 -19
- data/test/reports/TEST-HammerCLI-AbstractCommand-subcommand-behavior-remove-subcommand.xml +0 -11
- data/test/reports/TEST-HammerCLI-AbstractCommand-subcommand-behavior-subcommand-.xml +0 -13
- data/test/reports/TEST-HammerCLI-AbstractCommand-subcommand-behavior-subcommand.xml +0 -11
- data/test/reports/TEST-HammerCLI-AbstractCommand-subcommand-behavior.xml +0 -7
- data/test/reports/TEST-HammerCLI-AbstractCommand.xml +0 -11
- data/test/reports/TEST-HammerCLI-Apipie-Command-options.xml +0 -11
- data/test/reports/TEST-HammerCLI-Apipie-Command-resource-defined.xml +0 -9
- data/test/reports/TEST-HammerCLI-Apipie-Command-setting-resources.xml +0 -19
- data/test/reports/TEST-HammerCLI-Apipie-Command.xml +0 -9
- data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-aliasing-resources.xml +0 -13
- data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-filtering-options.xml +0 -15
- data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-required-options.xml +0 -11
- data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-setting-correct-normalizers.xml +0 -9
- data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-with-hash-params.xml +0 -11
- data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-with-one-simple-param.xml +0 -15
- data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder.xml +0 -7
- data/test/reports/TEST-HammerCLI-Completer-command-completion.xml +0 -29
- data/test/reports/TEST-HammerCLI-Completer-option-value-completion.xml +0 -17
- data/test/reports/TEST-HammerCLI-Completer-subcommand-completion.xml +0 -19
- data/test/reports/TEST-HammerCLI-Completer.xml +0 -7
- data/test/reports/TEST-HammerCLI-CompleterLine-line-complete.xml +0 -25
- data/test/reports/TEST-HammerCLI-CompleterLine-splitting-words.xml +0 -29
- data/test/reports/TEST-HammerCLI-CompleterLine.xml +0 -7
- data/test/reports/TEST-HammerCLI-CompleterWord-complete-.xml +0 -23
- data/test/reports/TEST-HammerCLI-CompleterWord-quote.xml +0 -15
- data/test/reports/TEST-HammerCLI-CompleterWord-quoted-.xml +0 -13
- data/test/reports/TEST-HammerCLI-CompleterWord.xml +0 -7
- data/test/reports/TEST-HammerCLI-Connection.xml +0 -21
- data/test/reports/TEST-HammerCLI-ExceptionHandler.xml +0 -21
- data/test/reports/TEST-HammerCLI-I18n.xml +0 -11
- data/test/reports/TEST-HammerCLI-MainCommand-loading-context-password.xml +0 -11
- data/test/reports/TEST-HammerCLI-MainCommand-loading-context-username.xml +0 -11
- data/test/reports/TEST-HammerCLI-MainCommand-loading-context-verbose.xml +0 -9
- data/test/reports/TEST-HammerCLI-MainCommand-loading-context.xml +0 -7
- data/test/reports/TEST-HammerCLI-MainCommand.xml +0 -7
- data/test/reports/TEST-HammerCLI-Modules-find-by-name.xml +0 -13
- data/test/reports/TEST-HammerCLI-Modules-load-a-module-module-not-found.xml +0 -13
- data/test/reports/TEST-HammerCLI-Modules-load-a-module-module-runtime-exception.xml +0 -13
- data/test/reports/TEST-HammerCLI-Modules-load-a-module-success.xml +0 -15
- data/test/reports/TEST-HammerCLI-Modules-load-a-module.xml +0 -7
- data/test/reports/TEST-HammerCLI-Modules-load-all-modules.xml +0 -9
- data/test/reports/TEST-HammerCLI-Modules-names.xml +0 -13
- data/test/reports/TEST-HammerCLI-Modules.xml +0 -7
- data/test/reports/TEST-HammerCLI-OptionBuilderContainer.0.xml +0 -7
- data/test/reports/TEST-HammerCLI-OptionBuilderContainer.xml +0 -11
- data/test/reports/TEST-HammerCLI-Options-Normalizers-abstract.xml +0 -9
- data/test/reports/TEST-HammerCLI-Options-Normalizers-bool.xml +0 -31
- data/test/reports/TEST-HammerCLI-Options-Normalizers-datetime.xml +0 -17
- data/test/reports/TEST-HammerCLI-Options-Normalizers-enum.xml +0 -15
- data/test/reports/TEST-HammerCLI-Options-Normalizers-enumlist.xml +0 -21
- data/test/reports/TEST-HammerCLI-Options-Normalizers-json-input.xml +0 -15
- data/test/reports/TEST-HammerCLI-Options-Normalizers-key-value-list.xml +0 -17
- data/test/reports/TEST-HammerCLI-Options-Normalizers-list.xml +0 -15
- data/test/reports/TEST-HammerCLI-Options-Normalizers.xml +0 -7
- data/test/reports/TEST-HammerCLI-Options-OptionDefinition-context.xml +0 -9
- data/test/reports/TEST-HammerCLI-Options-OptionDefinition-formatters.xml +0 -11
- data/test/reports/TEST-HammerCLI-Options-OptionDefinition.xml +0 -7
- data/test/reports/TEST-HammerCLI-Output-Adapter-Abstract-error-messages.xml +0 -15
- data/test/reports/TEST-HammerCLI-Output-Adapter-Abstract-messages.xml +0 -11
- data/test/reports/TEST-HammerCLI-Output-Adapter-Abstract-test-data-for-field.xml +0 -15
- data/test/reports/TEST-HammerCLI-Output-Adapter-Abstract.xml +0 -17
- data/test/reports/TEST-HammerCLI-Output-Adapter-Base-print-collection-show-ids.xml +0 -9
- data/test/reports/TEST-HammerCLI-Output-Adapter-Base-print-collection.xml +0 -27
- data/test/reports/TEST-HammerCLI-Output-Adapter-Base.xml +0 -7
- data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-collection-formatters.xml +0 -11
- data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-collection-handle-fields-with-collections.xml +0 -13
- data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-collection-handle-fields-with-containers.xml +0 -11
- data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-collection-handle-ids.xml +0 -11
- data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-collection.xml +0 -11
- data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-message.xml +0 -11
- data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues.xml +0 -7
- data/test/reports/TEST-HammerCLI-Output-Adapter-Table-print-collection-column-width.xml +0 -15
- data/test/reports/TEST-HammerCLI-Output-Adapter-Table-print-collection-formatters.xml +0 -11
- data/test/reports/TEST-HammerCLI-Output-Adapter-Table-print-collection-handle-ids.xml +0 -11
- data/test/reports/TEST-HammerCLI-Output-Adapter-Table-print-collection-sort-columns.xml +0 -9
- data/test/reports/TEST-HammerCLI-Output-Adapter-Table-print-collection.xml +0 -11
- data/test/reports/TEST-HammerCLI-Output-Adapter-Table.xml +0 -7
- data/test/reports/TEST-HammerCLI-Output-Definition-empty-.xml +0 -11
- data/test/reports/TEST-HammerCLI-Output-Definition.xml +0 -11
- data/test/reports/TEST-HammerCLI-Output-Dsl-collection.xml +0 -13
- data/test/reports/TEST-HammerCLI-Output-Dsl-custom-fields.xml +0 -11
- data/test/reports/TEST-HammerCLI-Output-Dsl-fields.xml +0 -15
- data/test/reports/TEST-HammerCLI-Output-Dsl-label.xml +0 -13
- data/test/reports/TEST-HammerCLI-Output-Dsl-path-definition.xml +0 -13
- data/test/reports/TEST-HammerCLI-Output-Dsl.xml +0 -9
- data/test/reports/TEST-HammerCLI-Output-FieldFilter.xml +0 -13
- data/test/reports/TEST-HammerCLI-Output-Formatters-BooleanFormatter.xml +0 -11
- data/test/reports/TEST-HammerCLI-Output-Formatters-ColorFormatter.xml +0 -9
- data/test/reports/TEST-HammerCLI-Output-Formatters-DateFormatter.xml +0 -11
- data/test/reports/TEST-HammerCLI-Output-Formatters-FieldFormatter.xml +0 -13
- data/test/reports/TEST-HammerCLI-Output-Formatters-FormatterContainer.xml +0 -13
- data/test/reports/TEST-HammerCLI-Output-Formatters-FormatterLibrary.xml +0 -11
- data/test/reports/TEST-HammerCLI-Output-Formatters-KeyValueFormatter.xml +0 -13
- data/test/reports/TEST-HammerCLI-Output-Formatters-ListFormatter.xml +0 -13
- data/test/reports/TEST-HammerCLI-Output-Formatters-LongTextFormatter.xml +0 -13
- data/test/reports/TEST-HammerCLI-Output-Output-adapters.xml +0 -17
- data/test/reports/TEST-HammerCLI-Output-Output-data.xml +0 -15
- data/test/reports/TEST-HammerCLI-Output-Output-formatters.xml +0 -9
- data/test/reports/TEST-HammerCLI-Output-Output-messages.xml +0 -19
- data/test/reports/TEST-HammerCLI-Output-Output.xml +0 -7
- data/test/reports/TEST-HammerCLI-Output-RecordCollection.xml +0 -13
- data/test/reports/TEST-HammerCLI-Settings-load-from-paths.xml +0 -15
- data/test/reports/TEST-HammerCLI-Settings.xml +0 -25
- data/test/reports/TEST-HammerCLI-ShellHistory-loading-old-history.xml +0 -11
- data/test/reports/TEST-HammerCLI-ShellHistory-saving-history.xml +0 -15
- data/test/reports/TEST-HammerCLI-ShellHistory.xml +0 -7
- data/test/reports/TEST-MiniTest-Spec.xml +0 -7
- data/test/reports/TEST-String-camelize.xml +0 -11
- data/test/reports/TEST-String-formatting.xml +0 -17
- data/test/reports/TEST-String-indent.xml +0 -11
- data/test/reports/TEST-String-interactive-.xml +0 -13
- data/test/reports/TEST-String.xml +0 -7
- data/test/reports/TEST-constraints-HammerCLI-Validator-AllConstraint-exist-.xml +0 -13
- data/test/reports/TEST-constraints-HammerCLI-Validator-AllConstraint.xml +0 -7
- data/test/reports/TEST-constraints-HammerCLI-Validator-AnyConstraint-exist-.xml +0 -13
- data/test/reports/TEST-constraints-HammerCLI-Validator-AnyConstraint.xml +0 -7
- data/test/reports/TEST-constraints-HammerCLI-Validator-BaseConstraint-exist-.xml +0 -9
- data/test/reports/TEST-constraints-HammerCLI-Validator-BaseConstraint-rejected.xml +0 -13
- data/test/reports/TEST-constraints-HammerCLI-Validator-BaseConstraint-required.xml +0 -13
- data/test/reports/TEST-constraints-HammerCLI-Validator-BaseConstraint.xml +0 -7
- data/test/reports/TEST-constraints.xml +0 -7
@@ -0,0 +1,65 @@
|
|
1
|
+
module HammerCLI
|
2
|
+
class SSLOptions
|
3
|
+
def initialize(settings = HammerCLI::Settings, logger = Logging.logger['SSLoptions'])
|
4
|
+
@settings = settings
|
5
|
+
@logger = logger
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.get_options(settings = HammerCLI::Settings, logger = Logging.logger['SSLoptions'])
|
9
|
+
self.new(settings, logger).get_options
|
10
|
+
end
|
11
|
+
|
12
|
+
def get_options
|
13
|
+
ssl_options = {}
|
14
|
+
for sslopt in [:ssl_ca_file, :ssl_ca_path, :verify_ssl] do
|
15
|
+
ssloptval = read_ssl_option(sslopt)
|
16
|
+
ssl_options[sslopt] = ssloptval unless ssloptval.nil?
|
17
|
+
end
|
18
|
+
ssl_options.merge!(cert_key_options)
|
19
|
+
|
20
|
+
# enable ssl verification
|
21
|
+
ssl_options[:verify_ssl] = true if ssl_options[:verify_ssl].nil?
|
22
|
+
@logger.debug("SSL options: #{ApipieBindings::Utils::inspect_data(ssl_options)}")
|
23
|
+
ssl_options
|
24
|
+
end
|
25
|
+
|
26
|
+
protected
|
27
|
+
|
28
|
+
def read_ssl_option(key)
|
29
|
+
@settings.get(:_params, key).nil? ? @settings.get(:ssl, key) : @settings.get(:_params, key)
|
30
|
+
end
|
31
|
+
|
32
|
+
def cert_key_options
|
33
|
+
options = {
|
34
|
+
:ssl_client_cert => read_certificate(read_ssl_option(:ssl_client_cert)),
|
35
|
+
:ssl_client_key => read_key(read_ssl_option(:ssl_client_key))
|
36
|
+
}
|
37
|
+
|
38
|
+
if options[:ssl_client_cert] && options[:ssl_client_key]
|
39
|
+
options
|
40
|
+
elsif options[:ssl_client_cert] || options[:ssl_client_key]
|
41
|
+
if options[:ssl_client_cert]
|
42
|
+
warn _("SSL client certificate is set but the key is not")
|
43
|
+
elsif options[:ssl_client_key]
|
44
|
+
warn _("SSL client key is set but the certificate is not")
|
45
|
+
end
|
46
|
+
warn _("SSL client authentication disabled")
|
47
|
+
{}
|
48
|
+
else
|
49
|
+
{}
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def read_certificate(path)
|
54
|
+
OpenSSL::X509::Certificate.new(File.read(path)) unless path.nil?
|
55
|
+
rescue SystemCallError => e
|
56
|
+
warn _("Could't read SSL client certificate %s") % path
|
57
|
+
end
|
58
|
+
|
59
|
+
def read_key(path)
|
60
|
+
OpenSSL::PKey::RSA.new(File.read(path)) unless path.nil?
|
61
|
+
rescue SystemCallError => e
|
62
|
+
warn _("Could't read SSL client key %s") % path
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
data/lib/hammer_cli/version.rb
CHANGED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/man/hammer.1.gz
CHANGED
Binary file
|
data/test/unit/abstract_test.rb
CHANGED
@@ -351,6 +351,40 @@ describe HammerCLI::AbstractCommand do
|
|
351
351
|
|
352
352
|
end
|
353
353
|
|
354
|
+
describe 'defaults' do
|
355
|
+
class TestDefaultsCmd < HammerCLI::AbstractCommand
|
356
|
+
option '--test', 'TEST', '', :attribute_name => :different_attr_name
|
357
|
+
option ['--test-multi1', '--test-multi2'], 'TEST_MULTI', '', :attribute_name => :multiple_switches_option
|
358
|
+
|
359
|
+
def options
|
360
|
+
super
|
361
|
+
end
|
362
|
+
end
|
363
|
+
|
364
|
+
before do
|
365
|
+
@defaults = mock()
|
366
|
+
@defaults.stubs(:get_defaults).returns(nil)
|
367
|
+
@cmd = TestDefaultsCmd.new("", { :defaults => @defaults })
|
368
|
+
end
|
369
|
+
|
370
|
+
it 'provides default value for an option flag' do
|
371
|
+
@defaults.expects(:get_defaults).with('--test').returns(2)
|
372
|
+
assert_equal({'different_attr_name' => 2}, @cmd.options)
|
373
|
+
end
|
374
|
+
|
375
|
+
it 'prefers values from command line' do
|
376
|
+
@defaults.stubs(:get_defaults).with('--test').returns(2)
|
377
|
+
@cmd.run(['--test=1'])
|
378
|
+
assert_equal({'different_attr_name' => '1'}, @cmd.options)
|
379
|
+
end
|
380
|
+
|
381
|
+
it 'iterates over multiple switches of an option' do
|
382
|
+
@defaults.expects(:get_defaults).with('--test-multi1').returns(nil)
|
383
|
+
@defaults.expects(:get_defaults).with('--test-multi2').returns(3)
|
384
|
+
assert_equal({'multiple_switches_option' => 3}, @cmd.options)
|
385
|
+
end
|
386
|
+
end
|
387
|
+
|
354
388
|
it "should inherit command_name" do
|
355
389
|
class CmdName1 < HammerCLI::AbstractCommand
|
356
390
|
command_name 'cmd'
|
@@ -7,9 +7,10 @@ describe HammerCLI::Apipie::ApiConnection do
|
|
7
7
|
|
8
8
|
let(:empty_params) {{}}
|
9
9
|
|
10
|
-
def api_stub(params = {})
|
10
|
+
def api_stub(params = {}, options = {})
|
11
11
|
api_stub = stub()
|
12
|
-
|
12
|
+
options[:verify_ssl] = true if options[:verify_ssl].nil?
|
13
|
+
ApipieBindings::API.expects(:new).with(params, options).returns(api_stub)
|
13
14
|
api_stub
|
14
15
|
end
|
15
16
|
|
data/test/unit/defaults_test.rb
CHANGED
@@ -29,6 +29,12 @@ describe HammerCLI::Defaults do
|
|
29
29
|
assert_equal 3, defaults_result[:defaults][:location_id][:value]
|
30
30
|
assert_equal nil, defaults_result[:defaults][:'location-id']
|
31
31
|
end
|
32
|
+
|
33
|
+
it "should update underscored default with option syntax when dashed default is set" do
|
34
|
+
defaults_result = @defaults.add_defaults_to_conf({"--location-id"=> 3}, nil)
|
35
|
+
assert_equal 3, defaults_result[:defaults][:'location-id'][:value]
|
36
|
+
assert_equal nil, defaults_result[:defaults][:location_id]
|
37
|
+
end
|
32
38
|
end
|
33
39
|
|
34
40
|
it "Should add a default param to defaults file, with provider" do
|
@@ -70,8 +76,12 @@ describe HammerCLI::Defaults do
|
|
70
76
|
|
71
77
|
|
72
78
|
describe '#get_defaults' do
|
73
|
-
it "should get the default param
|
74
|
-
assert_equal 2, @defaults.get_defaults("
|
79
|
+
it "should get the default param" do
|
80
|
+
assert_equal 2, @defaults.get_defaults("--location-id")
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should get the default param for short flag" do
|
84
|
+
assert_equal 'F', @defaults.get_defaults("-f")
|
75
85
|
end
|
76
86
|
|
77
87
|
it "should get the default param, with provider" do
|
@@ -79,14 +89,14 @@ describe HammerCLI::Defaults do
|
|
79
89
|
fake_provider.stubs(:provider_name).returns(:foreman)
|
80
90
|
fake_provider.expects(:get_defaults).with(:organization_id).returns(3)
|
81
91
|
@defaults.register_provider(fake_provider)
|
82
|
-
assert_equal 3, @defaults.get_defaults("
|
92
|
+
assert_equal 3, @defaults.get_defaults("--organization-id")
|
83
93
|
end
|
84
94
|
|
85
95
|
context 'dashed params' do
|
86
96
|
let(:filepath) { File.join(File.dirname(__FILE__), '/fixtures/defaults/defaults_dashed.yml') }
|
87
97
|
|
88
98
|
it "should get the default param, without provider" do
|
89
|
-
assert_equal 2, @defaults.get_defaults("
|
99
|
+
assert_equal 2, @defaults.get_defaults("--location-id")
|
90
100
|
end
|
91
101
|
|
92
102
|
it "should get the default param, with provider" do
|
@@ -94,7 +104,7 @@ describe HammerCLI::Defaults do
|
|
94
104
|
fake_provider.stubs(:provider_name).returns(:foreman)
|
95
105
|
fake_provider.expects(:get_defaults).with(:organization_id).returns(3)
|
96
106
|
@defaults.register_provider(fake_provider)
|
97
|
-
assert_equal 3, @defaults.get_defaults("
|
107
|
+
assert_equal 3, @defaults.get_defaults("--organization-id")
|
98
108
|
end
|
99
109
|
end
|
100
110
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
describe HammerCLI::Options::OptionCollector do
|
4
|
+
before do
|
5
|
+
recognised_options = [mock, mock]
|
6
|
+
source1_result = {:option1 => 1, :option2 => nil}
|
7
|
+
source2_result = source1_result.merge({:option3 => 3})
|
8
|
+
|
9
|
+
source1 = mock
|
10
|
+
source1.expects(:get_options).with(recognised_options, {}).returns(source1_result)
|
11
|
+
|
12
|
+
source2 = mock
|
13
|
+
source2.expects(:get_options).with(recognised_options, source1_result).returns(source2_result)
|
14
|
+
|
15
|
+
@collector = HammerCLI::Options::OptionCollector.new(recognised_options, [source1, source2])
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '#options' do
|
19
|
+
it 'returns options without nil values' do
|
20
|
+
assert_equal({:option1 => 1, :option3 => 3}, @collector.options)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '#all_options' do
|
25
|
+
it 'returns all options' do
|
26
|
+
assert_equal({:option1 => 1, :option2 => nil, :option3 => 3}, @collector.all_options)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require_relative '../../test_helper'
|
2
|
+
|
3
|
+
describe HammerCLI::Options::Sources::CommandLine do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@cmd = mock
|
7
|
+
|
8
|
+
@defined_options = [
|
9
|
+
stub(:read_method => :option_organization_id, :attribute_name => :organization_id),
|
10
|
+
stub(:read_method => :option_location_id, :attribute_name => :location_id)
|
11
|
+
]
|
12
|
+
|
13
|
+
@source = HammerCLI::Options::Sources::CommandLine.new(@cmd)
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '#get_options' do
|
17
|
+
it 'reads options from the command' do
|
18
|
+
@cmd.expects(:option_organization_id).returns(2)
|
19
|
+
@cmd.expects(:option_location_id).returns(3)
|
20
|
+
|
21
|
+
current_result = { :help => true }
|
22
|
+
expected_result = { :help => true, :organization_id => 2, :location_id => 3 }
|
23
|
+
|
24
|
+
assert_equal(expected_result, @source.get_options(@defined_options, current_result))
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'keeps options that are already set' do
|
28
|
+
@cmd.expects(:option_location_id).returns(3)
|
29
|
+
|
30
|
+
current_result = { :help => true, :organization_id => 1 }
|
31
|
+
expected_result = { :help => true, :organization_id => 1, :location_id => 3 }
|
32
|
+
|
33
|
+
assert_equal(expected_result, @source.get_options(@defined_options, current_result))
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require_relative '../../test_helper'
|
2
|
+
|
3
|
+
describe HammerCLI::Options::Sources::SavedDefaults do
|
4
|
+
before do
|
5
|
+
@defaults = mock
|
6
|
+
@logger = stub
|
7
|
+
@logger.stubs(:info)
|
8
|
+
|
9
|
+
@defined_options = [
|
10
|
+
stub(:attribute_name => :different_attr_name, :switches => ['--test']),
|
11
|
+
stub(:attribute_name => :multiple_switches_option, :switches => ['--test-multi1', '--test-multi2'])
|
12
|
+
]
|
13
|
+
|
14
|
+
@source = HammerCLI::Options::Sources::SavedDefaults.new(@defaults, @logger)
|
15
|
+
end
|
16
|
+
|
17
|
+
describe '#get_options' do
|
18
|
+
it 'logs message about loaded default value' do
|
19
|
+
@defaults.expects(:get_defaults).with('--test').returns(1)
|
20
|
+
@defaults.expects(:get_defaults).with('--test-multi1').returns(:first_value)
|
21
|
+
|
22
|
+
current_result = {}
|
23
|
+
expected_result = {
|
24
|
+
:different_attr_name => 1,
|
25
|
+
:multiple_switches_option => :first_value
|
26
|
+
}
|
27
|
+
|
28
|
+
@logger.expects(:info).with('Custom default value 1 was used for attribute --test')
|
29
|
+
@logger.expects(:info).with('Custom default value first_value was used for attribute --test-multi1')
|
30
|
+
@source.get_options(@defined_options, current_result)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'reads values for all switches' do
|
34
|
+
@defaults.expects(:get_defaults).with('--test').returns(1)
|
35
|
+
@defaults.expects(:get_defaults).with('--test-multi1').returns(nil)
|
36
|
+
@defaults.expects(:get_defaults).with('--test-multi2').returns(:second_value)
|
37
|
+
|
38
|
+
current_result = {}
|
39
|
+
expected_result = {
|
40
|
+
:different_attr_name => 1,
|
41
|
+
:multiple_switches_option => :second_value
|
42
|
+
}
|
43
|
+
|
44
|
+
assert_equal(expected_result, @source.get_options(@defined_options, current_result))
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'keeps options that are already set' do
|
48
|
+
@defaults.expects(:get_defaults).with('--test-multi1').returns(2)
|
49
|
+
|
50
|
+
current_result = {:different_attr_name => :existing_value}
|
51
|
+
expected_result = {
|
52
|
+
:different_attr_name => :existing_value,
|
53
|
+
:multiple_switches_option => 2
|
54
|
+
}
|
55
|
+
|
56
|
+
assert_equal(expected_result, @source.get_options(@defined_options, current_result))
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -322,33 +322,6 @@ describe HammerCLI::Output::Adapter::Table do
|
|
322
322
|
end
|
323
323
|
|
324
324
|
end
|
325
|
-
|
326
|
-
context "sort_columns" do
|
327
|
-
let(:fields) {
|
328
|
-
[field_firstname, field_lastname]
|
329
|
-
}
|
330
|
-
|
331
|
-
it "should sort output" do
|
332
|
-
|
333
|
-
table_print_output = [
|
334
|
-
"LASTNAME | FIRSTNAME",
|
335
|
-
"---------|----------",
|
336
|
-
"Doe | John "
|
337
|
-
].join("\n")
|
338
|
-
|
339
|
-
expected_output = [
|
340
|
-
"----------|---------",
|
341
|
-
"FIRSTNAME | LASTNAME",
|
342
|
-
"----------|---------",
|
343
|
-
"John | Doe ",
|
344
|
-
"----------|---------",
|
345
|
-
""
|
346
|
-
].join("\n")
|
347
|
-
|
348
|
-
TablePrint::Printer.any_instance.stubs(:table_print).returns(table_print_output)
|
349
|
-
proc { adapter.print_collection(fields, data) }.must_output(expected_output)
|
350
|
-
end
|
351
|
-
end
|
352
325
|
end
|
353
326
|
|
354
327
|
end
|
File without changes
|
@@ -166,22 +166,25 @@ describe Fields::Label do
|
|
166
166
|
end
|
167
167
|
end
|
168
168
|
|
169
|
-
it "returns true when all
|
169
|
+
it "returns true when all subfields are displayed" do
|
170
170
|
field.display?({:a => 1, :b => 2}).must_equal true
|
171
171
|
end
|
172
172
|
|
173
|
-
it "returns true when
|
173
|
+
it "returns true when at least one or the subfields is displayed" do
|
174
174
|
field.display?({:a => 1}).must_equal true
|
175
175
|
end
|
176
176
|
|
177
|
-
it "returns false when
|
178
|
-
field.display?({}).must_equal false
|
177
|
+
it "returns false when none of the subfieldsis displayed" do
|
178
|
+
field.display?({:c => 3}).must_equal false
|
179
179
|
end
|
180
180
|
|
181
|
-
it "returns false the
|
182
|
-
field.display?({
|
181
|
+
it "returns false when the value is empty hash" do
|
182
|
+
field.display?({}).must_equal false
|
183
183
|
end
|
184
184
|
|
185
|
+
it "returns false when the value is nil" do
|
186
|
+
field.display?(nil).must_equal false
|
187
|
+
end
|
185
188
|
end
|
186
189
|
|
187
190
|
end
|