boxen 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,6 @@
1
+ require "boxen/test"
2
+ require "boxen/postflight"
3
+
4
+ class BoxenPostflightEnvTest < Boxen::Test
5
+
6
+ end
@@ -0,0 +1,21 @@
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_installed?
11
+ project = Boxen::Project.new "foo"
12
+
13
+ File.expects(:directory?).with("foo").returns true
14
+ assert project.installed?
15
+ end
16
+
17
+ def test_name
18
+ project = Boxen::Project.new "foo/bar/baz"
19
+ assert_equal "baz", project.name
20
+ end
21
+ end
@@ -0,0 +1,77 @@
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(:puppetdir).returns "puppetdir"
16
+ stubs(:repodir).returns "repodir"
17
+ stubs(:debug?).returns true
18
+ stubs(:pretend?).returns true
19
+ end
20
+
21
+ puppet = Boxen::Puppeteer.new config
22
+ flags = puppet.flags
23
+
24
+ assert_flag "--debug", flags
25
+ assert_flag "--detailed-exitcodes", flags
26
+ assert_flag "--evaltrace", flags
27
+ assert_flag "--no-report", flags
28
+ assert_flag "--noop", flags
29
+ assert_flag "--summarize", flags
30
+
31
+ assert_flag_value "--confdir", :anything, flags
32
+ assert_flag_value "--vardir", :anything, flags
33
+ assert_flag_value "--libdir", :anything, flags
34
+ assert_flag_value "--manifestdir", :anything, flags
35
+ assert_flag_value "--modulepath", :anything, flags
36
+
37
+ assert_flag_value "--logdest", "logfile", flags
38
+ assert_flag_value "--logdest", "console", flags
39
+ end
40
+
41
+ def test_run
42
+ config = stub do
43
+ stubs(:debug?).returns false
44
+ stubs(:homedir).returns "homedir"
45
+ stubs(:logfile).returns "logfile"
46
+ stubs(:pretend?).returns false
47
+ stubs(:profile?).returns false
48
+ stubs(:puppetdir).returns "puppetdir"
49
+ stubs(:repodir).returns "test/fixtures/repo"
50
+ end
51
+
52
+ puppet = Boxen::Puppeteer.new config
53
+
54
+ FileUtils.expects(:rm_f).with config.logfile
55
+ FileUtils.expects(:touch).with config.logfile
56
+ FileUtils.expects(:mkdir_p).with File.dirname(config.logfile)
57
+ FileUtils.expects(:mkdir_p).with config.puppetdir
58
+ Boxen::Util.expects(:sudo).with *puppet.command
59
+
60
+ puppet.run
61
+ end
62
+
63
+ def assert_flag(flag, flags)
64
+ assert flags.include?(flag), "Flags must include #{flag}."
65
+ end
66
+
67
+ def assert_flag_value(flag, value, flags)
68
+ pair = [flag, value]
69
+
70
+ found = (0..flags.size).detect do |i|
71
+ candidate = flags[i, pair.size]
72
+ value == :anything ? candidate.size == pair.size : candidate == pair
73
+ end
74
+
75
+ assert found, "Flags must include #{flag} #{value}."
76
+ end
77
+ end
@@ -0,0 +1,21 @@
1
+ require "boxen/test"
2
+ require "boxen/util"
3
+
4
+ class BoxenUtilTest < Boxen::Test
5
+ def test_self_active?
6
+ ENV.expects(:include?).with("BOXEN_HOME").returns true
7
+ assert Boxen::Util.active?
8
+ end
9
+
10
+ def test_self_active_disabled
11
+ ENV.expects(:include?).with("BOXEN_HOME").returns false
12
+ refute Boxen::Util.active?
13
+ end
14
+
15
+ def test_self_sudo
16
+ Boxen::Util.expects(:system).
17
+ with "sudo", "-p", "Password for sudo: ", "echo", "foo"
18
+
19
+ Boxen::Util.sudo "echo", "foo"
20
+ end
21
+ end
@@ -0,0 +1,10 @@
1
+ # THIS IS SUCH HAX. Faraday helpfully reminds you to install
2
+ # `system_timer` if you're running Ruby 1.8, since Timeout can give
3
+ # unreliable results. We can't do this during first-time runs, since
4
+ # there's no C compiler available.
5
+ #
6
+ # To squash the message and stop confusing people, this shim just
7
+ # exposes Timeout as SystemTimer. I'm a bad person.
8
+
9
+ require "timeout"
10
+ SystemTimer = Timeout
metadata ADDED
@@ -0,0 +1,211 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: boxen
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - John Barnette
9
+ - Will Farrington
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-10-03 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: ansi
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: '1.4'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: '1.4'
31
+ - !ruby/object:Gem::Dependency
32
+ name: highline
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: '1.6'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: '1.6'
47
+ - !ruby/object:Gem::Dependency
48
+ name: json_pure
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.7'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: '1.7'
63
+ - !ruby/object:Gem::Dependency
64
+ name: octokit
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ version: '1.15'
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: '1.15'
79
+ - !ruby/object:Gem::Dependency
80
+ name: puppet
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: '3.0'
87
+ type: :runtime
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: '3.0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: minitest
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - '='
101
+ - !ruby/object:Gem::Version
102
+ version: 3.5.0
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - '='
109
+ - !ruby/object:Gem::Version
110
+ version: 3.5.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: mocha
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ~>
117
+ - !ruby/object:Gem::Version
118
+ version: '0.12'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ~>
125
+ - !ruby/object:Gem::Version
126
+ version: '0.12'
127
+ description: Manage Mac development boxes with love (and Puppet).
128
+ email:
129
+ - jbarnette@github.com
130
+ - wfarr@github.com
131
+ executables: []
132
+ extensions: []
133
+ extra_rdoc_files: []
134
+ files:
135
+ - .gitignore
136
+ - Gemfile
137
+ - Gemfile.lock
138
+ - LICENSE
139
+ - README.md
140
+ - boxen.gemspec
141
+ - lib/boxen/check.rb
142
+ - lib/boxen/cli.rb
143
+ - lib/boxen/config.rb
144
+ - lib/boxen/error.rb
145
+ - lib/boxen/flags.rb
146
+ - lib/boxen/postflight.rb
147
+ - lib/boxen/postflight/active.rb
148
+ - lib/boxen/postflight/env.rb
149
+ - lib/boxen/preflight.rb
150
+ - lib/boxen/preflight/creds.rb
151
+ - lib/boxen/preflight/etc_my_cnf.rb
152
+ - lib/boxen/preflight/homebrew.rb
153
+ - lib/boxen/preflight/identity.rb
154
+ - lib/boxen/preflight/os.rb
155
+ - lib/boxen/preflight/rbenv.rb
156
+ - lib/boxen/project.rb
157
+ - lib/boxen/puppeteer.rb
158
+ - lib/boxen/util.rb
159
+ - script/bootstrap
160
+ - script/tests
161
+ - test/boxen/test.rb
162
+ - test/boxen_check_test.rb
163
+ - test/boxen_cli_test.rb
164
+ - test/boxen_config_test.rb
165
+ - test/boxen_flags_test.rb
166
+ - test/boxen_postflight_active_test.rb
167
+ - test/boxen_postflight_env_test.rb
168
+ - test/boxen_project_test.rb
169
+ - test/boxen_puppeteer_test.rb
170
+ - test/boxen_util_test.rb
171
+ - test/fixtures/repo/modules/projects/manifests/first-project.pp
172
+ - test/fixtures/repo/modules/projects/manifests/second-project.pp
173
+ - test/system_timer.rb
174
+ homepage: https://github.com/boxen/boxen
175
+ licenses: []
176
+ post_install_message:
177
+ rdoc_options: []
178
+ require_paths:
179
+ - lib
180
+ required_ruby_version: !ruby/object:Gem::Requirement
181
+ none: false
182
+ requirements:
183
+ - - ! '>='
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ required_rubygems_version: !ruby/object:Gem::Requirement
187
+ none: false
188
+ requirements:
189
+ - - ! '>='
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
192
+ requirements: []
193
+ rubyforge_project:
194
+ rubygems_version: 1.8.23
195
+ signing_key:
196
+ specification_version: 3
197
+ summary: You know, for laptops and stuff.
198
+ test_files:
199
+ - test/boxen/test.rb
200
+ - test/boxen_check_test.rb
201
+ - test/boxen_cli_test.rb
202
+ - test/boxen_config_test.rb
203
+ - test/boxen_flags_test.rb
204
+ - test/boxen_postflight_active_test.rb
205
+ - test/boxen_postflight_env_test.rb
206
+ - test/boxen_project_test.rb
207
+ - test/boxen_puppeteer_test.rb
208
+ - test/boxen_util_test.rb
209
+ - test/fixtures/repo/modules/projects/manifests/first-project.pp
210
+ - test/fixtures/repo/modules/projects/manifests/second-project.pp
211
+ - test/system_timer.rb