puppet-library 0.0.2 → 0.1.0

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.
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