pact-provider-verifier 1.1.1 → 1.1.2

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: 1fe859de3341bb504332b88634b34907c208c323
4
- data.tar.gz: bc1ee8f1710026e71fcbaced5e4e790db51bb664
3
+ metadata.gz: b6f803b67f6c2e40c3636186097eb862e53814af
4
+ data.tar.gz: eb081c6bb9e3d2710f63907a3351048793b8260e
5
5
  SHA512:
6
- metadata.gz: 4a25d8ad37bfcd0256213d67c426dc5abfba121cc6bed31b957c6ff97d75867e0bf4a8b9b4d8853f32180c7f8f675fcb1c6351881d33407dc4a1aa99acffd5d8
7
- data.tar.gz: d74adfcb49eb183135fe885dcd63811d65ff7bcae34971c21a220b69b686ed8ced21249572a1bcd159082b3b0f935f8ef96bb4062172d8ead61650a2a3d8f332
6
+ metadata.gz: f185f8a2311076f35701c7da298df0fe1daa75bc22470893e6b80d83b7346551785478af24c478be9ea113bd71a4c71bdc3e9b78b007d763148ef57d8e44e5b3
7
+ data.tar.gz: bdd2c52ee950a99b0aac25a1a0d2301fd450d9b08a4c9bdcd117820ae6e3e6d52de947cb0be04b88366292f2c1d6cffecbdb67300796ce525abd1e093c86be03
data/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@ Do this to generate your change history
2
2
 
3
3
  git log --pretty=format:' * %h - %s (%an, %ad)' vX.Y.Z..HEAD
4
4
 
5
+ ### 1.1.2 (02 June 2017)
6
+ * da958c0 - Only set up state if a provider-states-setup-url is provided. Add tests for SetUpProviderState. (Beth Skurrie, Fri Jun 2 14:31:27 2017 +1000)
7
+ * 36ef2eb - Remove .java, .class, .gitignore and .travis.yml files from package (Beth Skurrie, Fri Jun 2 10:32:55 2017 +1000)
8
+ * 7902674 - Add rake tasks to generate and upload release notes. (Beth Skurrie, Fri Jun 2 10:12:17 2017 +1000)
9
+ * 01e811e - Add integration specs for command (Beth Skurrie, Fri Jun 2 05:51:30 2017 +1000)
10
+
5
11
  ### 1.1.0 (01 June 2017)
6
12
  * 7106832 - chore(docs): update docs for provider states URL (Matt Fellows, Fri May 26 22:45:09 2017 +1000)
7
13
  * 8f787e6 - Add deprecation warning for --provider-states-url (Beth Skurrie, Fri May 26 20:51:48 2017 +1000)
@@ -27,18 +27,11 @@ module Pact
27
27
  "#{@name} #{super.to_s}"
28
28
  end
29
29
 
30
- def get_pact_consumer_name pact_url
31
- json = get_json(pact_url)
32
- json['consumer']['name']
33
- end
34
-
35
30
  def verify_pacts
36
31
  print_deprecation_note
37
32
  pacts = @options.pact_urls.split(',')
38
33
  proxy_pact_helper = File.expand_path(File.join(File.dirname(__FILE__), "pact_helper.rb"))
39
- ENV['provider_states_setup_url'] = @options.provider_states_setup_url
40
- ENV['PACT_BROKER_USERNAME'] = @options.broker_username if @options.broker_username
41
- ENV['PACT_BROKER_PASSWORD'] = @options.broker_password if @options.broker_password
34
+ ENV['PROVIDER_STATES_SETUP_URL'] = @options.provider_states_setup_url
42
35
  ENV['VERBOSE_LOGGING'] = @options.verbose if @options.verbose
43
36
  provider_base_url = @options.provider_base_url
44
37
 
@@ -1,3 +1,5 @@
1
+ require 'faraday'
2
+
1
3
  module Pact
2
4
  module ProviderVerifier
3
5
 
@@ -5,35 +7,63 @@ module Pact
5
7
 
6
8
  class SetUpProviderState
7
9
 
10
+ def initialize provider_state, consumer, options
11
+ @provider_state = provider_state
12
+ @consumer = consumer
13
+ @options = options
14
+ end
15
+
8
16
  def self.call provider_state, consumer, options
9
- if verbose?
10
- puts "Setting up provider state '#{provider_state}' for consumer '#{consumer}' using provider state server at #{provider_states_setup_url}"
11
- end
17
+ new(provider_state, consumer, options).call
18
+ end
12
19
 
13
- conn = Faraday.new(:url => provider_states_setup_url) do |faraday|
14
- if ENV['PACT_BROKER_USERNAME'] && ENV['PACT_BROKER_PASSWORD']
15
- faraday.use Faraday::Request::BasicAuthentication, ENV['PACT_BROKER_USERNAME'], ENV['PACT_BROKER_PASSWORD']
16
- end
17
- faraday.adapter Faraday.default_adapter
20
+ def call
21
+ if provider_states_setup_url.nil?
22
+ warn_if_provider_state_set
23
+ return
18
24
  end
19
- response = conn.post do |req|
25
+
26
+ log_request
27
+ response = post_to_provider_state
28
+ check_for_error response
29
+ end
30
+
31
+ private
32
+
33
+ attr_reader :provider_state, :consumer
34
+
35
+ def post_to_provider_state
36
+ connection = Faraday.new(:url => provider_states_setup_url)
37
+ connection.post do |req|
20
38
  req.headers["Content-Type"] = "application/json"
21
39
  req.body = {consumer: consumer, state: provider_state }.to_json
22
40
  end
41
+ end
42
+
43
+ def provider_states_setup_url
44
+ ENV['PROVIDER_STATES_SETUP_URL']
45
+ end
46
+
47
+ def verbose?
48
+ ENV['VERBOSE_LOGGING']
49
+ end
23
50
 
24
- # Not sure about this?
51
+ def check_for_error response
25
52
  if response.status >= 300
26
- raise SetUpProviderStateError.new("Error setting up provider state '#{provider_state}' for consumer '#{consumer}' at #{provider_states_setup_url}. response status=#{response.status} response.body=#{response.body}")
53
+ raise SetUpProviderStateError.new("Error setting up provider state '#{provider_state}' for consumer '#{consumer}' at #{provider_states_setup_url}. response status=#{response.status} response body=#{response.body}")
27
54
  end
28
-
29
55
  end
30
56
 
31
- def self.provider_states_setup_url
32
- ENV['provider_states_setup_url']
57
+ def log_request
58
+ if verbose?
59
+ $stdout.puts "DEBUG: Setting up provider state '#{provider_state}' for consumer '#{consumer}' using provider state server at #{provider_states_setup_url}"
60
+ end
33
61
  end
34
62
 
35
- def self.verbose?
36
- ENV['VERBOSE_LOGGING']
63
+ def warn_if_provider_state_set
64
+ if provider_state
65
+ $stderr.puts "WARN: Skipping set up for provider state '#{provider_state}' for consumer '#{consumer}' as there is no --provider-states-setup-url specified."
66
+ end
37
67
  end
38
68
  end
39
69
  end
@@ -1,5 +1,5 @@
1
1
  module Pact
2
2
  module ProviderVerifier
3
- VERSION = "1.1.1"
3
+ VERSION = "1.1.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pact-provider-verifier
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Fellows
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-01 00:00:00.000000000 Z
11
+ date: 2017-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -134,6 +134,62 @@ dependencies:
134
134
  - - ">="
135
135
  - !ruby/object:Gem::Version
136
136
  version: 10.4.2
137
+ - !ruby/object:Gem::Dependency
138
+ name: sinatra
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ type: :development
145
+ prerelease: false
146
+ version_requirements: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ - !ruby/object:Gem::Dependency
152
+ name: sinatra-contrib
153
+ requirement: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ type: :development
159
+ prerelease: false
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ - !ruby/object:Gem::Dependency
166
+ name: octokit
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - "~>"
170
+ - !ruby/object:Gem::Version
171
+ version: '4.7'
172
+ type: :development
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - "~>"
177
+ - !ruby/object:Gem::Version
178
+ version: '4.7'
179
+ - !ruby/object:Gem::Dependency
180
+ name: webmock
181
+ requirement: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - "~>"
184
+ - !ruby/object:Gem::Version
185
+ version: '3.0'
186
+ type: :development
187
+ prerelease: false
188
+ version_requirements: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - "~>"
191
+ - !ruby/object:Gem::Version
192
+ version: '3.0'
137
193
  description: |-
138
194
  A cross-platform Pact verification tool to validate API Providers.
139
195
  Used in the pact-js-provider project to simplify development