pact-mock_service 3.6.0 → 3.9.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
2
  SHA256:
3
- metadata.gz: a8f93c8415cfbb4387f99d2bca078a717089006e40747472e3b2f152d395cf3d
4
- data.tar.gz: '03985b4c0592411f8d038e70833b1b15c02a7f78aae042cf753f9f941de5fc4d'
3
+ metadata.gz: dab727d9bf1dde9bbc51116ac3781b0ce2fd3db9f91d55c9cf383ba6c950bcea
4
+ data.tar.gz: 0e1e2bb0112e63f0d8416b9c13b22b105c0fb5e62268dbe1ea7bb55d44481568
5
5
  SHA512:
6
- metadata.gz: d665d6f1079fc9fd59489cc9eca345e32be04c4f14063f5ba37d7ba2ceda896edd34409c943c482868f158d1f3db4c2bdb11ce99098eeab6d1b4de4316e3bf22
7
- data.tar.gz: 4a046a003816226d4e23214e2fe2969c277d8bddc66e5cf7c534f774a21b530a34f1e77c97d8acc063c855a60cde1049a037e98edfbf1beaf1f45e37dbc2daf7
6
+ metadata.gz: 43676055550932c387a5bd4a3ed060ac42bd13fa8c0a57227fc647687ab2b03121e1846dfa0daf1f46bd7c5ca13b3ecfd4ad76d4990f9c43d558433f42cce423
7
+ data.tar.gz: 6d811f0e0d1e9abfc4cc9e1383504b074b51a53aec2bd8991e72285b30c6ef45f835ea0c599c7de05e17081db3387856a07b1b2bca356f09422755ecb6289eb7
data/CHANGELOG.md CHANGED
@@ -1,3 +1,41 @@
1
+ <a name="v3.9.0"></a>
2
+ ### v3.9.0 (2021-05-17)
3
+
4
+ #### Features
5
+
6
+ * pass host into WEBrick options to allow configuration (#128) ([ec234a4](/../../commit/ec234a4))
7
+
8
+ <a name="v3.8.0"></a>
9
+ ### v3.8.0 (2021-02-25)
10
+
11
+ #### Features
12
+
13
+ * include interaction diffs in verification response ([6306693](/../../commit/6306693))
14
+
15
+ <a name="v3.7.0"></a>
16
+ ### v3.7.0 (2020-11-13)
17
+
18
+ #### Features
19
+
20
+ * use Pact::Query.parse_string to parse query string ([6cd0733](/../../commit/6cd0733))
21
+ * do not require files until command is executing ([ad54d0b](/../../commit/ad54d0b))
22
+
23
+ <a name="v3.6.2"></a>
24
+ ### v3.6.2 (2020-08-10)
25
+
26
+ #### Bug Fixes
27
+
28
+ * update thor dependency (#124) ([54b3f85](/../../commit/54b3f85))
29
+
30
+ <a name="v3.6.1"></a>
31
+ ### v3.6.1 (2020-04-22)
32
+
33
+
34
+ #### Bug Fixes
35
+
36
+ * fix Ruby 2.7 kwargs warning (#122) ([4a46c21](/../../commit/4a46c21))
37
+
38
+
1
39
  <a name="v3.6.0"></a>
2
40
  ### v3.6.0 (2020-03-14)
3
41
 
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
 
2
2
  # Pact Mock and Stub Service
3
3
 
4
- [![Build Status](https://travis-ci.org/pact-foundation/pact-mock_service.svg?branch=master)](https://travis-ci.org/pact-foundation/pact-mock_service)
4
+ [![Build Status](https://travis-ci.com/pact-foundation/pact-mock_service.svg?branch=master)](https://travis-ci.com/pact-foundation/pact-mock_service)
5
5
 
6
6
  This codebase provides the HTTP mock and stub service used by implementations of [Pact][pact]. It is packaged as a gem, and as a standalone executable for Mac OSX and Linux and Windows.
7
7
 
@@ -1,4 +1,6 @@
1
1
  require 'cgi/core'
2
+ require 'pact/consumer_contract/query'
3
+
2
4
  module Pact
3
5
  module Consumer
4
6
 
@@ -11,7 +13,7 @@ module Pact
11
13
  }
12
14
 
13
15
  def params_hash env
14
- CGI::parse env["QUERY_STRING"]
16
+ Pact::Query.parse_string(env["QUERY_STRING"])
15
17
  end
16
18
 
17
19
  def request_as_hash_from env
@@ -67,7 +67,7 @@ module Pact
67
67
 
68
68
  def run_default_server(app, port)
69
69
  require 'rack/handler/webrick'
70
- Rack::Handler::WEBrick.run(app, webrick_opts) do |server|
70
+ Rack::Handler::WEBrick.run(app, **webrick_opts) do |server|
71
71
  @port = server[:Port]
72
72
  end
73
73
  end
@@ -83,7 +83,7 @@ module Pact
83
83
  end
84
84
 
85
85
  def webrick_opts
86
- opts = { Port: port.nil? ? 0 : port, AccessLog: [], Logger: WEBrick::Log::new(nil, 0) }
86
+ opts = { Host: host.nil? ? 'localhost' : host, Port: port.nil? ? 0 : port, AccessLog: [], Logger: WEBrick::Log::new(nil, 0) }
87
87
  opts.merge!({
88
88
  :SSLCertificate => OpenSSL::X509::Certificate.new(File.open(options[:sslcert]).read) }) if options[:sslcert]
89
89
  opts.merge!({
@@ -1,14 +1,11 @@
1
1
  require 'thor'
2
- require 'webrick/https'
3
- require 'rack/handler/webrick'
4
- require 'fileutils'
5
- require 'pact/mock_service/server/wait_for_server_up'
6
- require 'pact/mock_service/cli/pidfile'
7
- require 'socket'
8
2
 
9
3
  module Pact
10
4
  module MockService
11
5
  class CLI < Thor
6
+ def self.exit_on_failure? # Thor 1.0 deprecation guard
7
+ false
8
+ end
12
9
 
13
10
  PACT_FILE_WRITE_MODE_DESC = "`overwrite` or `merge`. Use `merge` when running multiple mock service instances in parallel for the same consumer/provider pair." +
14
11
  " Ensure the pact file is deleted before running tests when using this option so that interactions deleted from the code are not maintained in the file."
@@ -30,6 +27,7 @@ module Pact
30
27
  method_option :monkeypatch, hide: true
31
28
 
32
29
  def service
30
+ require_common_dependencies
33
31
  require 'pact/mock_service/run'
34
32
  Run.(options)
35
33
  end
@@ -48,6 +46,7 @@ module Pact
48
46
  method_option :sslkey, desc: "Specify the path to the SSL key to use when running the service over HTTPS"
49
47
 
50
48
  def control
49
+ require_common_dependencies
51
50
  require 'pact/mock_service/control_server/run'
52
51
  ControlServer::Run.(options)
53
52
  end
@@ -70,6 +69,7 @@ module Pact
70
69
  method_option :monkeypatch, hide: true
71
70
 
72
71
  def start
72
+ require_common_dependencies
73
73
  start_server(mock_service_pidfile) do
74
74
  service
75
75
  end
@@ -80,6 +80,7 @@ module Pact
80
80
  method_option :pid_dir, desc: "PID dir, defaults to tmp/pids", default: "tmp/pids"
81
81
 
82
82
  def stop
83
+ require_common_dependencies
83
84
  mock_service_pidfile.kill_process
84
85
  end
85
86
 
@@ -100,6 +101,7 @@ module Pact
100
101
  method_option :sslkey, desc: "Specify the path to the SSL key to use when running the service over HTTPS"
101
102
 
102
103
  def restart
104
+ require_common_dependencies
103
105
  restart_server(mock_service_pidfile) do
104
106
  service
105
107
  end
@@ -120,6 +122,7 @@ module Pact
120
122
  method_option :pact_dir, aliases: "-d", desc: "Directory to which the pacts will be written", default: "."
121
123
 
122
124
  def control_start
125
+ require_common_dependencies
123
126
  start_server(control_server_pidfile) do
124
127
  control
125
128
  end
@@ -130,6 +133,7 @@ module Pact
130
133
  method_option :pid_dir, desc: "PID dir, defaults to tmp/pids", default: "tmp/pids"
131
134
 
132
135
  def control_stop
136
+ require_common_dependencies
133
137
  control_server_pidfile.kill_process
134
138
  end
135
139
 
@@ -148,6 +152,7 @@ module Pact
148
152
  method_option :sslkey, desc: "Specify the path to the SSL key to use when running the service over HTTPS"
149
153
 
150
154
  def control_restart
155
+ require_common_dependencies
151
156
  restart_server(control_server_pidfile) do
152
157
  control
153
158
  end
@@ -164,6 +169,15 @@ module Pact
164
169
 
165
170
  no_commands do
166
171
 
172
+ def require_common_dependencies
173
+ require 'webrick/https'
174
+ require 'rack/handler/webrick'
175
+ require 'fileutils'
176
+ require 'pact/mock_service/server/wait_for_server_up'
177
+ require 'pact/mock_service/cli/pidfile'
178
+ require 'socket'
179
+ end
180
+
167
181
  def control_server_pidfile
168
182
  Pidfile.new(pid_dir: options[:pid_dir], name: control_pidfile_name)
169
183
  end
@@ -11,6 +11,9 @@ module Pact
11
11
  # `script --help` to display the help for the default task instead of the command list
12
12
  #
13
13
  class CustomThor < ::Thor
14
+ def self.exit_on_failure? # Thor 1.0 deprecation guard
15
+ false
16
+ end
14
17
 
15
18
  no_commands do
16
19
  def self.start given_args = ARGV, config = {}
@@ -3,9 +3,11 @@ require 'fileutils'
3
3
  module Pact
4
4
  module MockService
5
5
  class CLI < Thor
6
+ def self.exit_on_failure? # Thor 1.0 deprecation guard
7
+ false
8
+ end
6
9
 
7
10
  class Pidfile
8
-
9
11
  attr_accessor :pid_dir, :name, :pid
10
12
 
11
13
  def initialize options
@@ -24,7 +24,7 @@ module Pact
24
24
  # server, and can't shut it down. So, keep a manual reference to the Webrick server, and
25
25
  # shut it down directly rather than use Rack::Handler::WEBrick.shutdown
26
26
  # Ruby!
27
- Rack::Handler::WEBrick.run(control_server, webbrick_opts) do | server |
27
+ Rack::Handler::WEBrick.run(control_server, **webbrick_opts) do | server |
28
28
  @webrick_server = server
29
29
  end
30
30
  end
@@ -38,6 +38,10 @@ module Pact
38
38
  expected_interactions - actual_interactions.matched_interactions - @actual_interactions.interaction_mismatches.collect(&:candidate_interactions).flatten
39
39
  end
40
40
 
41
+ def interaction_mismatches
42
+ actual_interactions.interaction_mismatches
43
+ end
44
+
41
45
  private
42
46
 
43
47
  attr_reader :expected_interactions, :actual_interactions
@@ -52,7 +52,7 @@ module Pact
52
52
  def to_s
53
53
  titles_and_summaries.collect do | title, summaries |
54
54
  "#{title}:\n\t#{summaries.join("\n\t")}\n\n" if summaries.any?
55
- end.compact.join
55
+ end.compact.join + verification.interaction_mismatches.collect(&:to_s).join("\n\n") + "\n"
56
56
 
57
57
  end
58
58
 
@@ -25,7 +25,7 @@ module Pact
25
25
 
26
26
  require_monkeypatch
27
27
 
28
- Rack::Handler::WEBrick.run(mock_service, webbrick_opts)
28
+ Rack::Handler::WEBrick.run(mock_service, **webbrick_opts)
29
29
  end
30
30
 
31
31
  private
@@ -1,5 +1,5 @@
1
1
  module Pact
2
2
  module MockService
3
- VERSION = "3.6.0"
3
+ VERSION = "3.9.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pact-mock_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.0
4
+ version: 3.9.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: 2020-03-14 00:00:00.000000000 Z
15
+ date: 2021-05-18 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rack
@@ -60,16 +60,22 @@ dependencies:
60
60
  name: thor
61
61
  requirement: !ruby/object:Gem::Requirement
62
62
  requirements:
63
- - - "~>"
63
+ - - ">="
64
64
  - !ruby/object:Gem::Version
65
65
  version: '0.19'
66
+ - - "<"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.0'
66
69
  type: :runtime
67
70
  prerelease: false
68
71
  version_requirements: !ruby/object:Gem::Requirement
69
72
  requirements:
70
- - - "~>"
73
+ - - ">="
71
74
  - !ruby/object:Gem::Version
72
75
  version: '0.19'
76
+ - - "<"
77
+ - !ruby/object:Gem::Version
78
+ version: '2.0'
73
79
  - !ruby/object:Gem::Dependency
74
80
  name: json
75
81
  requirement: !ruby/object:Gem::Requirement
@@ -118,20 +124,20 @@ dependencies:
118
124
  requirements:
119
125
  - - "~>"
120
126
  - !ruby/object:Gem::Version
121
- version: '1.12'
127
+ version: '1.16'
122
128
  - - ">="
123
129
  - !ruby/object:Gem::Version
124
- version: 1.12.0
130
+ version: 1.16.4
125
131
  type: :runtime
126
132
  prerelease: false
127
133
  version_requirements: !ruby/object:Gem::Requirement
128
134
  requirements:
129
135
  - - "~>"
130
136
  - !ruby/object:Gem::Version
131
- version: '1.12'
137
+ version: '1.16'
132
138
  - - ">="
133
139
  - !ruby/object:Gem::Version
134
- version: 1.12.0
140
+ version: 1.16.4
135
141
  - !ruby/object:Gem::Dependency
136
142
  name: filelock
137
143
  requirement: !ruby/object:Gem::Requirement
@@ -166,14 +172,20 @@ dependencies:
166
172
  requirements:
167
173
  - - "~>"
168
174
  - !ruby/object:Gem::Version
169
- version: 10.0.3
175
+ version: '13.0'
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: 13.0.1
170
179
  type: :development
171
180
  prerelease: false
172
181
  version_requirements: !ruby/object:Gem::Requirement
173
182
  requirements:
174
183
  - - "~>"
175
184
  - !ruby/object:Gem::Version
176
- version: 10.0.3
185
+ version: '13.0'
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: 13.0.1
177
189
  - !ruby/object:Gem::Dependency
178
190
  name: webmock
179
191
  requirement: !ruby/object:Gem::Requirement
@@ -399,8 +411,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
399
411
  - !ruby/object:Gem::Version
400
412
  version: '0'
401
413
  requirements: []
402
- rubyforge_project:
403
- rubygems_version: 2.7.7
414
+ rubygems_version: 3.2.17
404
415
  signing_key:
405
416
  specification_version: 4
406
417
  summary: Provides a mock service for use with Pact