puppet_litmus 0.17.0 → 0.18.4

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.
@@ -13,12 +13,12 @@ RSpec.shared_examples 'supported provisioner' do |args|
13
13
  it 'calls function' do
14
14
  allow(File).to receive(:directory?).and_call_original
15
15
  allow(File).to receive(:directory?)
16
- .with(File.join(DEFAULT_CONFIG_DATA['modulepath'], 'provision'))
16
+ .with(File.join(described_class::DEFAULT_CONFIG_DATA['modulepath'], 'provision'))
17
17
  .and_return(true)
18
18
  allow_any_instance_of(BoltSpec::Run).to receive(:run_task)
19
- .with("provision::#{provisioner}", 'localhost', params, config: DEFAULT_CONFIG_DATA, inventory: nil)
19
+ .with("provision::#{provisioner}", 'localhost', params, config: described_class::DEFAULT_CONFIG_DATA, inventory: nil)
20
20
  .and_return(results)
21
- result = described_class.provision(provisioner, platform, inventory_vars)
21
+ result = provision(provisioner, platform, inventory_vars)
22
22
  expect(result).to eq(results)
23
23
  end
24
24
  end
@@ -29,8 +29,8 @@ RSpec.describe PuppetLitmus::RakeHelper do
29
29
  let(:results) { [] }
30
30
 
31
31
  it 'calls function' do
32
- expect(described_class).to receive(:provision).with('docker', 'waffleimage/centos7', nil).and_return(results)
33
- described_class.provision_list(provision_hash, 'default')
32
+ expect(self).to receive(:provision).with('docker', 'waffleimage/centos7', nil).and_return(results)
33
+ provision_list(provision_hash, 'default')
34
34
  end
35
35
  end
36
36
 
@@ -71,9 +71,9 @@ RSpec.describe PuppetLitmus::RakeHelper do
71
71
  let(:params) { { 'action' => 'tear_down', 'node_name' => 'some.host', 'inventory' => Dir.pwd } }
72
72
 
73
73
  it 'calls function' do
74
- allow(File).to receive(:directory?).with(File.join(DEFAULT_CONFIG_DATA['modulepath'], 'provision')).and_return(true)
75
- allow_any_instance_of(BoltSpec::Run).to receive(:run_task).with('provision::docker', 'localhost', params, config: DEFAULT_CONFIG_DATA, inventory: nil).and_return([])
76
- described_class.tear_down_nodes(targets, inventory_hash)
74
+ allow(File).to receive(:directory?).with(File.join(described_class::DEFAULT_CONFIG_DATA['modulepath'], 'provision')).and_return(true)
75
+ allow_any_instance_of(BoltSpec::Run).to receive(:run_task).with('provision::docker', 'localhost', params, config: described_class::DEFAULT_CONFIG_DATA, inventory: nil).and_return([])
76
+ tear_down_nodes(targets, inventory_hash)
77
77
  end
78
78
  end
79
79
 
@@ -87,9 +87,9 @@ RSpec.describe PuppetLitmus::RakeHelper do
87
87
  let(:params) { { 'collection' => 'puppet6' } }
88
88
 
89
89
  it 'calls function' do
90
- allow(File).to receive(:directory?).with(File.join(DEFAULT_CONFIG_DATA['modulepath'], 'puppet_agent')).and_return(true)
91
- allow_any_instance_of(BoltSpec::Run).to receive(:run_task).with('puppet_agent::install', targets, params, config: DEFAULT_CONFIG_DATA, inventory: inventory_hash).and_return([])
92
- described_class.install_agent('puppet6', targets, inventory_hash)
90
+ allow(File).to receive(:directory?).with(File.join(described_class::DEFAULT_CONFIG_DATA['modulepath'], 'puppet_agent')).and_return(true)
91
+ allow_any_instance_of(BoltSpec::Run).to receive(:run_task).with('puppet_agent::install', targets, params, config: described_class::DEFAULT_CONFIG_DATA, inventory: inventory_hash).and_return([])
92
+ install_agent('puppet6', targets, inventory_hash)
93
93
  end
94
94
  end
95
95
 
@@ -100,15 +100,20 @@ RSpec.describe PuppetLitmus::RakeHelper do
100
100
  [{ 'name' => 'ssh_nodes', 'targets' =>
101
101
  [{ 'uri' => 'some.host', 'facts' => { 'provisioner' => 'docker', 'container_name' => 'foo', 'platform' => 'some.host' } }] }] }
102
102
  end
103
- let(:module_tar) { '/tmp/foo.tar.gz' }
103
+ let(:module_tar) { 'foo.tar.gz' }
104
104
  let(:targets) { ['some.host'] }
105
- let(:install_module_command) { "puppet module install /tmp/#{File.basename(module_tar)}" }
105
+ let(:uninstall_module_command) { 'puppet module uninstall foo --force' }
106
+ let(:install_module_command) { "puppet module install --module_repository 'https://forgeapi.example.com' #{module_tar}" }
106
107
 
107
108
  it 'calls function' do
108
- allow(Open3).to receive(:capture3).with("bundle exec bolt file upload \"#{module_tar}\" /tmp/#{File.basename(module_tar)} --nodes all --inventoryfile inventory.yaml")
109
+ allow_any_instance_of(BoltSpec::Run).to receive(:upload_file).with(module_tar, module_tar, targets, options: {}, config: nil, inventory: inventory_hash).and_return([])
110
+ allow(File).to receive(:exist?).with(File.join(Dir.pwd, 'metadata.json')).and_return(true)
111
+ allow(File).to receive(:read).with(File.join(Dir.pwd, 'metadata.json')).and_return(JSON.dump({ name: 'foo' }))
112
+ allow(Open3).to receive(:capture3).with("bundle exec bolt file upload \"#{module_tar}\" #{File.basename(module_tar)} --targets all --inventoryfile inventory.yaml")
109
113
  .and_return(['success', '', 0])
114
+ allow_any_instance_of(BoltSpec::Run).to receive(:run_command).with(uninstall_module_command, targets, config: nil, inventory: inventory_hash).and_return([])
110
115
  allow_any_instance_of(BoltSpec::Run).to receive(:run_command).with(install_module_command, targets, config: nil, inventory: inventory_hash).and_return([])
111
- described_class.install_module(inventory_hash, nil, module_tar)
116
+ install_module(inventory_hash, nil, module_tar, 'https://forgeapi.example.com')
112
117
  end
113
118
  end
114
119
 
@@ -124,12 +129,12 @@ RSpec.describe PuppetLitmus::RakeHelper do
124
129
  it 'node available' do
125
130
  allow(Open3).to receive(:capture3).with('cd .').and_return(['success', '', 0])
126
131
  allow_any_instance_of(BoltSpec::Run).to receive(:run_command).with(command, targets, config: nil, inventory: inventory_hash).and_return([{ 'target' => 'some.host', 'status' => 'success' }])
127
- described_class.check_connectivity?(inventory_hash, 'some.host')
132
+ check_connectivity?(inventory_hash, 'some.host')
128
133
  end
129
134
 
130
135
  it 'node unavailable' do
131
136
  allow_any_instance_of(BoltSpec::Run).to receive(:run_command).with(command, targets, config: nil, inventory: inventory_hash).and_return([{ 'target' => 'some.host', 'status' => 'failure' }])
132
- expect { described_class.check_connectivity?(inventory_hash, 'some.host') }.to raise_error(RuntimeError, %r{Connectivity has failed on:})
137
+ expect { check_connectivity?(inventory_hash, 'some.host') }.to raise_error(RuntimeError, %r{Connectivity has failed on:})
133
138
  end
134
139
  end
135
140
 
@@ -144,13 +149,13 @@ RSpec.describe PuppetLitmus::RakeHelper do
144
149
 
145
150
  it 'uninstalls module' do
146
151
  allow_any_instance_of(BoltSpec::Run).to receive(:run_command).with(uninstall_module_command, targets, config: nil, inventory: inventory_hash).and_return([])
147
- expect(described_class).to receive(:metadata_module_name).and_return('foo-bar')
148
- described_class.uninstall_module(inventory_hash, nil)
152
+ expect(self).to receive(:metadata_module_name).and_return('foo-bar')
153
+ uninstall_module(inventory_hash, nil)
149
154
  end
150
155
 
151
156
  it 'and custom name' do
152
157
  allow_any_instance_of(BoltSpec::Run).to receive(:run_command).with(uninstall_module_command, targets, config: nil, inventory: inventory_hash).and_return([])
153
- described_class.uninstall_module(inventory_hash, nil, 'foo-bar')
158
+ uninstall_module(inventory_hash, nil, 'foo-bar')
154
159
  end
155
160
  end
156
161
 
@@ -160,7 +165,7 @@ RSpec.describe PuppetLitmus::RakeHelper do
160
165
  it 'reads module name' do
161
166
  allow(File).to receive(:exist?).with(File.join(Dir.pwd, 'metadata.json')).and_return(true)
162
167
  allow(File).to receive(:read).with(File.join(Dir.pwd, 'metadata.json')).and_return(metadata)
163
- name = described_class.metadata_module_name
168
+ name = metadata_module_name
164
169
  expect(name).to eq('foo-bar')
165
170
  end
166
171
  end
@@ -168,12 +173,12 @@ RSpec.describe PuppetLitmus::RakeHelper do
168
173
  context 'with provisioner_task' do
169
174
  described_class::SUPPORTED_PROVISIONERS.each do |supported_provisioner|
170
175
  it "returns supported provisioner task name for #{supported_provisioner}" do
171
- expect(described_class.provisioner_task(supported_provisioner)).to eq("provision::#{supported_provisioner}")
176
+ expect(provisioner_task(supported_provisioner)).to eq("provision::#{supported_provisioner}")
172
177
  end
173
178
  end
174
179
 
175
180
  it 'returns an unsupported provisioner name' do
176
- expect(described_class.provisioner_task('my_org::custom_provisioner')).to eql('my_org::custom_provisioner')
181
+ expect(provisioner_task('my_org::custom_provisioner')).to eql('my_org::custom_provisioner')
177
182
  end
178
183
  end
179
184
  end
@@ -28,19 +28,22 @@ describe 'litmus rake tasks' do
28
28
 
29
29
  context 'with litmus:install_modules_from_directory' do
30
30
  let(:inventory_hash) { { 'groups' => [{ 'name' => 'ssh_nodes', 'nodes' => [{ 'uri' => 'some.host' }] }] } }
31
- let(:target_folder) { File.join(Dir.pwd, 'spec/fixtures/modules') }
32
- let(:dummy_tar) { File.new('spec/data/doot.tar.gz') }
31
+ let(:target_dir) { File.join(Dir.pwd, 'spec/fixtures/modules') }
32
+ let(:dummy_tar) { 'spec/data/doot.tar.gz' }
33
33
 
34
34
  it 'happy path' do
35
+ allow(File).to receive(:exist?).with(File.join(Dir.pwd, 'metadata.json')).and_return(true)
36
+ allow(File).to receive(:read).with(File.join(Dir.pwd, 'metadata.json')).and_return(JSON.dump({ name: 'foo' }))
37
+
35
38
  stub_const('ENV', ENV.to_hash.merge('TARGET_HOST' => 'some.host'))
36
39
  expect_any_instance_of(PuppetLitmus::InventoryManipulation).to receive(:inventory_hash_from_inventory_file).and_return(inventory_hash)
37
- expect(File).to receive(:directory?).with(target_folder).and_return(true)
38
- expect_any_instance_of(Object).to receive(:build_modules_in_folder).with(target_folder).and_return([dummy_tar])
39
- expect(STDOUT).to receive(:puts).with('Building')
40
- expect(STDOUT).to receive(:puts).with("\nSending")
41
- expect_any_instance_of(Object).to receive(:upload_file).once
42
- expect(STDOUT).to receive(:puts).with("\nInstalling")
43
- expect_any_instance_of(Object).to receive(:run_command).once
40
+ expect(File).to receive(:directory?).with(target_dir).and_return(true)
41
+ expect_any_instance_of(Object).to receive(:build_modules_in_dir).with(target_dir).and_return([dummy_tar])
42
+ expect(STDOUT).to receive(:puts).with(start_with('Building all modules in'))
43
+ expect_any_instance_of(Object).to receive(:upload_file).once.and_return([])
44
+ expect(STDOUT).to receive(:puts).with(start_with('Installing \'spec/data/doot.tar.gz\''))
45
+ expect_any_instance_of(Object).to receive(:run_command).twice.and_return([])
46
+ expect(STDOUT).to receive(:puts).with(start_with('Installed \'spec/data/doot.tar.gz\''))
44
47
  Rake::Task['litmus:install_modules_from_directory'].invoke('./spec/fixtures/modules')
45
48
  end
46
49
  end
@@ -57,12 +60,11 @@ describe 'litmus rake tasks' do
57
60
 
58
61
  context 'with litmus:provision task' do
59
62
  it 'happy path' do
60
- results = [{ 'node' => 'localhost',
61
- 'target' => 'localhost',
63
+ results = [{ 'target' => 'localhost',
62
64
  'action' => 'task',
63
65
  'object' => 'provision::docker',
64
66
  'status' => 'success',
65
- 'result' => { 'status' => 'ok', 'node_name' => 'localhost:2222' } }]
67
+ 'value' => { 'status' => 'ok', 'node_name' => 'localhost:2222' } }]
66
68
 
67
69
  allow(File).to receive(:directory?).with(any_args).and_return(true)
68
70
  allow_any_instance_of(BoltSpec::Run).to receive(:run_task).with(any_args).and_return(results)
@@ -1,12 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'rspec'
4
- require 'puppet_litmus'
5
-
6
- # Unfortunately this needs to be included as this is
7
- # how Litmus functions. We only include once here instead
8
- # of including for every single spec file.
9
- include PuppetLitmus # rubocop:disable Style/MixinUsage
10
4
 
11
5
  if ENV['COVERAGE'] == 'yes'
12
6
  require 'simplecov'
@@ -37,3 +31,10 @@ if ENV['COVERAGE'] == 'yes'
37
31
  end
38
32
  end
39
33
  end
34
+
35
+ # This is basically how `configure!` sets up RSpec in tests.
36
+ require 'puppet_litmus'
37
+ RSpec.configure do |config|
38
+ config.include PuppetLitmus
39
+ config.extend PuppetLitmus
40
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet_litmus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 0.18.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet, Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-24 00:00:00.000000000 Z
11
+ date: 2020-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bolt
@@ -16,34 +16,40 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.13.1
19
+ version: 2.0.1
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: 2.0.0
22
+ version: 3.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 1.13.1
29
+ version: 2.0.1
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: 2.0.0
32
+ version: 3.0.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: puppet-modulebuilder
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: '0.1'
39
+ version: 0.2.1
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: 1.0.0
40
43
  type: :runtime
41
44
  prerelease: false
42
45
  version_requirements: !ruby/object:Gem::Requirement
43
46
  requirements:
44
- - - "~>"
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 0.2.1
50
+ - - "<"
45
51
  - !ruby/object:Gem::Version
46
- version: '0.1'
52
+ version: 1.0.0
47
53
  - !ruby/object:Gem::Dependency
48
54
  name: tty-spinner
49
55
  requirement: !ruby/object:Gem::Requirement
@@ -172,7 +178,7 @@ homepage: https://github.com/puppetlabs/puppet_litmus
172
178
  licenses:
173
179
  - Apache-2.0
174
180
  metadata: {}
175
- post_install_message:
181
+ post_install_message:
176
182
  rdoc_options: []
177
183
  require_paths:
178
184
  - lib
@@ -187,20 +193,19 @@ required_rubygems_version: !ruby/object:Gem::Requirement
187
193
  - !ruby/object:Gem::Version
188
194
  version: '0'
189
195
  requirements: []
190
- rubyforge_project:
191
- rubygems_version: 2.7.6.2
192
- signing_key:
196
+ rubygems_version: 3.1.2
197
+ signing_key:
193
198
  specification_version: 4
194
199
  summary: Providing a simple command line tool for puppet content creators, to enable
195
200
  simple and complex test deployments.
196
201
  test_files:
197
- - spec/data/doot.tar.gz
198
- - spec/data/inventory.yaml
199
- - spec/data/jim.yaml
200
- - spec/lib/puppet_litmus/inventory_manipulation_spec.rb
202
+ - spec/spec_helper.rb
201
203
  - spec/lib/puppet_litmus/rake_tasks_spec.rb
202
- - spec/lib/puppet_litmus/util_spec.rb
203
204
  - spec/lib/puppet_litmus/version_spec.rb
204
- - spec/lib/puppet_litmus/puppet_helpers_spec.rb
205
+ - spec/lib/puppet_litmus/util_spec.rb
206
+ - spec/lib/puppet_litmus/inventory_manipulation_spec.rb
205
207
  - spec/lib/puppet_litmus/rake_helper_spec.rb
206
- - spec/spec_helper.rb
208
+ - spec/lib/puppet_litmus/puppet_helpers_spec.rb
209
+ - spec/data/doot.tar.gz
210
+ - spec/data/jim.yaml
211
+ - spec/data/inventory.yaml