puppet-forge-server 1.4.2 → 1.4.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6279979716a9261c09909f80bd59649b5b04def2
4
- data.tar.gz: 8da95e7e628926a35427ca5839c75ba7a63bea2b
3
+ metadata.gz: a52acbf7c0c982ac11d22101fad03ebfc4b013e2
4
+ data.tar.gz: 3893b0a073c6122880c9488dcbf1f24a056c43bd
5
5
  SHA512:
6
- metadata.gz: 3223227aa9392bb6ceb29195c90c9724cf2e27803cd0cb67e669c04c787fd323f556d1f52bb860be6050aefbcc18cc58de1e0ec7078a01b7cfb130efb27b858c
7
- data.tar.gz: 86efd6a5dfdb66720097eca9b662b07c6be609d464acd564abcf56d942d7266cd179156c4a1b4ece36cd1ced0fe23587d382f5d8ebb7a71b41666f722ebd4e3a
6
+ metadata.gz: 4603163ac0d1c51a41beaa6f6b3c118b2c90c80590af9afb10a57f831d8a27aabb548673a2c479aaba34c3a312539f46e4c534f9b14acce4ab0ed89f50db6a1c
7
+ data.tar.gz: 59725a047ab27ff5dfea353fb0d3801d336cb47034f66a9d165ef623e686513520982080afa25d32c2aea2ab22c758d8a3c0645a9be572d9f30271adc8269cb8
@@ -44,7 +44,9 @@ module PuppetForgeServer::Backends
44
44
  end
45
45
 
46
46
  def upload(file_data)
47
- File.open(File.join(@module_dir, file_data[:filename]), 'w') do |f|
47
+ filename = File.join(@module_dir, file_data[:filename])
48
+ return false if File.exist?(filename)
49
+ File.open(filename, 'w') do |f|
48
50
  f.write(file_data[:tempfile].read)
49
51
  end
50
52
  true
@@ -38,6 +38,8 @@ module PuppetForgeServer
38
38
  method_name = case method_name
39
39
  when :write, :puts
40
40
  '<<'
41
+ when :flush
42
+ ''
41
43
  else
42
44
  method_name
43
45
  end
@@ -45,7 +47,11 @@ module PuppetForgeServer
45
47
  end
46
48
 
47
49
  def respond_to?(method_name, include_private = false)
48
- @loggers.each { |logger| return false unless (logger.respond_to?(method_name) || %w(write puts).include?(method_name.to_s)) }
50
+ @loggers.each { |logger| return false unless (logger.respond_to?(method_name) || %w(write puts flush).include?(method_name.to_s)) }
51
+ end
52
+
53
+ def flush
54
+ # ignore
49
55
  end
50
56
 
51
57
  class << self
@@ -15,5 +15,5 @@
15
15
  # limitations under the License.
16
16
 
17
17
  module PuppetForgeServer
18
- VERSION = '1.4.2'
18
+ VERSION = '1.4.3'
19
19
  end
@@ -0,0 +1,43 @@
1
+ # -*- encoding: utf-8 -*-
2
+ #
3
+ # Copyright 2015 North Development AB
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
+ require 'spec_helper'
18
+
19
+ module PuppetForgeServer::App
20
+ describe Version2 do
21
+ let(:directory) { double() }
22
+ let(:app) { PuppetForgeServer::App::Version2.new([directory]) }
23
+ let(:file_name_true) { 'bogus_file_true' }
24
+ let(:file_name_false) { 'bogus_file_false' }
25
+
26
+ before(:each) do
27
+ allow(directory).to receive(:upload).with(file_name_true) { true }
28
+ allow(directory).to receive(:upload).with(file_name_false) { false }
29
+ end
30
+
31
+ describe '#post /v2/releases' do
32
+ it 'file upload should succeed' do
33
+ post '/v2/releases', params={ :file => file_name_true }
34
+ expect(last_response).to be_ok
35
+ end
36
+
37
+ it 'file upload should fail' do
38
+ post '/v2/releases', params={ :file => file_name_false }
39
+ expect(last_response.status).to eq(412)
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,64 @@
1
+ # -*- encoding: utf-8 -*-
2
+ #
3
+ # Copyright 2015 North Development AB
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
+ require 'spec_helper'
18
+
19
+ module PuppetForgeServer::Backends
20
+ describe Directory do
21
+ let(:url) { 'bogus_url' }
22
+ let(:name) { 'bogus_name' }
23
+ let(:author) { 'bogus_author' }
24
+ let(:version) { 'bogus_version' }
25
+ let(:directory) { PuppetForgeServer::Backends::Directory.new(url) }
26
+ let(:file_metadata) { { :metadata => nil, :checksum => nil, :path => nil} }
27
+ let(:file_data) { { :filename => 'bogus_filename' } }
28
+
29
+ before(:each) do
30
+ allow(directory).to receive(:get_file_metadata).with("*#{name}*.tar.gz", {}) { file_metadata }
31
+ allow(directory).to receive(:get_file_metadata).with("#{author}-#{name}-*.tar.gz", {}) { file_metadata }
32
+ allow(directory).to receive(:get_file_metadata).with("#{author}-#{name}-#{version}.tar.gz", {:version => version}) { file_metadata }
33
+ allow(File).to receive(:open).with("#{url}/#{file_data[:filename]}", 'w')
34
+ end
35
+
36
+ describe '#query_metadata' do
37
+ it 'query metadata should return file metadata array' do
38
+ expect(directory.query_metadata(name)).to eq(file_metadata)
39
+ end
40
+ end
41
+
42
+ describe '#get_metadata' do
43
+ it 'get_metadata without version should return file metadata array' do
44
+ expect(directory.get_metadata(author, name)).to eq(file_metadata)
45
+ end
46
+
47
+ it 'get_metadata with version should return file metadata array' do
48
+ expect(directory.get_metadata(author, name, {:version => version})).to eq(file_metadata)
49
+ end
50
+ end
51
+
52
+ describe '#upload' do
53
+ it 'upload when file does not exist should return true' do
54
+ allow(File).to receive(:exist?).with("#{url}/#{file_data[:filename]}") { false }
55
+ expect(directory.upload(file_data)).to be
56
+ end
57
+
58
+ it 'upload when file exists should return false' do
59
+ allow(File).to receive(:exist?).with("#{url}/#{file_data[:filename]}") { true }
60
+ expect(directory.upload(file_data)).not_to be
61
+ end
62
+ end
63
+ end
64
+ end
@@ -70,6 +70,12 @@ module PuppetForgeServer
70
70
  end
71
71
  end
72
72
 
73
+ describe '#flush' do
74
+ it 'should respond to flush' do
75
+ expect(logger).to respond_to('flush')
76
+ end
77
+ end
78
+
73
79
  describe '#non_existing' do
74
80
  it 'should fail on non existing method' do
75
81
  expect { logger.non_existing }.to raise_error(NoMethodError)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-forge-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
4
+ version: 1.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ilja Bobkevic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-17 00:00:00.000000000 Z
11
+ date: 2015-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra
@@ -199,6 +199,8 @@ files:
199
199
  - lib/puppet_forge_server/version.rb
200
200
  - puppet-forge-server.gemspec
201
201
  - spec/spec_helper.rb
202
+ - spec/unit/app/version2_spec.rb
203
+ - spec/unit/backends/directory_spec.rb
202
204
  - spec/unit/logger_spec.rb
203
205
  - spec/unit/models/metadata_spec.rb
204
206
  - spec/unit/server_spec.rb
@@ -228,6 +230,8 @@ specification_version: 4
228
230
  summary: Private Puppet forge server
229
231
  test_files:
230
232
  - spec/spec_helper.rb
233
+ - spec/unit/app/version2_spec.rb
234
+ - spec/unit/backends/directory_spec.rb
231
235
  - spec/unit/logger_spec.rb
232
236
  - spec/unit/models/metadata_spec.rb
233
237
  - spec/unit/server_spec.rb