puppet-library 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/spec/spec_helper.rb CHANGED
@@ -19,3 +19,5 @@ require 'simplecov'
19
19
  require 'puppet_library'
20
20
  require 'module_spec_helper'
21
21
  require 'pry'
22
+ require 'rack'
23
+ require 'tempfile'
@@ -0,0 +1,111 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # Puppet Library
3
+ # Copyright (C) 2014 drrb
4
+ #
5
+ # This program is free software: you can redistribute it and/or modify
6
+ # it under the terms of the GNU General Public License as published by
7
+ # the Free Software Foundation, either version 3 of the License, or
8
+ # (at your option) any later version.
9
+ #
10
+ # This program is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ # GNU General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU General Public License
16
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+
18
+ require 'spec_helper'
19
+
20
+ module PuppetLibrary
21
+ describe "librarian-puppet integration test" do
22
+ include ModuleSpecHelper
23
+ include FileUtils
24
+
25
+ let(:module_dir) { Tempfile.new("module_dir").path }
26
+ let(:project_dir) { Tempfile.new("project_dir").path }
27
+ let(:start_dir) { pwd }
28
+ let(:disk_repo) { ModuleRepo::Directory.new(module_dir) }
29
+ let(:disk_server) do
30
+ Server.set_up do |server|
31
+ server.module_repo disk_repo
32
+ end
33
+ end
34
+ let(:disk_rack_server) do
35
+ Rack::Server.new(
36
+ :app => disk_server,
37
+ :Host => "localhost",
38
+ :Port => 9000,
39
+ :server => "webrick"
40
+ )
41
+ end
42
+ let(:disk_server_runner) do
43
+ Thread.new do
44
+ disk_rack_server.start
45
+ end
46
+ end
47
+ let(:proxy_repo) { ModuleRepo::Proxy.new("http://localhost:9000") }
48
+ let(:proxy_server) do
49
+ Server.set_up do |server|
50
+ server.module_repo proxy_repo
51
+ end
52
+ end
53
+ let(:proxy_rack_server) do
54
+ Rack::Server.new(
55
+ :app => proxy_server,
56
+ :Host => "localhost",
57
+ :Port => 9001,
58
+ :server => "webrick"
59
+ )
60
+ end
61
+ let(:proxy_server_runner) do
62
+ Thread.new do
63
+ proxy_rack_server.start
64
+ end
65
+ end
66
+
67
+ before do
68
+ rm_rf module_dir
69
+ rm_rf project_dir
70
+ mkdir_p module_dir
71
+ mkdir_p project_dir
72
+ disk_server_runner
73
+ proxy_server_runner
74
+ sleep(2) # Wait for the servers to start
75
+ start_dir
76
+ cd project_dir
77
+ end
78
+
79
+ after do
80
+ rm_rf module_dir
81
+ rm_rf project_dir
82
+ cd start_dir
83
+ end
84
+
85
+ def write_puppetfile(content)
86
+ File.open("#{project_dir}/Puppetfile", "w") do |puppetfile|
87
+ puppetfile.puts content
88
+ end
89
+ end
90
+
91
+ it "downloads the modules" do
92
+ add_module("puppetlabs", "apache", "1.0.0") do |metadata|
93
+ metadata["dependencies"] << { "name" => "puppetlabs/concat", "version_requirement" => ">= 2.0.0" }
94
+ metadata["dependencies"] << { "name" => "puppetlabs/stdlib", "version_requirement" => "~> 3.0.0" }
95
+ end
96
+ add_module("puppetlabs", "concat", "2.0.0")
97
+ add_module("puppetlabs", "stdlib", "3.0.0")
98
+
99
+ write_puppetfile <<-EOF
100
+ forge 'http://localhost:9001'
101
+ mod 'puppetlabs/apache'
102
+ EOF
103
+
104
+ system "librarian-puppet install" or fail "call to puppet-library failed"
105
+ expect(File.directory? "modules").to be true
106
+ expect(File.directory? "modules/apache").to be true
107
+ expect(File.directory? "modules/concat").to be true
108
+ expect(File.directory? "modules/stdlib").to be true
109
+ end
110
+ end
111
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-library
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - drrb
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-11 00:00:00.000000000 Z
11
+ date: 2014-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: librarian-puppet
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: mime-types
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +108,20 @@ dependencies:
94
108
  - - '>='
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: puppet
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: rack-test
99
127
  requirement: !ruby/object:Gem::Requirement
@@ -170,21 +198,32 @@ files:
170
198
  - bin/puppet-library
171
199
  - config.ru
172
200
  - lib/puppet_library.rb
201
+ - lib/puppet_library/forge.rb
202
+ - lib/puppet_library/http/cache.rb
203
+ - lib/puppet_library/http/http_client.rb
204
+ - lib/puppet_library/http/url.rb
173
205
  - lib/puppet_library/module_metadata.rb
174
206
  - lib/puppet_library/module_repo/directory.rb
175
207
  - lib/puppet_library/module_repo/multi.rb
208
+ - lib/puppet_library/module_repo/proxy.rb
176
209
  - lib/puppet_library/puppet_library.rb
177
210
  - lib/puppet_library/server.rb
178
211
  - lib/puppet_library/util.rb
179
212
  - lib/puppet_library/version.rb
180
213
  - puppet-library.gemspec
214
+ - spec/forge_spec.rb
215
+ - spec/http/cache_spec.rb
216
+ - spec/http/http_client_spec.rb
217
+ - spec/http/url_spec.rb
181
218
  - spec/module_repo/directory_spec.rb
182
219
  - spec/module_repo/multi_spec.rb
220
+ - spec/module_repo/proxy_spec.rb
183
221
  - spec/module_spec_helper.rb
184
222
  - spec/puppet_library_spec.rb
185
223
  - spec/server_spec.rb
186
224
  - spec/spec_helper.rb
187
225
  - spec/util_spec.rb
226
+ - test/librarian_puppet_integration_test.rb
188
227
  homepage: https://github.com/drrb/puppet-library
189
228
  licenses:
190
229
  - GPL-3
@@ -210,10 +249,16 @@ signing_key:
210
249
  specification_version: 4
211
250
  summary: Puppet Library is a private Puppet module server that's compatible with librarian-puppet.
212
251
  test_files:
252
+ - spec/forge_spec.rb
253
+ - spec/http/cache_spec.rb
254
+ - spec/http/http_client_spec.rb
255
+ - spec/http/url_spec.rb
213
256
  - spec/module_repo/directory_spec.rb
214
257
  - spec/module_repo/multi_spec.rb
258
+ - spec/module_repo/proxy_spec.rb
215
259
  - spec/module_spec_helper.rb
216
260
  - spec/puppet_library_spec.rb
217
261
  - spec/server_spec.rb
218
262
  - spec/spec_helper.rb
219
263
  - spec/util_spec.rb
264
+ - test/librarian_puppet_integration_test.rb