pact-provider-verifier 1.1.1 → 1.1.2

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
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