pact 1.42.3 → 1.43.0

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
- SHA256:
3
- metadata.gz: 5246cb251aaa720174fe319b2b7d0f0b9d73bedefb122549704f47db4340541c
4
- data.tar.gz: e67c6ce61ec87143e7241bee0c1e5238d297dce10ad7b8659601c39d496014c1
2
+ SHA1:
3
+ metadata.gz: b644026c464080ef14a4a202bbfe8106f5ece05a
4
+ data.tar.gz: b0fa73324f51d53bf0d51e1ec5adc1974fc20816
5
5
  SHA512:
6
- metadata.gz: '082aafe21839f9a13a49ef86b2782582bdde8cca49ed6486125191950627c7d14e08c48c84e9e3e56ee499eb3535b9c9eab9fdb815a52256fa05aff3f2db7afa'
7
- data.tar.gz: acacef55a6d67049dad4bcf3a8d30e200f4187ef08ff8cee0a52e74677fc603561a09afe6c4afbac7578cf223e3a4a81619df96b7e7062cec6b35e7554cc395b
6
+ metadata.gz: 8ff57177c9bebdfa42fa14ff4a158f1a44c5eb52602c33b9d606065573fe0461649c271001676405cf09bd4da5e6e0b5a73845e797386a3199fd162a17edef13
7
+ data.tar.gz: c98d162e93e3c21d32eae05ec850bf2d6c42af63afb400ffa04d2813b2ce8364a91dfe0b6d06f713637d31e5913f62235d2e4dbbbfe1846ac4f2d099fd809d11
@@ -1,3 +1,13 @@
1
+ <a name="v1.43.0"></a>
2
+ ### v1.43.0 (2020-01-11)
3
+
4
+
5
+ #### Features
6
+
7
+ * **verify**
8
+ * allow includePendingStatus to be specified when fetching pacts ([1f5fc9c](/../../commit/1f5fc9c))
9
+
10
+
1
11
  <a name="v1.42.3"></a>
2
12
  ### v1.42.3 (2019-11-15)
3
13
 
@@ -6,6 +6,15 @@ module Pact
6
6
  class Link
7
7
  attr_reader :request_method, :href
8
8
 
9
+ DEFAULT_GET_HEADERS = {
10
+ "Accept" => "application/hal+json"
11
+ }.freeze
12
+
13
+ DEFAULT_POST_HEADERS = {
14
+ "Accept" => "application/hal+json",
15
+ "Content-Type" => "application/json"
16
+ }.freeze
17
+
9
18
  def initialize(attrs, http_client)
10
19
  @attrs = attrs
11
20
  @request_method = attrs.fetch(:method, :get).to_sym
@@ -37,7 +46,7 @@ module Pact
37
46
  end
38
47
 
39
48
  def get(payload = {}, headers = {})
40
- wrap_response(href, @http_client.get(href, payload, headers))
49
+ wrap_response(href, @http_client.get(href, payload, DEFAULT_GET_HEADERS.merge(headers)))
41
50
  end
42
51
 
43
52
  def get!(*args)
@@ -45,11 +54,15 @@ module Pact
45
54
  end
46
55
 
47
56
  def put(payload = nil, headers = {})
48
- wrap_response(href, @http_client.put(href, payload ? payload.to_json : nil, headers))
57
+ wrap_response(href, @http_client.put(href, payload ? payload.to_json : nil, DEFAULT_POST_HEADERS.merge(headers)))
49
58
  end
50
59
 
51
60
  def post(payload = nil, headers = {})
52
- wrap_response(href, @http_client.post(href, payload ? payload.to_json : nil, headers))
61
+ wrap_response(href, @http_client.post(href, payload ? payload.to_json : nil, DEFAULT_POST_HEADERS.merge(headers)))
62
+ end
63
+
64
+ def post!(payload = nil, headers = {})
65
+ post(payload, headers).assert_success!
53
66
  end
54
67
 
55
68
  def expand(params)
@@ -7,7 +7,7 @@ require 'pact/pact_broker/fetch_pacts'
7
7
  module Pact
8
8
  module PactBroker
9
9
  class FetchPactURIsForVerification
10
- attr_reader :provider, :consumer_version_selectors, :provider_version_tags, :broker_base_url, :http_client_options, :http_client
10
+ attr_reader :provider, :consumer_version_selectors, :provider_version_tags, :broker_base_url, :http_client_options, :http_client, :options
11
11
 
12
12
  PACTS_FOR_VERIFICATION_RELATION = 'beta:provider-pacts-for-verification'.freeze
13
13
  PACTS = 'pacts'.freeze
@@ -16,17 +16,18 @@ module Pact
16
16
  SELF = 'self'.freeze
17
17
  EMBEDDED = '_embedded'.freeze
18
18
 
19
- def initialize(provider, consumer_version_selectors, provider_version_tags, broker_base_url, http_client_options)
19
+ def initialize(provider, consumer_version_selectors, provider_version_tags, broker_base_url, http_client_options, options = {})
20
20
  @provider = provider
21
21
  @consumer_version_selectors = consumer_version_selectors || []
22
22
  @provider_version_tags = provider_version_tags || []
23
23
  @http_client_options = http_client_options
24
24
  @broker_base_url = broker_base_url
25
25
  @http_client = Pact::Hal::HttpClient.new(http_client_options)
26
+ @options = options
26
27
  end
27
28
 
28
- def self.call(provider, consumer_version_selectors, provider_version_tags, broker_base_url, http_client_options)
29
- new(provider, consumer_version_selectors, provider_version_tags, broker_base_url, http_client_options).call
29
+ def self.call(provider, consumer_version_selectors, provider_version_tags, broker_base_url, http_client_options, options = {})
30
+ new(provider, consumer_version_selectors, provider_version_tags, broker_base_url, http_client_options, options).call
30
31
  end
31
32
 
32
33
  def call
@@ -50,8 +51,7 @@ module Pact
50
51
  pacts_for_verification_entity.response.body[EMBEDDED][PACTS].collect do | pact |
51
52
  metadata = {
52
53
  pending: pact["verificationProperties"]["pending"],
53
- pending_reason: pact["verificationProperties"]["pendingReason"],
54
- inclusion_reason: pact["verificationProperties"]["inclusionReason"],
54
+ notices: extract_notices(pact)
55
55
  }
56
56
  Pact::Provider::PactURI.new(pact[LINKS][SELF][HREF], http_client_options, metadata)
57
57
  end
@@ -61,22 +61,21 @@ module Pact
61
61
  index
62
62
  ._link(PACTS_FOR_VERIFICATION_RELATION)
63
63
  .expand(provider: provider)
64
- .with_query(query)
65
- .get!
64
+ .post!(query)
66
65
  end
67
66
 
68
67
  def query
69
68
  q = {}
70
- if consumer_version_selectors.any?
71
- q["consumer_version_selectors"] = consumer_version_selectors
72
- end
73
-
74
- if provider_version_tags.any?
75
- q["provider_version_tags"] = provider_version_tags
76
- end
69
+ q["includePendingStatus"] = true if options[:include_pending_status]
70
+ q["consumerVersionSelectors"] = consumer_version_selectors if consumer_version_selectors.any?
71
+ q["providerVersionTags"] = provider_version_tags if provider_version_tags.any?
77
72
  q
78
73
  end
79
74
 
75
+ def extract_notices(pact)
76
+ (pact["verificationProperties"]["notices"] || []).collect{ |notice| notice["text"] }.compact
77
+ end
78
+
80
79
  def log_message
81
80
  latest = consumer_version_selectors.any? ? "" : "latest "
82
81
  message = "INFO: Fetching #{latest}pacts for #{provider} from #{broker_base_url}"
@@ -1,4 +1,4 @@
1
1
  # Remember to bump pact-provider-proxy when this changes major version
2
2
  module Pact
3
- VERSION = "1.42.3"
3
+ VERSION = "1.43.0"
4
4
  end
@@ -1,5 +1,4 @@
1
- # -*- encoding: utf-8 -*-
2
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path("lib", __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'pact/version'
5
4
 
@@ -15,21 +14,21 @@ Gem::Specification.new do |gem|
15
14
  gem.required_ruby_version = '>= 2.0'
16
15
 
17
16
  gem.files = `git ls-files bin lib pact.gemspec CHANGELOG.md LICENSE.txt`.split($/)
18
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
+ gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
19
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
20
19
  gem.require_paths = ["lib"]
21
20
  gem.license = 'MIT'
22
21
 
23
22
  gem.metadata = {
23
+ 'changelog_uri' => 'https://github.com/pact-foundation/pact-ruby/blob/master/CHANGELOG.md',
24
24
  'source_code_uri' => 'https://github.com/pact-foundation/pact-ruby',
25
25
  'bug_tracker_uri' => 'https://github.com/pact-foundation/pact-ruby/issues',
26
26
  'documentation_uri' => 'https://github.com/pact-foundation/pact-ruby/blob/master/README.md'
27
27
  }
28
28
 
29
- gem.add_runtime_dependency 'rspec', '>=2.14'
29
+ gem.add_runtime_dependency 'rspec', '>= 2.14'
30
30
  gem.add_runtime_dependency 'rack-test', '>= 0.6.3', '< 2.0.0'
31
31
  gem.add_runtime_dependency 'thor'
32
- gem.add_runtime_dependency 'json','> 1.8.5'
33
32
  gem.add_runtime_dependency 'webrick'
34
33
  gem.add_runtime_dependency 'term-ansicolor', '~> 1.0'
35
34
 
@@ -38,7 +37,7 @@ Gem::Specification.new do |gem|
38
37
 
39
38
  gem.add_development_dependency 'rake', '~> 10.0.3'
40
39
  gem.add_development_dependency 'webmock', '~> 3.0'
41
- #gem.add_development_dependency 'pry-byebug'
40
+ gem.add_development_dependency 'pry-byebug'
42
41
  gem.add_development_dependency 'fakefs', '0.5' # 0.6.0 blows up
43
42
  gem.add_development_dependency 'hashie', '~> 2.0'
44
43
  gem.add_development_dependency 'activesupport'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pact
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.42.3
4
+ version: 1.43.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: 2019-11-15 00:00:00.000000000 Z
15
+ date: 2020-01-11 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rspec
@@ -62,20 +62,6 @@ dependencies:
62
62
  - - ">="
63
63
  - !ruby/object:Gem::Version
64
64
  version: '0'
65
- - !ruby/object:Gem::Dependency
66
- name: json
67
- requirement: !ruby/object:Gem::Requirement
68
- requirements:
69
- - - ">"
70
- - !ruby/object:Gem::Version
71
- version: 1.8.5
72
- type: :runtime
73
- prerelease: false
74
- version_requirements: !ruby/object:Gem::Requirement
75
- requirements:
76
- - - ">"
77
- - !ruby/object:Gem::Version
78
- version: 1.8.5
79
65
  - !ruby/object:Gem::Dependency
80
66
  name: webrick
81
67
  requirement: !ruby/object:Gem::Requirement
@@ -160,6 +146,20 @@ dependencies:
160
146
  - - "~>"
161
147
  - !ruby/object:Gem::Version
162
148
  version: '3.0'
149
+ - !ruby/object:Gem::Dependency
150
+ name: pry-byebug
151
+ requirement: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
+ type: :development
157
+ prerelease: false
158
+ version_requirements: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
163
  - !ruby/object:Gem::Dependency
164
164
  name: fakefs
165
165
  requirement: !ruby/object:Gem::Requirement
@@ -367,6 +367,7 @@ homepage: https://github.com/pact-foundation/pact-ruby
367
367
  licenses:
368
368
  - MIT
369
369
  metadata:
370
+ changelog_uri: https://github.com/pact-foundation/pact-ruby/blob/master/CHANGELOG.md
370
371
  source_code_uri: https://github.com/pact-foundation/pact-ruby
371
372
  bug_tracker_uri: https://github.com/pact-foundation/pact-ruby/issues
372
373
  documentation_uri: https://github.com/pact-foundation/pact-ruby/blob/master/README.md
@@ -386,7 +387,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
386
387
  version: '0'
387
388
  requirements: []
388
389
  rubyforge_project:
389
- rubygems_version: 2.7.6
390
+ rubygems_version: 2.6.14.3
390
391
  signing_key:
391
392
  specification_version: 4
392
393
  summary: Enables consumer driven contract testing, providing a mock service and DSL