puppet_forge 2.2.0 → 2.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 97687f6157b82d3048b866e0a0922c2eb4888daf
4
- data.tar.gz: 01c8af2de5a93f1cd35fd8554ad2c87f24f3c3b9
3
+ metadata.gz: 274c0fbddb8599de6d21476810d91eb298e88720
4
+ data.tar.gz: 147c3aadd5fe7c3fc6cc1d2ebca74916049d2925
5
5
  SHA512:
6
- metadata.gz: e14480b678895fad971e15fc5f4a93f3f33840f4a7ebc3b94452aed05e5dfa631a78c793a707892bb38ac857fd6da4894850475eeaff16485146539459e8265b
7
- data.tar.gz: 33d37f9f5073242c3bffa522dd360c3116352025411d08709fbd14ef2d05a544c858a144e56f1d8301034e5d33100c6ab5ebd076e4847624f30dda0f0394d3f9
6
+ metadata.gz: ca092a41b2952ab4a8564e136a3b9562eeba61830863be6c8871baa2fa6a3c6bbae1d4aee56add286f9ff55c0bbe3bb16c4ed7634dbf4e790429edc57cc655ef
7
+ data.tar.gz: 564152499bcfd5b418a3842da2ff8d202194ab3f66997aacb4e0ddef7ab5c787858f7463b60e70ff84363654245e30bfb13924b5edb073e743137cc21da6bdf1
data/CHANGELOG.md CHANGED
@@ -3,11 +3,21 @@
3
3
  Starting with v2.0.0, all notable changes to this project will be documented in this file.
4
4
  This project adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
+ ## v2.2.1 - 2016-05-24
7
+
8
+ ### Changed
9
+
10
+ * Fixed an issue where certain types of connection failures raised a spurious "method missing" error instead of the underlying
11
+ exception.
12
+ * When setting PuppetForge::Connection.proxy, an empty string will now be treated as nil. If no proxy has yet been configured,
13
+ setting to an empty string will have no effect. If a proxy has already been configured, setting to nil will unset the existing
14
+ value.
15
+
6
16
  ## v2.2.0 - 2016-05-10
7
17
 
8
18
  ### Changed
9
19
 
10
- * puppet\_forge's optional dependency on Typhoeus now searches for a gem matching '~> 1.0.1' so it will pick up more recent versions.
20
+ * puppet\_forge's optional dependency on Typhoeus now searches for a gem matching '~> 1.0.1' so it will pick up more recent versions.
11
21
  NOTE: This means if you have a version of Typhoeus installed that is less than 1.0.1, puppet\_forge will no longer use the Typhoeus
12
22
  adapter and will fall back to Ruby's Net::HTTP library.
13
23
 
@@ -43,6 +43,7 @@ module PuppetForge
43
43
  end
44
44
 
45
45
  def self.proxy=(url)
46
+ url = nil if url.respond_to?(:empty?) && url.empty?
46
47
  @proxy = url
47
48
  end
48
49
 
@@ -29,7 +29,7 @@ module PuppetForge
29
29
  rescue Faraday::ResourceNotFound => e
30
30
  raise PuppetForge::ReleaseNotFound, "The module release #{slug} does not exist on #{self.class.conn.url_prefix}.", e.backtrace
31
31
  rescue Faraday::ClientError => e
32
- if e.response[:status] == 403
32
+ if e.response && e.response[:status] == 403
33
33
  raise PuppetForge::ReleaseForbidden.from_response(e.response)
34
34
  else
35
35
  raise e
@@ -1,3 +1,3 @@
1
1
  module PuppetForge
2
- VERSION = '2.2.0' # Library version
2
+ VERSION = '2.2.1' # Library version
3
3
  end
@@ -9,6 +9,33 @@ describe PuppetForge::Connection do
9
9
  PuppetForge::Connection
10
10
  end
11
11
 
12
+ describe 'class methods' do
13
+ subject { described_class }
14
+
15
+ describe '#proxy=' do
16
+ it "sets @proxy to value when passed non-empty string" do
17
+ proxy = "http://proxy.example.com:3128"
18
+
19
+ subject.proxy = proxy
20
+
21
+ expect(subject.instance_variable_get(:@proxy)).to eq proxy
22
+ end
23
+
24
+ it "sets @proxy to nil when passed an empty string" do
25
+ subject.proxy = ''
26
+
27
+ expect(subject.instance_variable_get(:@proxy)).to be_nil
28
+ end
29
+
30
+ it "replaces existing @proxy value with nil when set to empty string" do
31
+ subject.instance_variable_set(:@proxy, 'value')
32
+ subject.proxy = ''
33
+
34
+ expect(subject.instance_variable_get(:@proxy)).to be_nil
35
+ end
36
+ end
37
+ end
38
+
12
39
  describe 'creating a new connection' do
13
40
 
14
41
  let(:faraday_stubs) { Faraday::Adapter::Test::Stubs.new }
@@ -110,6 +110,28 @@ describe PuppetForge::V3::Release do
110
110
  release.download(Pathname.new(tarball))
111
111
  expect(File.exist?(tarball)).to be true
112
112
  end
113
+
114
+ context 'when response is 403' do
115
+ it "raises PuppetForge::ReleaseForbidden" do
116
+ mock_conn = instance_double("PuppetForge::V3::Connection", :url_prefix => PuppetForge.host)
117
+ allow(described_class).to receive(:conn).and_return(mock_conn)
118
+
119
+ expect(mock_conn).to receive(:get).and_raise(Faraday::ClientError.new("403", {:status => 403, :body => ({:message => "Forbidden"}.to_json)}))
120
+
121
+ expect { release.download(Pathname.new(tarball)) }.to raise_error(PuppetForge::ReleaseForbidden)
122
+ end
123
+ end
124
+
125
+ context 'when connection fails' do
126
+ it "re-raises original error" do
127
+ mock_conn = instance_double("PuppetForge::V3::Connection", :url_prefix => PuppetForge.host)
128
+ allow(described_class).to receive(:conn).and_return(mock_conn)
129
+
130
+ expect(mock_conn).to receive(:get).and_raise(Faraday::ConnectionFailed.new("connection failed"))
131
+
132
+ expect { release.download(Pathname.new(tarball)) }.to raise_error(Faraday::ConnectionFailed, /connection failed/)
133
+ end
134
+ end
113
135
  end
114
136
 
115
137
  describe '#metadata' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet_forge
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet Labs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-10 00:00:00.000000000 Z
11
+ date: 2016-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday