chef-apply 0.4.6 → 0.4.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -7
  3. data/chef-apply.gemspec +3 -3
  4. data/lib/chef_apply/version.rb +1 -1
  5. metadata +3 -38
  6. data/README.md +0 -62
  7. data/spec/fixtures/custom_config.toml +0 -2
  8. data/spec/integration/chef-run_spec.rb +0 -41
  9. data/spec/integration/fixtures/chef_help.out +0 -70
  10. data/spec/integration/fixtures/chef_version.out +0 -1
  11. data/spec/integration/spec_helper.rb +0 -55
  12. data/spec/spec_helper.rb +0 -154
  13. data/spec/support/matchers/output_to_terminal.rb +0 -36
  14. data/spec/unit/action/base_spec.rb +0 -60
  15. data/spec/unit/action/converge_target/ccr_failure_mapper_spec.rb +0 -106
  16. data/spec/unit/action/converge_target_spec.rb +0 -400
  17. data/spec/unit/action/generate_local_policy_spec.rb +0 -114
  18. data/spec/unit/action/generate_temp_cookbook/recipe_lookup_spec.rb +0 -122
  19. data/spec/unit/action/generate_temp_cookbook/temp_cookbook_spec.rb +0 -198
  20. data/spec/unit/action/generate_temp_cookbook_spec.rb +0 -73
  21. data/spec/unit/action/install_chef/minimum_chef_version_spec.rb +0 -90
  22. data/spec/unit/action/install_chef_spec.rb +0 -164
  23. data/spec/unit/cli/options_spec.rb +0 -75
  24. data/spec/unit/cli/validation_spec.rb +0 -81
  25. data/spec/unit/cli_spec.rb +0 -475
  26. data/spec/unit/config_spec.rb +0 -70
  27. data/spec/unit/file_fetcher_spec.rb +0 -40
  28. data/spec/unit/fixtures/multi-error.out +0 -2
  29. data/spec/unit/log_spec.rb +0 -37
  30. data/spec/unit/startup_spec.rb +0 -323
  31. data/spec/unit/target_host/linux_spec.rb +0 -57
  32. data/spec/unit/target_host/windows_spec.rb +0 -43
  33. data/spec/unit/target_host_spec.rb +0 -297
  34. data/spec/unit/target_resolver_spec.rb +0 -380
  35. data/spec/unit/telemeter/sender_spec.rb +0 -140
  36. data/spec/unit/telemeter_spec.rb +0 -191
  37. data/spec/unit/text/error_translation_spec.rb +0 -109
  38. data/spec/unit/ui/error_printer_spec.rb +0 -196
  39. data/spec/unit/ui/terminal_spec.rb +0 -119
  40. data/spec/unit/version_spec.rb +0 -31
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 79e301aab0d20ec072e87597869b55d24958945f0fb1cfa774841929cb5eaa80
4
- data.tar.gz: e34804469b8ed16dfc9729f3229abc60d0714358146f04ca3a494a70dcef6a96
3
+ metadata.gz: a188a9cccc61b37402d6850df1ffa3020d123b88b71d04788e14487f2f0e28b9
4
+ data.tar.gz: a9f619cb737762fd8c8e06c6152e714708c91b51e4a4de8cd373c20b81ccdb32
5
5
  SHA512:
6
- metadata.gz: 251203d054f4ee1c8319b4b12e40a2778008f603e79530750875686facc0b2a8ec72e40425a1f643e91187882224b04af6a0c6d36698f7d341a35e104ed2c036
7
- data.tar.gz: 107872f223933ca095df7e46afbf22f1260c05339531fb8c51c2e54007203e63f4e4ea4089f30abd75e2a20bd09bd1d4e56d44d21fb278e5e36e04d5db655ff7
6
+ metadata.gz: a790c11592c8e5e6d2abf3456513913cf9e0438a71dc74fb31946d3278ed1f167cb136d781d890db054cb2200794bc83cb3a9f3ed656e6e1d8d6e4624397403a
7
+ data.tar.gz: 24442c737983071f465757df9da2231c99dda4bbbfb0ab2999e60c1910e3c49bfb2cbaa4312bc091d46bf5998fa8483a9755c534edc0b8329f2a7e792046f042
data/Gemfile CHANGED
@@ -17,7 +17,7 @@
17
17
 
18
18
  source "https://rubygems.org"
19
19
  gemspec
20
- # NOTE: do not submit PRs to add pry as a dep, add to your Gemfile.local
20
+
21
21
  group :development do
22
22
  gem "chefstyle"
23
23
  gem "rake", ">= 10.1.0"
@@ -37,9 +37,3 @@ group :debug do
37
37
  gem "pry-stack_explorer"
38
38
  gem "rb-readline"
39
39
  end
40
-
41
- instance_eval(ENV["GEMFILE_MOD"]) if ENV["GEMFILE_MOD"]
42
-
43
- # If you want to load debugging tools into the bundle exec sandbox,
44
- # add these additional dependencies into Gemfile.local
45
- eval_gemfile(__FILE__ + ".local") if File.exist?(__FILE__ + ".local")
@@ -31,10 +31,10 @@ Gem::Specification.new do |spec|
31
31
  spec.license = "Apache-2.0"
32
32
  spec.required_ruby_version = ">= 2.5.0"
33
33
 
34
- spec.files = %w{Rakefile LICENSE README.md warning.txt} +
34
+ spec.files = %w{Rakefile LICENSE warning.txt} +
35
35
  Dir.glob("Gemfile*") + # Includes Gemfile and locks
36
36
  Dir.glob("*.gemspec") +
37
- Dir.glob("{bin,i18n,lib,spec}/**/*", File::FNM_DOTMATCH).reject { |f| File.directory?(f) }
37
+ Dir.glob("{bin,i18n,lib}/**/*", File::FNM_DOTMATCH).reject { |f| File.directory?(f) }
38
38
  spec.bindir = "bin"
39
39
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
40
40
  spec.require_paths = ["lib"]
@@ -48,7 +48,7 @@ Gem::Specification.new do |spec|
48
48
  # localization gem...
49
49
  spec.add_dependency "toml-rb" # This isn't ideal because mixlib-config uses 'tomlrb'
50
50
  # but that library does not support a dumper
51
- spec.add_dependency "train", "~> 3.0" # remote connection management over ssh, winrm
51
+ spec.add_dependency "train-core", "~> 3.0" # remote connection management over ssh, winrm
52
52
  spec.add_dependency "train-winrm" # winrm transports were pulled out into this plugin
53
53
  spec.add_dependency "pastel" # A color library
54
54
  spec.add_dependency "tty-spinner" # Pretty output for status updates in the CLI
@@ -16,5 +16,5 @@
16
16
  #
17
17
 
18
18
  module ChefApply
19
- VERSION = "0.4.6".freeze
19
+ VERSION = "0.4.9".freeze
20
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef-apply
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.4.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chef Software, Inc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-04 00:00:00.000000000 Z
11
+ date: 2019-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-cli
@@ -95,7 +95,7 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: train
98
+ name: train-core
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
@@ -236,7 +236,6 @@ extra_rdoc_files: []
236
236
  files:
237
237
  - Gemfile
238
238
  - LICENSE
239
- - README.md
240
239
  - Rakefile
241
240
  - bin/chef-run
242
241
  - chef-apply.gemspec
@@ -280,40 +279,6 @@ files:
280
279
  - lib/chef_apply/ui/terminal.rb
281
280
  - lib/chef_apply/ui/terminal/job.rb
282
281
  - lib/chef_apply/version.rb
283
- - spec/fixtures/custom_config.toml
284
- - spec/integration/chef-run_spec.rb
285
- - spec/integration/fixtures/chef_help.out
286
- - spec/integration/fixtures/chef_version.out
287
- - spec/integration/spec_helper.rb
288
- - spec/spec_helper.rb
289
- - spec/support/matchers/output_to_terminal.rb
290
- - spec/unit/action/base_spec.rb
291
- - spec/unit/action/converge_target/ccr_failure_mapper_spec.rb
292
- - spec/unit/action/converge_target_spec.rb
293
- - spec/unit/action/generate_local_policy_spec.rb
294
- - spec/unit/action/generate_temp_cookbook/recipe_lookup_spec.rb
295
- - spec/unit/action/generate_temp_cookbook/temp_cookbook_spec.rb
296
- - spec/unit/action/generate_temp_cookbook_spec.rb
297
- - spec/unit/action/install_chef/minimum_chef_version_spec.rb
298
- - spec/unit/action/install_chef_spec.rb
299
- - spec/unit/cli/options_spec.rb
300
- - spec/unit/cli/validation_spec.rb
301
- - spec/unit/cli_spec.rb
302
- - spec/unit/config_spec.rb
303
- - spec/unit/file_fetcher_spec.rb
304
- - spec/unit/fixtures/multi-error.out
305
- - spec/unit/log_spec.rb
306
- - spec/unit/startup_spec.rb
307
- - spec/unit/target_host/linux_spec.rb
308
- - spec/unit/target_host/windows_spec.rb
309
- - spec/unit/target_host_spec.rb
310
- - spec/unit/target_resolver_spec.rb
311
- - spec/unit/telemeter/sender_spec.rb
312
- - spec/unit/telemeter_spec.rb
313
- - spec/unit/text/error_translation_spec.rb
314
- - spec/unit/ui/error_printer_spec.rb
315
- - spec/unit/ui/terminal_spec.rb
316
- - spec/unit/version_spec.rb
317
282
  - warning.txt
318
283
  homepage: https://github.com/chef/chef-apply
319
284
  licenses:
data/README.md DELETED
@@ -1,62 +0,0 @@
1
- # Chef Apply
2
- [![Gem Version](https://badge.fury.io/rb/chef-apply.svg)](https://badge.fury.io/rb/chef-apply)
3
-
4
- The ad-hoc execution tool for the Chef ecosystem.
5
-
6
- **Umbrella Project**: [Workstation](https://github.com/chef/chef-oss-practices/blob/master/projects/chef-workstation.md)
7
-
8
- * **[Project State](https://github.com/chef/chef-oss-practices/blob/master/repo-management/repo-states.md):** Active
9
- * **Issues [Response Time Maximum](https://github.com/chef/chef-oss-practices/blob/master/repo-management/repo-states.md):** 14 days
10
- * **Pull Request [Response Time Maximum](https://github.com/chef/chef-oss-practices/blob/master/repo-management/repo-states.md):** 14 days
11
-
12
- ## Installation
13
-
14
- Add this line to your application's Gemfile:
15
-
16
- ```ruby
17
- gem 'chef-apply'
18
- ```
19
-
20
- And then execute:
21
-
22
- $ bundle
23
-
24
- Or install it yourself as:
25
-
26
- $ gem install chef-apply
27
-
28
-
29
- ## Contributing/Development
30
-
31
- Please read our [Community Contributions Guidelines](https://docs.chef.io/community_contributions.html), and ensure you are signing all your commits with DCO sign-off.
32
-
33
- The general development process is:
34
-
35
- 1. Fork this repo and clone it to your workstation.
36
- 2. Create a feature branch for your change.
37
- 3. Write code and tests.
38
- 4. Push your feature branch to GitHub and open a pull request against master.
39
-
40
- Once your repository is set up, you can start working on the code. We do utilize RSpec for test driven development, so you'll need to get a development environment running. Follow the above procedure ("Installing from Git") to get your local copy of the source running.
41
-
42
- # License
43
-
44
- | | |
45
- |:---------------------|:-----------------------------------------|
46
- | **Copyright:** | Copyright 2018, Chef Software, Inc.
47
- | **License:** | Apache License, Version 2.0
48
-
49
- ```
50
- Licensed under the Apache License, Version 2.0 (the "License");
51
- you may not use this file except in compliance with the License.
52
- You may obtain a copy of the License at
53
-
54
- http://www.apache.org/licenses/LICENSE-2.0
55
-
56
- Unless required by applicable law or agreed to in writing, software
57
- distributed under the License is distributed on an "AS IS" BASIS,
58
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
59
- See the License for the specific language governing permissions and
60
- limitations under the License.
61
- ```
62
-
@@ -1,2 +0,0 @@
1
- [telemetry]
2
- dev = true
@@ -1,41 +0,0 @@
1
- #
2
- # Copyright:: Copyright (c) 2018 Chef Software Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- require "spec_helper"
19
- require "integration/spec_helper"
20
- require "chef_apply/cli"
21
- require "chef_apply/version"
22
-
23
- RSpec.describe "chef_appl" do
24
- context "help output" do
25
- context "at the top level" do
26
- ["-h", "--help", ""].each do |arg|
27
- it "#{arg} displays correct help" do
28
- expect { run_cli_with(arg) }.to output(fixture_content("chef_help")).to_stdout
29
- end
30
- end
31
- end
32
- end
33
-
34
- context "version output" do
35
- ["-v", "--version"].each do |arg|
36
- it "#{arg} displays correct version" do
37
- expect { run_cli_with(arg) }.to output(fixture_content("chef_version")).to_stdout
38
- end
39
- end
40
- end
41
- end
@@ -1,70 +0,0 @@
1
- Chef Run is a tool to execute ad-hoc tasks using Chef.
2
-
3
- chef-run <TARGET[S]> <RESOURCE> <RESOURCE_NAME> [PROPERTIES] [FLAGS]
4
-
5
- Runs a single <RESOURCE> on the specified <TARGET[S]>.
6
- [PROPERTIES] should be specified as key=value.
7
-
8
- For example:
9
-
10
- chef-run web01 service nginx action=restart
11
- chef-run web01,web02 service nginx action=restart
12
- chef-run web0[1:2] service nginx action=restart
13
-
14
- chef-run <TARGET[S]> <RECIPE> [FLAGS]
15
-
16
- Runs a single recipe located at <RECIPE> on the specified <TARGET[S]>.
17
-
18
- For example:
19
-
20
- chef-run web01 path/to/cookbook/recipe.rb
21
- chef-run web01,web02 path/to/cookbook
22
- chef-run web0[1:2] cookbook_name
23
- chef-run web01 cookbook_name::recipe_name
24
-
25
- ARGUMENTS:
26
- <TARGET[S]> The hosts or IPs to target. Can also be an SSH or WinRM URLs
27
- in the form:
28
-
29
- ssh://[USERNAME]@example.com[:PORT]
30
- <RESOURCE> A Chef resource, such as 'user' or 'package'
31
- <RESOURCE_NAME> The name, usually used to specify what 'thing' to set up with
32
- the resource. For example, given resource 'user', 'name' would be
33
- the name of the user you wanted to create.
34
- <RECIPE> The recipe to converge. This can be provided as one of:
35
- 1. Full path to a recipe file
36
- 2. Cookbook name. First we check the working directory for this
37
- cookbook, then we check in the chef repository path. If a
38
- cookbook is found we run the default recipe.
39
- 3. This behaves similarly to 'cookbook name' above, but it also allows
40
- you to specify which recipe to use from the cookbook.
41
-
42
- FLAGS:
43
- --chef-license ACCEPTANCE Accept the license for this product and any contained products ('accept', 'accept-no-persist', or 'accept-silent')
44
- -c, --config PATH Location of config file. Default: $HOME/.chef-workstation/config.toml
45
- --cookbook-repo-paths PATH Comma separated list of cookbook repository paths.
46
- -h, --help Show help and usage for `chef-run`
47
- -i, --identity-file PATH SSH identity file to use when connecting. Keys loaded into ssh-agent will also be used.
48
- --[no-]install Install Chef client on the target host(s) if it is not installed.
49
- This defaults to enabled - the installation will be performed
50
- if there is no Chef client on the target(s).
51
- --password <PASSWORD> Password to use for authentication to the target(s). The same
52
- password will be used for all targets.
53
- -p, --protocol <PROTOCOL> The protocol to use for connecting to targets.
54
- The default is 'ssh', and it can be changed in config.toml by
55
- setting 'connection.default_protocol' to a supported option.
56
- --[no-]ssl Use SSL for WinRM. Current default: false
57
- --[no-]ssl-verify Verify peer certificate when using SSL for WinRM
58
- Use --ssl-no-verify when using SSL for WinRM and
59
- the remote host is using a self-signed certificate.
60
- Current default: true
61
- --[no-]sudo Whether to use root permissions on the target. Default: true
62
- --sudo-command <COMMAND> Command to use for administrative/root access. Defaults to 'sudo'.
63
- --sudo-options 'OPTIONS...' Options to use with the sudo command. If there are multiple flags,
64
- quote them. For example: --sudo-options '-H -P -s'
65
- --sudo-password <PASSWORD> Password to use with the sudo command. This must be provided if
66
- password is required for sudo on the target(s). The same sudo password
67
- will be used for all targets.
68
- --user <USER> Username to use for authentication to the target(s). The same
69
- username will be used for all targets.
70
- -v, --version Show the current version of Chef Run.
@@ -1 +0,0 @@
1
- chef-run: $VERSION
@@ -1,55 +0,0 @@
1
- #
2
- # Copyright:: Copyright (c) 2018 Chef Software Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- require "chef_apply/startup"
19
- require "chef_apply/version"
20
-
21
- # Create the chef configuration directory and touch the config
22
- # file.
23
- # this makes sure our output doesn't include
24
- # an extra line telling us that it's created,
25
- # causing the first integration test to execute to fail on
26
- # CI.
27
- # TODO this is not ideal... let's look at
28
- # testing the output correctly in both cases,
29
- # possible forcing a specific test that will also create
30
- # the directory to run first.
31
- dir = File.join(Dir.home, ".chef-workstation")
32
- conf = File.join(dir, "config.toml")
33
- FileUtils.mkdir_p(dir) unless Dir.exist?(dir)
34
- FileUtils.touch(conf) unless File.exist?(conf)
35
-
36
- # Simple wrapper that runs the CLI and prevents it
37
- # from aborting all tests with a SystemExit.
38
- # We could shell out, but this will run a little faster as we
39
- # accumulate more things to test - and will work better to get
40
- # accurate simplecov coverage reporting.
41
- # usage:
42
- # expect {run_with_cli("blah")}.to output("blah").to_stdout
43
- def run_cli_with(args)
44
- ChefApply::Startup.new(args.split(" ")).run
45
- rescue SystemExit
46
- end
47
-
48
- def fixture_content(name)
49
- content = File.read(File.join("spec/integration/fixtures", "#{name}.out"))
50
- # Replace $VERSION if present - this is updated automatically, so we can't include
51
- # the literal version value in the fixture without
52
- # having expeditor update it there too...
53
- content.gsub("$VERSION", ChefApply::VERSION)
54
- .gsub("$HOME", Dir.home)
55
- end
@@ -1,154 +0,0 @@
1
- #
2
- # Copyright:: Copyright (c) 2018 Chef Software Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- require "bundler/setup"
19
- require "simplecov"
20
- require "rspec/expectations"
21
- require "support/matchers/output_to_terminal"
22
-
23
- # class << Kernel
24
- # alias :_require :require
25
- # def require(*args)
26
- #
27
- # show = false
28
- # args.each do |a|
29
- # if a =~ /chef_apply.*/
30
- # show = true
31
- # break
32
- # end
33
- # end
34
- #
35
- # $stderr.puts "from #{File.basename(caller[1])}: require: %s" % [args.inspect] if show
36
- # _require(*args)
37
- # end
38
- #
39
- # alias :_load :load
40
- # def load(*args)
41
- # show = false
42
- # args.each do |a|
43
- # if a =~ /chef_apply.*/
44
- # show = true
45
- # break
46
- # end
47
- # end
48
- # $stderr.puts "from #{File.basename(caller[1])}: load: %s" % [args.inspect] if show
49
- # _load(*args)
50
- # end
51
- #
52
- # end
53
- #
54
- # module Kernel
55
- # def require(*args)
56
- # Kernel.require(*args)
57
- # end
58
- # def load(*args)
59
- # Kernel.load(*args)
60
- # end
61
- # end
62
-
63
- RemoteExecResult = Struct.new(:exit_status, :stdout, :stderr)
64
-
65
- class ChefApply::MockReporter
66
- def update(msg); ChefApply::UI::Terminal.output msg; end
67
-
68
- def success(msg); ChefApply::UI::Terminal.output "SUCCESS: #{msg}"; end
69
-
70
- def error(msg); ChefApply::UI::Terminal.output "FAILURE: #{msg}"; end
71
- end
72
-
73
- RSpec::Matchers.define :exit_with_code do |expected_code|
74
- actual_code = nil
75
- match do |block|
76
- begin
77
- block.call
78
- rescue SystemExit => e
79
- actual_code = e.status
80
- end
81
- actual_code && actual_code == expected_code
82
- end
83
-
84
- failure_message do |block|
85
- result = actual.nil? ? " did not call exit" : " called exit(#{actual_code})"
86
- "expected exit(#{expected_code}) but it #{result}."
87
- end
88
-
89
- failure_message_when_negated do |block|
90
- "expected exit(#{expected_code}) but it did."
91
- end
92
-
93
- description do
94
- "expect exit(#{expected_code})"
95
- end
96
-
97
- supports_block_expectations do
98
- true
99
- end
100
- end
101
- # TODO would read better to make this a custom matcher.
102
- # Simulates a recursive string lookup on the Text object
103
- #
104
- # assert_string_lookup("tree.tree.tree.leaf", "a returned string")
105
- # TODO this can be more cleanly expressed as a custom matcher...
106
- def assert_string_lookup(key, retval = "testvalue")
107
- it "should look up string #{key}" do
108
- top_level_method, *call_seq = key.split(".")
109
- terminal_method = call_seq.pop
110
- tmock = double
111
- # Because ordering is important
112
- # (eg calling errors.hello is different from hello.errors),
113
- # we need to add this individually instead of using
114
- # `receive_messages`, which doesn't appear to give a way to
115
- # guarantee ordering
116
- expect(ChefApply::Text).to receive(top_level_method)
117
- .and_return(tmock)
118
- call_seq.each do |m|
119
- expect(tmock).to receive(m).ordered.and_return(tmock)
120
- end
121
- expect(tmock).to receive(terminal_method)
122
- .ordered.and_return(retval)
123
- subject.call
124
- end
125
- end
126
-
127
- RSpec.configure do |config|
128
- # Enable flags like --only-failures and --next-failure
129
- config.example_status_persistence_file_path = ".rspec_status"
130
- config.run_all_when_everything_filtered = true
131
- config.filter_run :focus
132
-
133
- # Disable RSpec exposing methods globally on `Module` and `main`
134
- config.disable_monkey_patching!
135
-
136
- config.expect_with :rspec do |c|
137
- c.syntax = :expect
138
- end
139
-
140
- config.mock_with :rspec do |mocks|
141
- mocks.verify_partial_doubles = true
142
- end
143
-
144
- config.before(:all) do
145
- ChefApply::Log.setup File::NULL, :error
146
- ChefApply::UI::Terminal.init(File.open(File::NULL, "w"))
147
- end
148
- end
149
-
150
- if ENV["CIRCLE_ARTIFACTS"]
151
- dir = File.join(ENV["CIRCLE_ARTIFACTS"], "coverage")
152
- SimpleCov.coverage_dir(dir)
153
- end
154
- SimpleCov.start