masamune 0.13.4 → 0.13.5
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/lib/masamune/actions/elastic_mapreduce.rb +1 -1
- data/lib/masamune/actions/hadoop_filesystem.rb +1 -1
- data/lib/masamune/actions/hadoop_streaming.rb +1 -1
- data/lib/masamune/actions/hive.rb +1 -1
- data/lib/masamune/actions/postgres.rb +3 -2
- data/lib/masamune/actions/s3cmd.rb +1 -1
- data/lib/masamune/helpers/postgres.rb +3 -3
- data/lib/masamune/tasks/postgres_thor.rb +2 -0
- data/lib/masamune/transform/define_schema.psql.erb +0 -2
- data/lib/masamune/version.rb +1 -1
- data/spec/masamune/actions/elastic_mapreduce_spec.rb +9 -0
- data/spec/masamune/actions/hadoop_filesystem_spec.rb +9 -0
- data/spec/masamune/actions/hadoop_streaming_spec.rb +13 -2
- data/spec/masamune/actions/hive_spec.rb +9 -0
- data/spec/masamune/actions/postgres_spec.rb +15 -6
- data/spec/masamune/actions/s3cmd_spec.rb +9 -0
- data/spec/masamune/helpers/postgres_spec.rb +22 -2
- data/spec/masamune/tasks/hive_thor_spec.rb +17 -0
- data/spec/masamune/tasks/postgres_thor_spec.rb +18 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 77626a3f01664f620bc080cac5edf5118d5ab70b
|
4
|
+
data.tar.gz: f32fca25218d4d6c8e990a0f2456ae8fa82c7b7b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1010e89677ee57f4dc5b18fe5992f11233f24ada91eac3132eec0f5a288ac1bfb2981f2ce645603a2a63d4d1b01dc28d48163ba58cbab8832481d5004dbb633a
|
7
|
+
data.tar.gz: 0cdcf98d169c4b674d494098c25c00f8cec223a035f69936f103531527b24ea2872444daf5ac84ed8a9375795414c52cab6dfbb48eb419dbe816363df0e74194
|
@@ -32,7 +32,7 @@ module Masamune::Actions
|
|
32
32
|
|
33
33
|
command = Masamune::Commands::Interactive.new(environment, :interactive => opts.fetch(:interactive, false))
|
34
34
|
command = Masamune::Commands::ElasticMapReduce.new(command, opts)
|
35
|
-
command = Masamune::Commands::RetryWithBackoff.new(command, opts)
|
35
|
+
command = Masamune::Commands::RetryWithBackoff.new(command, configuration.elastic_mapreduce.slice(:retries, :backoff).merge(opts))
|
36
36
|
command = Masamune::Commands::Shell.new(command, opts)
|
37
37
|
|
38
38
|
command.interactive? ? command.replace : command.execute
|
@@ -30,7 +30,7 @@ module Masamune::Actions
|
|
30
30
|
opts.merge!(block: block.to_proc) if block_given?
|
31
31
|
|
32
32
|
command = Masamune::Commands::HadoopFilesystem.new(environment, opts)
|
33
|
-
command = Masamune::Commands::RetryWithBackoff.new(command, opts)
|
33
|
+
command = Masamune::Commands::RetryWithBackoff.new(command, configuration.hadoop_filesystem.slice(:retries, :backoff).merge(opts))
|
34
34
|
command = Masamune::Commands::Shell.new(command, opts)
|
35
35
|
|
36
36
|
command.execute
|
@@ -32,7 +32,7 @@ module Masamune::Actions
|
|
32
32
|
end
|
33
33
|
|
34
34
|
command = Masamune::Commands::ElasticMapReduce.new(command, opts.except(:extra)) if configuration.elastic_mapreduce[:jobflow]
|
35
|
-
command = Masamune::Commands::RetryWithBackoff.new(command, opts)
|
35
|
+
command = Masamune::Commands::RetryWithBackoff.new(command, configuration.hadoop_streaming.slice(:retries, :backoff).merge(opts))
|
36
36
|
command = Masamune::Commands::Shell.new(command, opts)
|
37
37
|
|
38
38
|
command.execute
|
@@ -36,7 +36,7 @@ module Masamune::Actions
|
|
36
36
|
|
37
37
|
command = Masamune::Commands::Hive.new(environment, opts)
|
38
38
|
command = Masamune::Commands::ElasticMapReduce.new(command, opts.except(:extra)) if configuration.elastic_mapreduce[:jobflow]
|
39
|
-
command = Masamune::Commands::RetryWithBackoff.new(command, opts)
|
39
|
+
command = Masamune::Commands::RetryWithBackoff.new(command, configuration.hive.slice(:retries, :backoff).merge(opts))
|
40
40
|
command = Masamune::Commands::Shell.new(command, opts)
|
41
41
|
|
42
42
|
command.interactive? ? command.replace : command.execute
|
@@ -36,6 +36,7 @@ module Masamune::Actions
|
|
36
36
|
opts.merge!(block: block.to_proc) if block_given?
|
37
37
|
|
38
38
|
command = Masamune::Commands::Postgres.new(environment, opts)
|
39
|
+
command = Masamune::Commands::RetryWithBackoff.new(command, configuration.postgres.slice(:retries, :backoff).merge(opts))
|
39
40
|
command = Masamune::Commands::Shell.new(command, opts)
|
40
41
|
|
41
42
|
command.interactive? ? command.replace : command.execute
|
@@ -50,14 +51,14 @@ module Masamune::Actions
|
|
50
51
|
def load_postgres_setup_files
|
51
52
|
configuration.postgres[:setup_files].each do |file|
|
52
53
|
configuration.with_quiet do
|
53
|
-
postgres(file: file)
|
54
|
+
postgres(file: file, retries: 0)
|
54
55
|
end
|
55
56
|
end if configuration.postgres.has_key?(:setup_files)
|
56
57
|
end
|
57
58
|
|
58
59
|
def load_postgres_schema
|
59
60
|
transform = define_schema(catalog, :postgres)
|
60
|
-
postgres(file: transform.to_file)
|
61
|
+
postgres(file: transform.to_file, retries: 0)
|
61
62
|
rescue => e
|
62
63
|
logger.error(e)
|
63
64
|
logger.error("Could not load schema")
|
@@ -31,7 +31,7 @@ module Masamune::Actions
|
|
31
31
|
opts.merge!(block: block.to_proc) if block_given?
|
32
32
|
|
33
33
|
command = Masamune::Commands::S3Cmd.new(environment, opts)
|
34
|
-
command = Masamune::Commands::RetryWithBackoff.new(command, opts)
|
34
|
+
command = Masamune::Commands::RetryWithBackoff.new(command, configuration.s3cmd.slice(:retries, :backoff).merge(opts))
|
35
35
|
command = Masamune::Commands::Shell.new(command, opts)
|
36
36
|
|
37
37
|
command.execute
|
@@ -39,7 +39,7 @@ module Masamune::Helpers
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def database_exists?
|
42
|
-
@database_exists ||= postgres(exec: 'SELECT version();', fail_fast: false).success?
|
42
|
+
@database_exists ||= postgres(exec: 'SELECT version();', fail_fast: false, retries: 0).success?
|
43
43
|
end
|
44
44
|
|
45
45
|
def table_exists?(table)
|
@@ -64,7 +64,7 @@ module Masamune::Helpers
|
|
64
64
|
|
65
65
|
def update_tables
|
66
66
|
return unless @cache.empty?
|
67
|
-
postgres(exec: 'SELECT table_name FROM information_schema.tables;', tuple_output: true) do |line|
|
67
|
+
postgres(exec: 'SELECT table_name FROM information_schema.tables;', tuple_output: true, retries: 0) do |line|
|
68
68
|
table = line.strip
|
69
69
|
next if table =~ /\Apg_/
|
70
70
|
@cache[table] ||= nil
|
@@ -73,7 +73,7 @@ module Masamune::Helpers
|
|
73
73
|
|
74
74
|
def update_table_last_modified_at(table, column)
|
75
75
|
return if @cache[table].present?
|
76
|
-
postgres(exec: "SELECT MAX(#{column}) FROM #{table};", tuple_output: true) do |line|
|
76
|
+
postgres(exec: "SELECT MAX(#{column}) FROM #{table};", tuple_output: true, retries: 0) do |line|
|
77
77
|
begin
|
78
78
|
@cache[table] = Time.parse(line.strip).at_beginning_of_minute.utc
|
79
79
|
rescue ArgumentError
|
@@ -38,9 +38,11 @@ module Masamune::Tasks
|
|
38
38
|
method_option :exec, :aliases => '-e', :desc => 'SQL from command line'
|
39
39
|
method_option :output, :aliases => '-o', :desc => 'Save SQL output to file'
|
40
40
|
method_option :csv, :type => :boolean, :desc => 'Report SQL output in CSV format', :default => false
|
41
|
+
method_option :retry, :type => :boolean, :desc => 'Retry SQL query in event of failure', :default => false
|
41
42
|
def psql_exec
|
42
43
|
postgres_options = options.dup.with_indifferent_access
|
43
44
|
postgres_options.merge!(print: true)
|
45
|
+
postgres_options.merge!(retries: 0) unless options[:retry]
|
44
46
|
postgres(postgres_options)
|
45
47
|
end
|
46
48
|
default_task :psql_exec
|
@@ -23,8 +23,6 @@
|
|
23
23
|
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
24
24
|
CREATE EXTENSION IF NOT EXISTS hstore;
|
25
25
|
|
26
|
-
SET TIMEZONE TO 'UTC';
|
27
|
-
|
28
26
|
CREATE OR REPLACE FUNCTION json_to_hstore(JSON)
|
29
27
|
RETURNS HSTORE AS $$
|
30
28
|
SELECT HSTORE(RTRIM(LTRIM(REPLACE($1::TEXT, ':', '=>'), '{'), '}'))
|
data/lib/masamune/version.rb
CHANGED
@@ -48,6 +48,15 @@ describe Masamune::Actions::ElasticMapreduce do
|
|
48
48
|
subject { instance.elastic_mapreduce }
|
49
49
|
|
50
50
|
it { is_expected.to be_success }
|
51
|
+
|
52
|
+
context 'with retries and backoff' do
|
53
|
+
before do
|
54
|
+
allow(instance).to receive_message_chain(:configuration, :elastic_mapreduce).and_return(retries: 1, backoff: 10)
|
55
|
+
expect(Masamune::Commands::RetryWithBackoff).to receive(:new).with(anything, hash_including(retries: 1, backoff: 10)).once.and_call_original
|
56
|
+
end
|
57
|
+
|
58
|
+
it { is_expected.to be_success }
|
59
|
+
end
|
51
60
|
end
|
52
61
|
|
53
62
|
describe '.after_initialize' do
|
@@ -40,5 +40,14 @@ describe Masamune::Actions::HadoopFilesystem do
|
|
40
40
|
subject { instance.hadoop_filesystem }
|
41
41
|
|
42
42
|
it { is_expected.to be_success }
|
43
|
+
|
44
|
+
context 'with retries and backoff' do
|
45
|
+
before do
|
46
|
+
allow(instance).to receive_message_chain(:configuration, :hadoop_filesystem).and_return(retries: 1, backoff: 10)
|
47
|
+
expect(Masamune::Commands::RetryWithBackoff).to receive(:new).with(anything, hash_including(retries: 1, backoff: 10)).once.and_call_original
|
48
|
+
end
|
49
|
+
|
50
|
+
it { is_expected.to be_success }
|
51
|
+
end
|
43
52
|
end
|
44
53
|
end
|
@@ -39,6 +39,8 @@ describe Masamune::Actions::HadoopStreaming do
|
|
39
39
|
|
40
40
|
describe '.hadoop_streaming' do
|
41
41
|
before do
|
42
|
+
allow(instance).to receive_message_chain(:configuration, :hadoop_streaming).and_return({})
|
43
|
+
allow(instance).to receive_message_chain(:configuration, :elastic_mapreduce).and_return({})
|
42
44
|
mock_command(/\Ahadoop/, mock_success)
|
43
45
|
end
|
44
46
|
|
@@ -48,7 +50,7 @@ describe Masamune::Actions::HadoopStreaming do
|
|
48
50
|
|
49
51
|
context 'with jobflow' do
|
50
52
|
before do
|
51
|
-
allow(instance).to receive_message_chain(:configuration, :elastic_mapreduce).and_return(
|
53
|
+
allow(instance).to receive_message_chain(:configuration, :elastic_mapreduce).and_return(jobflow: 'j-XYZ')
|
52
54
|
mock_command(/\Ahadoop/, mock_failure)
|
53
55
|
mock_command(/\Aelastic-mapreduce/, mock_success, StringIO.new('ssh fakehost exit'))
|
54
56
|
mock_command(/\Assh fakehost hadoop/, mock_success)
|
@@ -61,7 +63,7 @@ describe Masamune::Actions::HadoopStreaming do
|
|
61
63
|
let(:extra) { ['-D', 'EXTRA'] }
|
62
64
|
|
63
65
|
before do
|
64
|
-
allow(instance).to receive_message_chain(:configuration, :elastic_mapreduce).and_return(
|
66
|
+
allow(instance).to receive_message_chain(:configuration, :elastic_mapreduce).and_return(jobflow: 'j-XYZ')
|
65
67
|
mock_command(/\Ahadoop/, mock_failure)
|
66
68
|
mock_command(/\Aelastic-mapreduce/, mock_success, StringIO.new('ssh fakehost exit'))
|
67
69
|
mock_command(/\Assh fakehost -D EXTRA hadoop/, mock_failure)
|
@@ -70,5 +72,14 @@ describe Masamune::Actions::HadoopStreaming do
|
|
70
72
|
|
71
73
|
it { is_expected.to be_success }
|
72
74
|
end
|
75
|
+
|
76
|
+
context 'with retries and backoff' do
|
77
|
+
before do
|
78
|
+
allow(instance).to receive_message_chain(:configuration, :hadoop_streaming).and_return(retries: 1, backoff: 10)
|
79
|
+
expect(Masamune::Commands::RetryWithBackoff).to receive(:new).with(anything, hash_including(retries: 1, backoff: 10)).once.and_call_original
|
80
|
+
end
|
81
|
+
|
82
|
+
it { is_expected.to be_success }
|
83
|
+
end
|
73
84
|
end
|
74
85
|
end
|
@@ -65,6 +65,15 @@ describe Masamune::Actions::Hive do
|
|
65
65
|
|
66
66
|
it { is_expected.to be_success }
|
67
67
|
end
|
68
|
+
|
69
|
+
context 'with retries and backoff' do
|
70
|
+
before do
|
71
|
+
allow(instance).to receive_message_chain(:configuration, :hive).and_return(retries: 1, backoff: 10)
|
72
|
+
expect(Masamune::Commands::RetryWithBackoff).to receive(:new).with(anything, hash_including(retries: 1, backoff: 10)).once.and_call_original
|
73
|
+
end
|
74
|
+
|
75
|
+
it { is_expected.to be_success }
|
76
|
+
end
|
68
77
|
end
|
69
78
|
|
70
79
|
describe '.after_initialize' do
|
@@ -55,6 +55,15 @@ describe Masamune::Actions::Postgres do
|
|
55
55
|
subject { instance.postgres }
|
56
56
|
|
57
57
|
it { is_expected.to be_success }
|
58
|
+
|
59
|
+
context 'with retries and backoff' do
|
60
|
+
before do
|
61
|
+
allow(instance).to receive_message_chain(:configuration, :postgres).and_return(retries: 1, backoff: 10)
|
62
|
+
expect(Masamune::Commands::RetryWithBackoff).to receive(:new).with(anything, hash_including(retries: 1, backoff: 10)).once.and_call_original
|
63
|
+
end
|
64
|
+
|
65
|
+
it { is_expected.to be_success }
|
66
|
+
end
|
58
67
|
end
|
59
68
|
|
60
69
|
describe '.after_initialize' do
|
@@ -81,7 +90,7 @@ describe Masamune::Actions::Postgres do
|
|
81
90
|
before do
|
82
91
|
expect(postgres_helper).to receive(:database_exists?).and_return(false)
|
83
92
|
expect(instance).to receive(:postgres_admin).with(action: :create, database: 'test', safe: true).once
|
84
|
-
expect(instance).to receive(:postgres).with(file: 'catalog.psql').once
|
93
|
+
expect(instance).to receive(:postgres).with(file: 'catalog.psql', retries: 0).once
|
85
94
|
after_initialize_invoke
|
86
95
|
end
|
87
96
|
it 'should call posgres_admin once' do; end
|
@@ -91,7 +100,7 @@ describe Masamune::Actions::Postgres do
|
|
91
100
|
before do
|
92
101
|
expect(postgres_helper).to receive(:database_exists?).and_return(true)
|
93
102
|
expect(instance).to receive(:postgres_admin).never
|
94
|
-
expect(instance).to receive(:postgres).with(file: 'catalog.psql').once
|
103
|
+
expect(instance).to receive(:postgres).with(file: 'catalog.psql', retries: 0).once
|
95
104
|
after_initialize_invoke
|
96
105
|
end
|
97
106
|
it 'should not call postgres_admin' do; end
|
@@ -101,8 +110,8 @@ describe Masamune::Actions::Postgres do
|
|
101
110
|
let(:setup_files) { ['setup.psql'] }
|
102
111
|
before do
|
103
112
|
expect(postgres_helper).to receive(:database_exists?).and_return(true)
|
104
|
-
expect(instance).to receive(:postgres).with(file: setup_files.first).once
|
105
|
-
expect(instance).to receive(:postgres).with(file: 'catalog.psql').once
|
113
|
+
expect(instance).to receive(:postgres).with(file: setup_files.first, retries: 0).once
|
114
|
+
expect(instance).to receive(:postgres).with(file: 'catalog.psql', retries: 0).once
|
106
115
|
after_initialize_invoke
|
107
116
|
end
|
108
117
|
it 'should call postgres with setup_files' do; end
|
@@ -124,7 +133,7 @@ describe Masamune::Actions::Postgres do
|
|
124
133
|
before do
|
125
134
|
filesystem.touch!('schema_1.psql', 'schema_2.psql')
|
126
135
|
expect(postgres_helper).to receive(:database_exists?).and_return(true)
|
127
|
-
expect(instance).to receive(:postgres).with(file: 'catalog.psql').once
|
136
|
+
expect(instance).to receive(:postgres).with(file: 'catalog.psql', retries: 0).once
|
128
137
|
after_initialize_invoke
|
129
138
|
end
|
130
139
|
it 'should call postgres with schema_files' do; end
|
@@ -135,7 +144,7 @@ describe Masamune::Actions::Postgres do
|
|
135
144
|
before do
|
136
145
|
filesystem.touch!('schema.rb')
|
137
146
|
expect(postgres_helper).to receive(:database_exists?).and_return(true)
|
138
|
-
expect(instance).to receive(:postgres).with(file: 'catalog.psql').once
|
147
|
+
expect(instance).to receive(:postgres).with(file: 'catalog.psql', retries: 0).once
|
139
148
|
after_initialize_invoke
|
140
149
|
end
|
141
150
|
it 'should call postgres with schema_files' do; end
|
@@ -40,5 +40,14 @@ describe Masamune::Actions::S3Cmd do
|
|
40
40
|
subject { instance.s3cmd 'ls', 's3://fake-bucket' }
|
41
41
|
|
42
42
|
it { is_expected.to be_success }
|
43
|
+
|
44
|
+
context 'with retries and backoff' do
|
45
|
+
before do
|
46
|
+
allow(instance).to receive_message_chain(:configuration, :s3cmd).and_return(retries: 1, backoff: 10)
|
47
|
+
expect(Masamune::Commands::RetryWithBackoff).to receive(:new).with(anything, hash_including(retries: 1, backoff: 10)).once.and_call_original
|
48
|
+
end
|
49
|
+
|
50
|
+
it { is_expected.to be_success }
|
51
|
+
end
|
43
52
|
end
|
44
53
|
end
|
@@ -26,10 +26,30 @@ describe Masamune::Helpers::Postgres do
|
|
26
26
|
let(:environment) { double }
|
27
27
|
let(:instance) { described_class.new(environment) }
|
28
28
|
|
29
|
+
describe '#database_exists' do
|
30
|
+
let(:mock_status) { }
|
31
|
+
|
32
|
+
before do
|
33
|
+
expect(instance).to receive(:postgres).with(hash_including(exec: 'SELECT version();', fail_fast: false, retries: 0)).and_return(mock_status)
|
34
|
+
end
|
35
|
+
|
36
|
+
subject { instance.database_exists? }
|
37
|
+
|
38
|
+
context 'when database exists' do
|
39
|
+
let(:mock_status) { mock_success }
|
40
|
+
it { is_expected.to eq(true) }
|
41
|
+
end
|
42
|
+
|
43
|
+
context 'when database does not exist' do
|
44
|
+
let(:mock_status) { mock_failure }
|
45
|
+
it { is_expected.to eq(false) }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
29
49
|
describe '#table_exists' do
|
30
50
|
before do
|
31
51
|
expect(instance).to receive(:database_exists?).and_return(true)
|
32
|
-
expect(instance).to receive(:postgres).with(hash_including(:
|
52
|
+
expect(instance).to receive(:postgres).with(hash_including(exec: 'SELECT table_name FROM information_schema.tables;', tuple_output: true, retries: 0)).and_yield(' foo').and_yield(' bar').and_yield(' baz')
|
33
53
|
end
|
34
54
|
|
35
55
|
subject { instance.table_exists?(table) }
|
@@ -56,7 +76,7 @@ describe Masamune::Helpers::Postgres do
|
|
56
76
|
context 'with last_modified_at option' do
|
57
77
|
before do
|
58
78
|
expect(instance).to receive(:table_exists?).and_return(true)
|
59
|
-
expect(instance).to receive(:postgres).with(hash_including(:
|
79
|
+
expect(instance).to receive(:postgres).with(hash_including(exec: 'SELECT MAX(last_modified_at) FROM foo;', tuple_output: true, retries: 0)).and_yield(output)
|
60
80
|
end
|
61
81
|
|
62
82
|
let(:options) { { last_modified_at: 'last_modified_at' } }
|
@@ -34,6 +34,15 @@ describe Masamune::Tasks::HiveThor do
|
|
34
34
|
it_behaves_like 'command usage'
|
35
35
|
end
|
36
36
|
|
37
|
+
context 'without arguments' do
|
38
|
+
let(:options) { [] }
|
39
|
+
|
40
|
+
it do
|
41
|
+
expect_any_instance_of(described_class).to receive(:hive).with(hash_including(retries: 0)).once.and_return(mock_success)
|
42
|
+
cli_invocation
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
37
46
|
context 'with --file and --initialize' do
|
38
47
|
let(:options) { ['--file=zombo.hql', '--initialize'] }
|
39
48
|
it do
|
@@ -75,4 +84,12 @@ describe Masamune::Tasks::HiveThor do
|
|
75
84
|
cli_invocation
|
76
85
|
end
|
77
86
|
end
|
87
|
+
|
88
|
+
context 'with --retry' do
|
89
|
+
let(:options) { ['--retry'] }
|
90
|
+
it do
|
91
|
+
expect_any_instance_of(described_class).to receive(:hive).with(hash_excluding(retries: 0)).once.and_return(mock_success)
|
92
|
+
cli_invocation
|
93
|
+
end
|
94
|
+
end
|
78
95
|
end
|
@@ -31,10 +31,19 @@ describe Masamune::Tasks::PostgresThor do
|
|
31
31
|
it_behaves_like 'command usage'
|
32
32
|
end
|
33
33
|
|
34
|
+
context 'without arguments' do
|
35
|
+
let(:options) { [] }
|
36
|
+
|
37
|
+
it do
|
38
|
+
expect_any_instance_of(described_class).to receive(:postgres).with(hash_including(retries: 0)).once.and_return(mock_success)
|
39
|
+
cli_invocation
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
34
43
|
context 'with --file and --initialize' do
|
35
44
|
let(:options) { ['--file=zombo.hql', '--initialize'] }
|
36
45
|
it do
|
37
|
-
expect_any_instance_of(described_class).to receive(:postgres).with(file: instance_of(String)).once.and_return(mock_success)
|
46
|
+
expect_any_instance_of(described_class).to receive(:postgres).with(file: instance_of(String), retries: 0).once.and_return(mock_success)
|
38
47
|
expect_any_instance_of(described_class).to receive(:postgres).with(hash_including(file: 'zombo.hql')).once.and_return(mock_success)
|
39
48
|
cli_invocation
|
40
49
|
end
|
@@ -47,4 +56,12 @@ describe Masamune::Tasks::PostgresThor do
|
|
47
56
|
cli_invocation
|
48
57
|
end
|
49
58
|
end
|
59
|
+
|
60
|
+
context 'with --retry' do
|
61
|
+
let(:options) { ['--retry'] }
|
62
|
+
it do
|
63
|
+
expect_any_instance_of(described_class).to receive(:postgres).with(hash_excluding(retries: 0)).once.and_return(mock_success)
|
64
|
+
cli_invocation
|
65
|
+
end
|
66
|
+
end
|
50
67
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: masamune
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.
|
4
|
+
version: 0.13.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Andrews
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|