pact 1.42.3 → 1.43.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 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