active_record_host_pool 1.1.1 → 1.2.1

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
  SHA256:
3
- metadata.gz: 2dc3e41230c1cc7b208056d7f6fe99abe717e190b55cdca3ff5df9f1513fcad1
4
- data.tar.gz: 92f1982d46da0644184083a78d72ad878d54ff70413f347fcb67bc3890cfaeca
3
+ metadata.gz: 6c8a74e78b05f5094b89403c7e77ebbe40802ebeeec9f8ea724cdf3527c20dea
4
+ data.tar.gz: 8e8e5c3ba32256bcf5c39e974bb8565ae464bad9aafa41d0ad5309802d226dc2
5
5
  SHA512:
6
- metadata.gz: b3e4c62f5aee3ae968622ca9a7fef59fd9974c4153c244c312715036f6753a0ec58ba3083247bb9a4b9479db3a3c55a8182c85ae320d273ad90a1084ea745b46
7
- data.tar.gz: 1fcec2e7e23272e50894a19bd4fc195e0360089d3a5e44f98fc6a589723f3a6bb8dae2276dbeeec31f05f87f89641308909412b28f73f929bc2358605fe30937
6
+ metadata.gz: d3c9ed0921dae7152f1de4e498edd761960b81038c8d46a32674949fe152d8dd2b9ad8a836322d8cabf6f05a3484e9297a535553dc8c888109958fdb00eacea9
7
+ data.tar.gz: fcb8f19f314456e8dc293a6233650723da2f6bad8548fba12671827d12bd1c3842cb555d2b2ca413488cadf9099b8b491b01ef256279099a3a3a0473b4507701
@@ -32,11 +32,12 @@ module ActiveRecordHostPool
32
32
  super
33
33
  end
34
34
 
35
- def execute_with_switching(*args)
35
+ def self.ruby2_keywords(*); end unless respond_to?(:ruby2_keywords, true)
36
+ ruby2_keywords def execute_with_switching(*args, **kwargs)
36
37
  if _host_pool_current_database && !_no_switch
37
38
  _switch_connection
38
39
  end
39
- execute_without_switching(*args)
40
+ execute_without_switching(*args, **kwargs)
40
41
  end
41
42
 
42
43
  def drop_database_with_no_switching(*args)
@@ -97,7 +98,7 @@ module ActiveRecord
97
98
  module ConnectionAdapters
98
99
  class ConnectionHandler
99
100
  case "#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}"
100
- when '6.1'
101
+ when '6.1', '7.0'
101
102
 
102
103
  :noop
103
104
 
@@ -122,6 +123,7 @@ ActiveRecord::ConnectionAdapters::Mysql2Adapter.include(ActiveRecordHostPool::Da
122
123
 
123
124
  # In Rails 6.1 Connection Pools are no longer instantiated in #establish_connection but in a
124
125
  # new pool method.
125
- if "#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}" == '6.1'
126
+ case "#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}"
127
+ when '6.1', '7.0'
126
128
  ActiveRecord::ConnectionAdapters::PoolConfig.prepend(ActiveRecordHostPool::PoolConfigPatch)
127
129
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- if "#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}" == '6.1'
3
+ case "#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}"
4
+ when '6.1', '7.0'
4
5
  require 'active_record_host_pool/pool_proxy_6_1'
5
6
  else
6
7
  require 'active_record_host_pool/pool_proxy_legacy'
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveRecordHostPool
4
- VERSION = "1.1.1"
4
+ VERSION = "1.2.1"
5
5
  end
data/test/helper.rb CHANGED
@@ -5,7 +5,7 @@ require 'minitest/autorun'
5
5
 
6
6
  require 'active_record_host_pool'
7
7
  require 'logger'
8
- require 'mocha/minitest'
8
+ require 'minitest/mock_expectations'
9
9
  require 'phenix'
10
10
 
11
11
  ENV['RAILS_ENV'] = 'test'
@@ -20,6 +20,8 @@ RAILS_6_1_WITH_NON_LEGACY_CONNECTION_HANDLING =
20
20
 
21
21
  ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + '/test.log')
22
22
 
23
+ Thread.abort_on_exception = true
24
+
23
25
  # BEGIN preventing_writes? patch
24
26
  ## Rails 6.1 by default does not allow writing to replica databases which prevents
25
27
  ## us from properly setting up the test databases. This patch is used in test/schema.rb
data/test/test_arhp.rb CHANGED
@@ -122,18 +122,22 @@ class ActiveRecordHostPoolTest < Minitest::Test
122
122
 
123
123
  def test_no_switch_when_creating_db
124
124
  conn = Pool1DbA.connection
125
- conn.expects(:execute_without_switching)
126
- conn.expects(:_switch_connection).never
127
- assert conn._host_pool_current_database
128
- conn.create_database(:some_args)
125
+ assert_called(conn, :execute_without_switching) do
126
+ refute_called(conn, :_switch_connection) do
127
+ assert conn._host_pool_current_database
128
+ conn.create_database(:some_args)
129
+ end
130
+ end
129
131
  end
130
132
 
131
133
  def test_no_switch_when_dropping_db
132
134
  conn = Pool1DbA.connection
133
- conn.expects(:execute_without_switching)
134
- conn.expects(:_switch_connection).never
135
- assert conn._host_pool_current_database
136
- conn.drop_database(:some_args)
135
+ assert_called(conn, :execute_without_switching) do
136
+ refute_called(conn, :_switch_connection) do
137
+ assert conn._host_pool_current_database
138
+ conn.drop_database(:some_args)
139
+ end
140
+ end
137
141
  end
138
142
 
139
143
  def test_underlying_assumption_about_test_db
@@ -163,8 +167,9 @@ class ActiveRecordHostPoolTest < Minitest::Test
163
167
  thread_id = switch_to_klass.connection.select_value('select @@pseudo_thread_id')
164
168
 
165
169
  # now, disable our auto-switching and trigger a mysql reconnect
166
- switch_to_klass.connection.unproxied.stubs(:_switch_connection).returns(true)
167
- Pool2DbD.connection.execute("KILL #{thread_id}")
170
+ switch_to_klass.connection.unproxied.stub(:_switch_connection, true) do
171
+ Pool2DbD.connection.execute("KILL #{thread_id}")
172
+ end
168
173
 
169
174
  # and finally, did mysql reconnect correctly?
170
175
  puts "\nAnd now we end up on #{current_database(switch_to_klass)}" if debug_me
@@ -174,7 +179,8 @@ class ActiveRecordHostPoolTest < Minitest::Test
174
179
  def test_release_connection
175
180
  pool = ActiveRecord::Base.connection_pool
176
181
  conn = pool.connection
177
- pool.expects(:checkin).with(conn)
178
- pool.release_connection
182
+ assert_called_with(pool, :checkin, [conn]) do
183
+ pool.release_connection
184
+ end
179
185
  end
180
186
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record_host_pool
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benjamin Quorning
8
8
  - Gabe Martin-Dempesy
9
9
  - Pierre Schambacher
10
10
  - Ben Osheroff
11
- autorequire:
11
+ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2022-08-26 00:00:00.000000000 Z
14
+ date: 2022-12-23 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activerecord
@@ -22,7 +22,7 @@ dependencies:
22
22
  version: 5.1.0
23
23
  - - "<"
24
24
  - !ruby/object:Gem::Version
25
- version: '7.0'
25
+ version: '7.1'
26
26
  type: :runtime
27
27
  prerelease: false
28
28
  version_requirements: !ruby/object:Gem::Requirement
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: 5.1.0
33
33
  - - "<"
34
34
  - !ruby/object:Gem::Version
35
- version: '7.0'
35
+ version: '7.1'
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: mysql2
38
38
  requirement: !ruby/object:Gem::Requirement
@@ -76,19 +76,19 @@ dependencies:
76
76
  - !ruby/object:Gem::Version
77
77
  version: 5.10.0
78
78
  - !ruby/object:Gem::Dependency
79
- name: mocha
79
+ name: minitest-mock_expectations
80
80
  requirement: !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - ">="
82
+ - - "~>"
83
83
  - !ruby/object:Gem::Version
84
- version: 1.4.0
84
+ version: 1.1.3
85
85
  type: :development
86
86
  prerelease: false
87
87
  version_requirements: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - ">="
89
+ - - "~>"
90
90
  - !ruby/object:Gem::Version
91
- version: 1.4.0
91
+ version: 1.1.3
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: phenix
94
94
  requirement: !ruby/object:Gem::Requirement
@@ -131,20 +131,6 @@ dependencies:
131
131
  - - "~>"
132
132
  - !ruby/object:Gem::Version
133
133
  version: 0.80.0
134
- - !ruby/object:Gem::Dependency
135
- name: shoulda
136
- requirement: !ruby/object:Gem::Requirement
137
- requirements:
138
- - - ">="
139
- - !ruby/object:Gem::Version
140
- version: '0'
141
- type: :development
142
- prerelease: false
143
- version_requirements: !ruby/object:Gem::Requirement
144
- requirements:
145
- - - ">="
146
- - !ruby/object:Gem::Version
147
- version: '0'
148
134
  description: ''
149
135
  email:
150
136
  - bquorning@zendesk.com
@@ -174,7 +160,7 @@ homepage: https://github.com/zendesk/active_record_host_pool
174
160
  licenses:
175
161
  - MIT
176
162
  metadata: {}
177
- post_install_message:
163
+ post_install_message:
178
164
  rdoc_options: []
179
165
  require_paths:
180
166
  - lib
@@ -189,8 +175,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
189
175
  - !ruby/object:Gem::Version
190
176
  version: '0'
191
177
  requirements: []
192
- rubygems_version: 3.1.6
193
- signing_key:
178
+ rubygems_version: 3.0.3.1
179
+ signing_key:
194
180
  specification_version: 4
195
181
  summary: Allow ActiveRecord to share a connection to multiple databases on the same
196
182
  host