boxen-linux 2.7.1
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 +7 -0
- data/.gitignore +11 -0
- data/.travis.yml +7 -0
- data/Gemfile +2 -0
- data/LICENSE +20 -0
- data/README.md +50 -0
- data/boxen.gemspec +26 -0
- data/lib/boxen/check.rb +72 -0
- data/lib/boxen/checkout.rb +25 -0
- data/lib/boxen/cli.rb +63 -0
- data/lib/boxen/config.rb +330 -0
- data/lib/boxen/error.rb +4 -0
- data/lib/boxen/flags.rb +272 -0
- data/lib/boxen/hook.rb +47 -0
- data/lib/boxen/hook/github_issue.rb +120 -0
- data/lib/boxen/hook/web.rb +56 -0
- data/lib/boxen/keychain.rb +63 -0
- data/lib/boxen/postflight.rb +13 -0
- data/lib/boxen/postflight/active.rb +16 -0
- data/lib/boxen/postflight/env.rb +34 -0
- data/lib/boxen/preflight.rb +13 -0
- data/lib/boxen/preflight/creds.rb +108 -0
- data/lib/boxen/preflight/directories.rb +32 -0
- data/lib/boxen/preflight/etc_my_cnf.rb +12 -0
- data/lib/boxen/preflight/homebrew.rb +13 -0
- data/lib/boxen/preflight/identity.rb +16 -0
- data/lib/boxen/preflight/os.rb +33 -0
- data/lib/boxen/preflight/rbenv.rb +12 -0
- data/lib/boxen/preflight/rvm.rb +12 -0
- data/lib/boxen/project.rb +20 -0
- data/lib/boxen/puppeteer.rb +122 -0
- data/lib/boxen/runner.rb +149 -0
- data/lib/boxen/service.rb +58 -0
- data/lib/boxen/util.rb +17 -0
- data/lib/facter/boxen.rb +34 -0
- data/lib/system_timer.rb +13 -0
- data/script/Boxen +0 -0
- data/script/Boxen-linux +0 -0
- data/script/bootstrap +7 -0
- data/script/build-keychain-helper +6 -0
- data/script/build-keyring-helper +9 -0
- data/script/release +38 -0
- data/script/tests +10 -0
- data/src/keychain-helper.c +85 -0
- data/src/keyring-helper.c +86 -0
- data/test/boxen/test.rb +7 -0
- data/test/boxen_check_test.rb +55 -0
- data/test/boxen_checkout_test.rb +42 -0
- data/test/boxen_cli_test.rb +39 -0
- data/test/boxen_config_test.rb +393 -0
- data/test/boxen_directories_test.rb +40 -0
- data/test/boxen_flags_test.rb +217 -0
- data/test/boxen_hook_github_issue_test.rb +294 -0
- data/test/boxen_hook_web_test.rb +58 -0
- data/test/boxen_keychain_test.rb +24 -0
- data/test/boxen_postflight_active_test.rb +29 -0
- data/test/boxen_postflight_env_test.rb +6 -0
- data/test/boxen_preflight_creds_test.rb +80 -0
- data/test/boxen_preflight_etc_my_cnf_test.rb +10 -0
- data/test/boxen_preflight_homebrew_test.rb +10 -0
- data/test/boxen_preflight_rvm_test.rb +10 -0
- data/test/boxen_project_test.rb +14 -0
- data/test/boxen_puppeteer_test.rb +101 -0
- data/test/boxen_runner_test.rb +171 -0
- data/test/boxen_service_test.rb +39 -0
- data/test/boxen_util_test.rb +21 -0
- data/test/fixtures/repo/modules/projects/manifests/first-project.pp +0 -0
- data/test/fixtures/repo/modules/projects/manifests/second-project.pp +0 -0
- data/test/system_timer.rb +10 -0
- metadata +279 -0
@@ -0,0 +1,58 @@
|
|
1
|
+
require "boxen/test"
|
2
|
+
require "boxen/hook/web"
|
3
|
+
|
4
|
+
class Boxen::Config
|
5
|
+
attr_writer :api
|
6
|
+
end
|
7
|
+
|
8
|
+
class BoxenHookWebTest < Boxen::Test
|
9
|
+
def setup
|
10
|
+
@config = Boxen::Config.new
|
11
|
+
@checkout = Boxen::Checkout.new(@config)
|
12
|
+
@puppet = mock 'puppeteer'
|
13
|
+
@result = stub 'result', :success? => true
|
14
|
+
@hook = Boxen::Hook::Web.new @config, @checkout, @puppet, @result
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_enabled
|
18
|
+
original = ENV['BOXEN_WEB_HOOK_URL']
|
19
|
+
|
20
|
+
ENV['BOXEN_WEB_HOOK_URL'] = nil
|
21
|
+
refute @hook.enabled?
|
22
|
+
|
23
|
+
ENV['BOXEN_WEB_HOOK_URL'] = ''
|
24
|
+
refute @hook.enabled?
|
25
|
+
|
26
|
+
ENV['BOXEN_WEB_HOOK_URL'] = '1'
|
27
|
+
assert @hook.enabled?
|
28
|
+
|
29
|
+
ENV['BOXEN_WEB_HOOK_URL'] = original
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_perform
|
33
|
+
@hook.stubs(:enabled?).returns(false)
|
34
|
+
refute @hook.perform?
|
35
|
+
|
36
|
+
@hook.stubs(:enabled?).returns(true)
|
37
|
+
assert @hook.perform?
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_run
|
41
|
+
@config.stubs(:user).returns('fred')
|
42
|
+
@checkout.stubs(:sha).returns('87dbag3')
|
43
|
+
@result.stubs(:success?).returns(false)
|
44
|
+
now = Time.now
|
45
|
+
Time.stubs(:now).returns(now)
|
46
|
+
|
47
|
+
@hook.stubs(:enabled?).returns(true)
|
48
|
+
|
49
|
+
@hook.expects(:post_web_hook).with({
|
50
|
+
:login => 'fred',
|
51
|
+
:sha => '87dbag3',
|
52
|
+
:status => 'failure',
|
53
|
+
:time => "#{now.utc.to_i}"
|
54
|
+
})
|
55
|
+
|
56
|
+
@hook.run
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require "boxen/test"
|
2
|
+
require "boxen/keychain"
|
3
|
+
|
4
|
+
class BoxenKeychainTest < Boxen::Test
|
5
|
+
def setup
|
6
|
+
@keychain = Boxen::Keychain.new('test') if osx?
|
7
|
+
end
|
8
|
+
|
9
|
+
def osx?
|
10
|
+
RUBY_PLATFORM.downcase.include?("darwin")
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_get_token
|
14
|
+
return skip("Keychain helper is OSX only") unless osx?
|
15
|
+
@keychain.expects(:get).with('GitHub API Token').returns('foobar')
|
16
|
+
assert_equal 'foobar', @keychain.token
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_set_token
|
20
|
+
return skip("Keychain helper is OSX only") unless osx?
|
21
|
+
@keychain.expects(:set).with('GitHub API Token', 'foobar').returns('foobar')
|
22
|
+
assert_equal 'foobar', @keychain.token=('foobar')
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require "boxen/test"
|
2
|
+
require "boxen/postflight"
|
3
|
+
|
4
|
+
class BoxenPostflightActiveTest < Boxen::Test
|
5
|
+
def setup
|
6
|
+
@check = Boxen::Postflight::Active.new :config
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_ok?
|
10
|
+
Boxen::Util.expects(:active?).returns true
|
11
|
+
assert @check.ok?
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_ok_bad
|
15
|
+
Boxen::Util.expects(:active?).returns false
|
16
|
+
refute @check.ok?
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_run
|
20
|
+
config = stub :envfile => "foo"
|
21
|
+
@check = Boxen::Postflight::Active.new config
|
22
|
+
|
23
|
+
stdout, stderr = capture_io do
|
24
|
+
@check.run
|
25
|
+
end
|
26
|
+
|
27
|
+
assert_match "loaded", stderr
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'boxen/test'
|
2
|
+
require 'boxen/config'
|
3
|
+
require 'boxen/preflight/creds'
|
4
|
+
|
5
|
+
class BoxenPreflightCredsTest < Boxen::Test
|
6
|
+
def setup
|
7
|
+
@config = Boxen::Config.new do |c|
|
8
|
+
c.user = 'mojombo'
|
9
|
+
c.token = 'sekr3t!'
|
10
|
+
end
|
11
|
+
ENV.delete("BOXEN_GITHUB_LOGIN")
|
12
|
+
ENV.delete("BOXEN_GITHUB_PASSWORD")
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_basic
|
16
|
+
preflight = Boxen::Preflight::Creds.new @config
|
17
|
+
|
18
|
+
error = Octokit::Unauthorized.new
|
19
|
+
@config.api.stubs(:user).raises(error)
|
20
|
+
|
21
|
+
refute preflight.ok?
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_basic_with_otp_challenge
|
25
|
+
preflight = Boxen::Preflight::Creds.new @config
|
26
|
+
|
27
|
+
blank_opt = {:headers => {}}
|
28
|
+
good_otp = {:headers => {"X-GitHub-OTP" => "123456"}}
|
29
|
+
|
30
|
+
error = Octokit::OneTimePasswordRequired.new
|
31
|
+
error.stubs(:message).returns("OTP")
|
32
|
+
|
33
|
+
preflight.tmp_api.expects(:authorizations).with(blank_opt).raises(error)
|
34
|
+
preflight.tmp_api.expects(:authorizations).with(good_otp).returns([])
|
35
|
+
preflight.tmp_api.expects(:create_authorization).raises(error)
|
36
|
+
|
37
|
+
preflight.expects(:warn)
|
38
|
+
HighLine.any_instance.expects(:ask).returns("123456")
|
39
|
+
|
40
|
+
preflight.get_tokens
|
41
|
+
assert_equal "123456", preflight.otp
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_fetch_login_and_password_when_nothing_is_given_in_env
|
45
|
+
# fetches login and password by asking
|
46
|
+
preflight = Boxen::Preflight::Creds.new @config
|
47
|
+
HighLine.any_instance.expects(:ask).with("GitHub login: ").returns "l"
|
48
|
+
HighLine.any_instance.expects(:ask).with("GitHub password: ").returns "p"
|
49
|
+
preflight.send(:fetch_login_and_password)
|
50
|
+
|
51
|
+
assert_equal "l", @config.login
|
52
|
+
assert_equal "p", preflight.instance_variable_get(:@password)
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_fetch_password_when_login_is_given_in_env
|
56
|
+
# fetches only password by asking
|
57
|
+
ENV["BOXEN_GITHUB_LOGIN"] = "l"
|
58
|
+
preflight = Boxen::Preflight::Creds.new @config
|
59
|
+
preflight.expects(:warn)
|
60
|
+
HighLine.any_instance.expects(:ask).with("GitHub login: ").never
|
61
|
+
HighLine.any_instance.expects(:ask).with("GitHub password: ").returns "p"
|
62
|
+
preflight.send(:fetch_login_and_password)
|
63
|
+
|
64
|
+
assert_equal "l", @config.login
|
65
|
+
assert_equal "p", preflight.instance_variable_get(:@password)
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_fetch_login_when_password_is_given_in_env
|
69
|
+
# fetches only login by asking
|
70
|
+
ENV["BOXEN_GITHUB_PASSWORD"] = "p"
|
71
|
+
preflight = Boxen::Preflight::Creds.new @config
|
72
|
+
preflight.expects(:warn)
|
73
|
+
HighLine.any_instance.expects(:ask).with("GitHub login: ").returns "l"
|
74
|
+
HighLine.any_instance.expects(:ask).with("GitHub password: ").never
|
75
|
+
preflight.send(:fetch_login_and_password)
|
76
|
+
|
77
|
+
assert_equal "l", @config.login
|
78
|
+
assert_equal "p", preflight.instance_variable_get(:@password)
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'boxen/test'
|
2
|
+
require 'boxen/preflight/etc_my_cnf'
|
3
|
+
|
4
|
+
class BoxenPreflightEtcMyCnfTest < Boxen::Test
|
5
|
+
def test_file_check
|
6
|
+
preflight = Boxen::Preflight::EtcMyCnf.new(mock('config'))
|
7
|
+
File.expects(:file?).with("/etc/my.cnf").returns(false)
|
8
|
+
assert preflight.ok?
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'boxen/test'
|
2
|
+
require 'boxen/preflight/homebrew'
|
3
|
+
|
4
|
+
class BoxenPreflightHomebrewTest < Boxen::Test
|
5
|
+
def test_directory_check
|
6
|
+
preflight = Boxen::Preflight::Homebrew.new(mock('config'))
|
7
|
+
File.expects(:exist?).with("/usr/local/Library/Homebrew").returns(false)
|
8
|
+
assert preflight.ok?
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'boxen/test'
|
2
|
+
require 'boxen/preflight/rvm'
|
3
|
+
|
4
|
+
class BoxenPreflightRVMTest < Boxen::Test
|
5
|
+
def test_directory_check
|
6
|
+
preflight = Boxen::Preflight::RVM.new(mock('config'))
|
7
|
+
File.expects(:exist?).with("#{ENV['HOME']}/.rvm").returns(false)
|
8
|
+
assert preflight.ok?
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "boxen/test"
|
2
|
+
require "boxen/project"
|
3
|
+
|
4
|
+
class BoxenProjectTest < Boxen::Test
|
5
|
+
def test_initialize
|
6
|
+
project = Boxen::Project.new "foo"
|
7
|
+
assert_equal "foo", project.dir
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_name
|
11
|
+
project = Boxen::Project.new "foo/bar/baz"
|
12
|
+
assert_equal "baz", project.name
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
require "boxen/test"
|
2
|
+
require "boxen/puppeteer"
|
3
|
+
|
4
|
+
class BoxenPuppeteerTest < Boxen::Test
|
5
|
+
def test_initialize
|
6
|
+
puppet = Boxen::Puppeteer.new :config
|
7
|
+
assert_equal :config, puppet.config
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_flags
|
11
|
+
config = stub do
|
12
|
+
stubs(:homedir).returns "homedir"
|
13
|
+
stubs(:logfile).returns "logfile"
|
14
|
+
stubs(:profile?).returns true
|
15
|
+
stubs(:future_parser?).returns true
|
16
|
+
stubs(:puppetdir).returns "puppetdir"
|
17
|
+
stubs(:repodir).returns "repodir"
|
18
|
+
stubs(:debug?).returns true
|
19
|
+
stubs(:pretend?).returns true
|
20
|
+
stubs(:report?).returns false
|
21
|
+
stubs(:graph?).returns false
|
22
|
+
stubs(:color?).returns false
|
23
|
+
end
|
24
|
+
|
25
|
+
puppet = Boxen::Puppeteer.new config
|
26
|
+
flags = puppet.flags
|
27
|
+
|
28
|
+
assert_flag "--debug", flags
|
29
|
+
assert_flag "--detailed-exitcodes", flags
|
30
|
+
assert_flag "--evaltrace", flags
|
31
|
+
assert_flag "--no-report", flags
|
32
|
+
assert_flag "--noop", flags
|
33
|
+
assert_flag "--summarize", flags
|
34
|
+
assert_flag "--color=false", flags
|
35
|
+
assert_flag "--parser=future", flags
|
36
|
+
|
37
|
+
assert_flag_value "--confdir", :anything, flags
|
38
|
+
assert_flag_value "--group", "admin", flags
|
39
|
+
assert_flag_value "--vardir", :anything, flags
|
40
|
+
assert_flag_value "--libdir", :anything, flags
|
41
|
+
assert_flag_value "--manifestdir", :anything, flags
|
42
|
+
assert_flag_value "--modulepath", :anything, flags
|
43
|
+
|
44
|
+
assert_flag_value "--hiera_config", "/dev/null", flags
|
45
|
+
|
46
|
+
assert_flag_value "--logdest", "logfile", flags
|
47
|
+
assert_flag_value "--logdest", "console", flags
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_run
|
51
|
+
config = stub do
|
52
|
+
stubs(:debug?).returns false
|
53
|
+
stubs(:homedir).returns "homedir"
|
54
|
+
stubs(:logfile).returns "logfile"
|
55
|
+
stubs(:pretend?).returns false
|
56
|
+
stubs(:profile?).returns false
|
57
|
+
stubs(:future_parser?).returns false
|
58
|
+
stubs(:report?).returns false
|
59
|
+
stubs(:graph?).returns false
|
60
|
+
stubs(:puppetdir).returns "puppetdir"
|
61
|
+
stubs(:repodir).returns "test/fixtures/repo"
|
62
|
+
stubs(:color?).returns true
|
63
|
+
end
|
64
|
+
|
65
|
+
puppet = Boxen::Puppeteer.new config
|
66
|
+
|
67
|
+
FileUtils.expects(:rm_f).with config.logfile
|
68
|
+
FileUtils.expects(:touch).with config.logfile
|
69
|
+
FileUtils.expects(:mkdir_p).with File.dirname(config.logfile)
|
70
|
+
FileUtils.expects(:mkdir_p).with config.puppetdir
|
71
|
+
Boxen::Util.expects(:sudo).with *puppet.command
|
72
|
+
|
73
|
+
puppet.run
|
74
|
+
end
|
75
|
+
|
76
|
+
def assert_flag(flag, flags)
|
77
|
+
assert flags.include?(flag), "Flags must include #{flag}."
|
78
|
+
end
|
79
|
+
|
80
|
+
def assert_flag_value(flag, value, flags)
|
81
|
+
pair = [flag, value]
|
82
|
+
|
83
|
+
found = (0..flags.size).detect do |i|
|
84
|
+
candidate = flags[i, pair.size]
|
85
|
+
value == :anything ? candidate.size == pair.size : candidate == pair
|
86
|
+
end
|
87
|
+
|
88
|
+
assert found, "Flags must include #{flag} #{value}."
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_status
|
92
|
+
status = Boxen::Puppeteer::Status.new(0)
|
93
|
+
assert status.success?
|
94
|
+
|
95
|
+
status = Boxen::Puppeteer::Status.new(2)
|
96
|
+
assert status.success?
|
97
|
+
|
98
|
+
status = Boxen::Puppeteer::Status.new(1)
|
99
|
+
refute status.success?
|
100
|
+
end
|
101
|
+
end
|
@@ -0,0 +1,171 @@
|
|
1
|
+
require "boxen/test"
|
2
|
+
require "boxen/runner"
|
3
|
+
|
4
|
+
class BoxenRunnerTest < Boxen::Test
|
5
|
+
def setup
|
6
|
+
@config = Boxen::Config.new
|
7
|
+
@flags = Boxen::Flags.new
|
8
|
+
@runner = Boxen::Runner.new(@config, @flags)
|
9
|
+
|
10
|
+
$stdout.stubs(:puts).returns(true)
|
11
|
+
$stdout.stubs(:write).returns(true)
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_initialize
|
15
|
+
config = Boxen::Config.new
|
16
|
+
flags = Boxen::Flags.new
|
17
|
+
|
18
|
+
runner = Boxen::Runner.new(config, flags)
|
19
|
+
|
20
|
+
assert_equal config, runner.config
|
21
|
+
assert_equal flags, runner.flags
|
22
|
+
assert_equal config, runner.puppet.config
|
23
|
+
end
|
24
|
+
|
25
|
+
HookYes = Struct.new(:config, :checkout, :puppet, :result)
|
26
|
+
HookNo = Struct.new(:config, :checkout, :puppet, :result)
|
27
|
+
def test_report
|
28
|
+
runner = Boxen::Runner.new(@config, @flags)
|
29
|
+
runner.stubs(:hooks).returns([HookYes, HookNo])
|
30
|
+
|
31
|
+
hook_yes = stub('HookYes')
|
32
|
+
hook_no = stub('HookNo')
|
33
|
+
|
34
|
+
HookYes.stubs(:new).returns(hook_yes)
|
35
|
+
HookNo.stubs(:new).returns(hook_no)
|
36
|
+
|
37
|
+
hook_yes.expects(:run).once
|
38
|
+
hook_no.expects(:run).once
|
39
|
+
|
40
|
+
runner.report(stub('result'))
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_disable_service
|
44
|
+
config = Boxen::Config.new
|
45
|
+
flags = Boxen::Flags.new('--disable-service', 'test')
|
46
|
+
runner = Boxen::Runner.new config, flags
|
47
|
+
|
48
|
+
service = mock('service', :disable => true)
|
49
|
+
Boxen::Service.stubs(:new).returns(service)
|
50
|
+
|
51
|
+
assert_raises(SystemExit) do
|
52
|
+
runner.process
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_enable_service
|
57
|
+
config = Boxen::Config.new
|
58
|
+
flags = Boxen::Flags.new('--enable-service', 'test')
|
59
|
+
runner = Boxen::Runner.new config, flags
|
60
|
+
|
61
|
+
service = mock('service', :enable => true)
|
62
|
+
Boxen::Service.stubs(:new).returns(service)
|
63
|
+
|
64
|
+
assert_raises(SystemExit) do
|
65
|
+
runner.process
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_restart_service
|
70
|
+
config = Boxen::Config.new
|
71
|
+
flags = Boxen::Flags.new('--restart-service', 'test')
|
72
|
+
runner = Boxen::Runner.new config, flags
|
73
|
+
|
74
|
+
service = mock('service')
|
75
|
+
service.expects(:disable).once
|
76
|
+
service.expects(:enable).once
|
77
|
+
|
78
|
+
Boxen::Service.stubs(:new).returns(service)
|
79
|
+
|
80
|
+
assert_raises(SystemExit) do
|
81
|
+
runner.process
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_disable_services
|
86
|
+
config = Boxen::Config.new
|
87
|
+
flags = Boxen::Flags.new('--disable-services')
|
88
|
+
runner = Boxen::Runner.new config, flags
|
89
|
+
|
90
|
+
services = Array.new(3) { mock('service', :disable => true) }
|
91
|
+
Boxen::Service.stubs(:list).returns(services)
|
92
|
+
|
93
|
+
assert_raises(SystemExit) do
|
94
|
+
runner.process
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_enable_services
|
99
|
+
config = Boxen::Config.new
|
100
|
+
flags = Boxen::Flags.new('--enable-services')
|
101
|
+
runner = Boxen::Runner.new config, flags
|
102
|
+
|
103
|
+
services = Array.new(3) { mock('service', :enable => true) }
|
104
|
+
Boxen::Service.stubs(:list).returns(services)
|
105
|
+
|
106
|
+
assert_raises(SystemExit) do
|
107
|
+
runner.process
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
def test_restart_services
|
112
|
+
config = Boxen::Config.new
|
113
|
+
flags = Boxen::Flags.new('--restart-services')
|
114
|
+
runner = Boxen::Runner.new config, flags
|
115
|
+
|
116
|
+
services = Array.new(3) { mock('service') }
|
117
|
+
services.each do |service|
|
118
|
+
service.expects(:disable).once
|
119
|
+
service.expects(:enable).once
|
120
|
+
end
|
121
|
+
Boxen::Service.stubs(:list_enabled).returns(services)
|
122
|
+
|
123
|
+
assert_raises(SystemExit) do
|
124
|
+
runner.process
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
def test_list_services
|
129
|
+
config = Boxen::Config.new
|
130
|
+
flags = Boxen::Flags.new('--list-services')
|
131
|
+
runner = Boxen::Runner.new config, flags
|
132
|
+
|
133
|
+
Boxen::Service.expects(:list).returns(%w[a list of services])
|
134
|
+
|
135
|
+
assert_raises(SystemExit) do
|
136
|
+
runner.process
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
def test_specify_project
|
141
|
+
skip "busted and probably due to be replaced if @jbarnette can fix it"
|
142
|
+
fact = 'cli_boxen_projects'
|
143
|
+
refute Facter.value(fact)
|
144
|
+
|
145
|
+
project = 'some_project'
|
146
|
+
flags = Boxen::Flags.new(project)
|
147
|
+
|
148
|
+
runner = Boxen::Runner.new(@config, flags)
|
149
|
+
runner.puppet.expects(:run).with().returns(true)
|
150
|
+
runner.process
|
151
|
+
assert_equal project, Facter.value(fact)
|
152
|
+
|
153
|
+
|
154
|
+
project = 'other_project'
|
155
|
+
flags = Boxen::Flags.new('--debug', project)
|
156
|
+
|
157
|
+
runner = Boxen::Runner.new(@config, flags)
|
158
|
+
runner.puppet.expects(:run).with().returns(true)
|
159
|
+
runner.process
|
160
|
+
assert_equal project, Facter.value(fact)
|
161
|
+
|
162
|
+
|
163
|
+
projects = %w[my cool projects]
|
164
|
+
flags = Boxen::Flags.new('--noop', *projects)
|
165
|
+
|
166
|
+
runner = Boxen::Runner.new(@config, flags)
|
167
|
+
runner.puppet.expects(:run).with().returns(true)
|
168
|
+
runner.process
|
169
|
+
assert_equal projects.join(','), Facter.value(fact)
|
170
|
+
end
|
171
|
+
end
|