active_record_host_pool 1.2.0 → 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 +4 -4
- data/lib/active_record_host_pool/connection_adapter_mixin.rb +2 -2
- data/lib/active_record_host_pool/version.rb +1 -1
- data/test/helper.rb +3 -1
- data/test/test_arhp.rb +18 -12
- metadata +7 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c8a74e78b05f5094b89403c7e77ebbe40802ebeeec9f8ea724cdf3527c20dea
|
4
|
+
data.tar.gz: 8e8e5c3ba32256bcf5c39e974bb8565ae464bad9aafa41d0ad5309802d226dc2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3c9ed0921dae7152f1de4e498edd761960b81038c8d46a32674949fe152d8dd2b9ad8a836322d8cabf6f05a3484e9297a535553dc8c888109958fdb00eacea9
|
7
|
+
data.tar.gz: fcb8f19f314456e8dc293a6233650723da2f6bad8548fba12671827d12bd1c3842cb555d2b2ca413488cadf9099b8b491b01ef256279099a3a3a0473b4507701
|
@@ -33,11 +33,11 @@ module ActiveRecordHostPool
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def self.ruby2_keywords(*); end unless respond_to?(:ruby2_keywords, true)
|
36
|
-
ruby2_keywords def execute_with_switching(*args)
|
36
|
+
ruby2_keywords def execute_with_switching(*args, **kwargs)
|
37
37
|
if _host_pool_current_database && !_no_switch
|
38
38
|
_switch_connection
|
39
39
|
end
|
40
|
-
execute_without_switching(*args)
|
40
|
+
execute_without_switching(*args, **kwargs)
|
41
41
|
end
|
42
42
|
|
43
43
|
def drop_database_with_no_switching(*args)
|
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 '
|
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
|
126
|
-
|
127
|
-
|
128
|
-
|
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
|
134
|
-
|
135
|
-
|
136
|
-
|
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.
|
167
|
-
|
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
|
178
|
-
|
182
|
+
assert_called_with(pool, :checkin, [conn]) do
|
183
|
+
pool.release_connection
|
184
|
+
end
|
179
185
|
end
|
180
186
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_record_host_pool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benjamin Quorning
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2022-
|
14
|
+
date: 2022-12-23 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: activerecord
|
@@ -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:
|
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.
|
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.
|
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
|