pact-support 0.3.1 → 0.4.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/RELEASING.md +14 -0
- data/lib/pact/consumer_contract/pact_file.rb +15 -2
- data/lib/pact/support/version.rb +1 -1
- data/spec/lib/pact/consumer_contract/pact_file_spec.rb +47 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9d55f72d24799e4cfe2fd71d535eaf37eb70c74
|
4
|
+
data.tar.gz: e6c16b4858bd228d4a0d32b43bd11ac14b53bc6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 70a1d305f8a0655db237cbf488118f47285f5bcd08e493b597620faf6f2cad99a2a9de0f9a71f89d9fca25422564c3b69743685cfc45df9d11206e3e9925e5e0
|
7
|
+
data.tar.gz: 121e1252a85b993bc22c7becb00b79430754e7e329459f4ec7c5141092b2a04e3587ec98b22c0d1bd8f4c2c027a25cb1cbc282fc2600de40033ebe4dfbd43cdc
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,11 @@ Do this to generate your change history
|
|
2
2
|
|
3
3
|
git log --pretty=format:' * %h - %s (%an, %ad)'
|
4
4
|
|
5
|
+
### 0.4.0 (20 March 2015)
|
6
|
+
|
7
|
+
* 409bde5 - support url including basic authentication info, e.g.: http://username:password@packtbroker.com (lifei zhou, Wed Mar 18 21:49:29 2015 +1100)
|
8
|
+
* d0d42bb - added http basic authentication options when open uri (lifei zhou, Thu Feb 26 22:03:21 2015 +1100)
|
9
|
+
|
5
10
|
### 0.3.1 (24 Februrary 2015)
|
6
11
|
|
7
12
|
* e3d6d6d - Fixed bug when Content-Type is a Pact::Term. (Beth Skurrie, Tue Feb 24 17:25:10 2015 +1100)
|
data/RELEASING.md
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# Releasing
|
2
|
+
|
3
|
+
1. Increment the version in `lib/pact/support/version.rb`
|
4
|
+
2. Update the `CHANGELOG.md` using:
|
5
|
+
|
6
|
+
$ git log --pretty=format:' * %h - %s (%an, %ad)'
|
7
|
+
|
8
|
+
3. Add files to git
|
9
|
+
|
10
|
+
$ git add CHANGELOG.md lib/pact/support/version.rb
|
11
|
+
|
12
|
+
3. Release:
|
13
|
+
|
14
|
+
$ bundle exec rake release
|
@@ -5,9 +5,10 @@ module Pact
|
|
5
5
|
extend self
|
6
6
|
|
7
7
|
def read uri, options = {}
|
8
|
-
|
8
|
+
uri_string = uri.to_s
|
9
|
+
pact = render_pact(uri_string, options)
|
9
10
|
if options[:save_pactfile_to_tmp]
|
10
|
-
save_pactfile_to_tmp pact, ::File.basename(
|
11
|
+
save_pactfile_to_tmp pact, ::File.basename(uri_string)
|
11
12
|
end
|
12
13
|
pact
|
13
14
|
rescue StandardError => e
|
@@ -20,5 +21,17 @@ module Pact
|
|
20
21
|
::FileUtils.mkdir_p Pact.configuration.tmp_dir
|
21
22
|
::File.open(Pact.configuration.tmp_dir + "/#{name}", "w") { |file| file << pact}
|
22
23
|
end
|
24
|
+
|
25
|
+
def render_pact uri_string, options
|
26
|
+
uri_obj = URI(uri_string)
|
27
|
+
uri_user_info = uri_obj.userinfo
|
28
|
+
if(uri_user_info)
|
29
|
+
options[:username] = uri_obj.user unless options[:username]
|
30
|
+
options[:password] = uri_obj.password unless options[:password]
|
31
|
+
uri_string = uri_string.sub("#{uri_user_info}@", '')
|
32
|
+
end
|
33
|
+
open_options = options[:username] ? {http_basic_authentication:[options[:username],options[:password]]} : {}
|
34
|
+
open(uri_string, open_options) { | file | file.read }
|
35
|
+
end
|
23
36
|
end
|
24
37
|
end
|
data/lib/pact/support/version.rb
CHANGED
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'pact/consumer_contract/pact_file'
|
3
|
+
|
4
|
+
module Pact
|
5
|
+
describe PactFile do
|
6
|
+
describe 'render_pact' do
|
7
|
+
let(:uri_without_userinfo) { 'http://pactbroker.com'}
|
8
|
+
let(:pact_content) { 'api contract'}
|
9
|
+
context 'without basic authentication' do
|
10
|
+
it 'should open uri to get pact file content' do
|
11
|
+
expect(PactFile).to receive(:open).with(uri_without_userinfo, {}).and_return(pact_content)
|
12
|
+
expect(PactFile.render_pact(uri_without_userinfo, {})).to eq(pact_content)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context 'basic authentication' do
|
17
|
+
let(:username) { 'brokeruser'}
|
18
|
+
let(:password) { 'brokerpassword'}
|
19
|
+
let(:options) do
|
20
|
+
{ username: username, password: password }
|
21
|
+
end
|
22
|
+
context 'when userinfo is specified in the option' do
|
23
|
+
it 'should open uri to get pact file content with userinfo in the options' do
|
24
|
+
expect(PactFile).to receive(:open).with(uri_without_userinfo, {http_basic_authentication:[username, password]})
|
25
|
+
.and_return(pact_content)
|
26
|
+
expect(PactFile.render_pact(uri_without_userinfo, options)).to eq(pact_content)
|
27
|
+
end
|
28
|
+
let(:uri_with_userinfo) { 'http://dummyuser:dummyps@pactbroker.com'}
|
29
|
+
it 'should use userinfo in options which overwrites userinfo in url' do
|
30
|
+
expect(PactFile).to receive(:open).with(uri_without_userinfo, {http_basic_authentication:[username, password]})
|
31
|
+
.and_return(pact_content)
|
32
|
+
expect(PactFile.render_pact(uri_with_userinfo, options)).to eq(pact_content)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'when user info is specified in url' do
|
37
|
+
let(:uri_with_userinfo) { "http://#{username}:#{password}@pactbroker.com"}
|
38
|
+
it 'should open uri to get pact file content with userinfo in the uri' do
|
39
|
+
expect(PactFile).to receive(:open).with(uri_without_userinfo, {http_basic_authentication:[username, password]})
|
40
|
+
.and_return(pact_content)
|
41
|
+
expect(PactFile.render_pact(uri_with_userinfo, {})).to eq(pact_content)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pact-support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Fraser
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2015-
|
15
|
+
date: 2015-03-20 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: randexp
|
@@ -228,6 +228,7 @@ files:
|
|
228
228
|
- Gemfile
|
229
229
|
- LICENSE.txt
|
230
230
|
- README.md
|
231
|
+
- RELEASING.md
|
231
232
|
- Rakefile
|
232
233
|
- lib/pact/configuration.rb
|
233
234
|
- lib/pact/consumer/request.rb
|
@@ -291,6 +292,7 @@ files:
|
|
291
292
|
- spec/lib/pact/consumer_contract/consumer_contract_spec.rb
|
292
293
|
- spec/lib/pact/consumer_contract/headers_spec.rb
|
293
294
|
- spec/lib/pact/consumer_contract/interaction_spec.rb
|
295
|
+
- spec/lib/pact/consumer_contract/pact_file_spec.rb
|
294
296
|
- spec/lib/pact/consumer_contract/query_hash_spec.rb
|
295
297
|
- spec/lib/pact/consumer_contract/query_string_spec.rb
|
296
298
|
- spec/lib/pact/consumer_contract/request_spec.rb
|
@@ -374,6 +376,7 @@ test_files:
|
|
374
376
|
- spec/lib/pact/consumer_contract/consumer_contract_spec.rb
|
375
377
|
- spec/lib/pact/consumer_contract/headers_spec.rb
|
376
378
|
- spec/lib/pact/consumer_contract/interaction_spec.rb
|
379
|
+
- spec/lib/pact/consumer_contract/pact_file_spec.rb
|
377
380
|
- spec/lib/pact/consumer_contract/query_hash_spec.rb
|
378
381
|
- spec/lib/pact/consumer_contract/query_string_spec.rb
|
379
382
|
- spec/lib/pact/consumer_contract/request_spec.rb
|