Skip to content

Commit 9ca579a

Browse files
authored
Merge pull request rails#33409 from utilum/correct_epxectations_to_meet_minitest_strict_mocking
Use MethodCallAssertions instead of Mocha part 2
2 parents d3ba913 + 82e42c1 commit 9ca579a

File tree

4 files changed

+112
-49
lines changed

4 files changed

+112
-49
lines changed

activerecord/test/cases/adapters/mysql2/active_schema_test.rb

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -157,14 +157,19 @@ def test_remove_timestamps
157157
end
158158

159159
def test_indexes_in_create
160-
ActiveRecord::Base.connection.stubs(:data_source_exists?).with(:temp).returns(false)
160+
assert_called_with(
161+
ActiveRecord::Base.connection,
162+
:data_source_exists?,
163+
[:temp],
164+
returns: false
165+
) do
166+
expected = "CREATE TEMPORARY TABLE `temp` ( INDEX `index_temp_on_zip` (`zip`)) AS SELECT id, name, zip FROM a_really_complicated_query"
167+
actual = ActiveRecord::Base.connection.create_table(:temp, temporary: true, as: "SELECT id, name, zip FROM a_really_complicated_query") do |t|
168+
t.index :zip
169+
end
161170

162-
expected = "CREATE TEMPORARY TABLE `temp` ( INDEX `index_temp_on_zip` (`zip`)) AS SELECT id, name, zip FROM a_really_complicated_query"
163-
actual = ActiveRecord::Base.connection.create_table(:temp, temporary: true, as: "SELECT id, name, zip FROM a_really_complicated_query") do |t|
164-
t.index :zip
171+
assert_equal expected, actual
165172
end
166-
167-
assert_equal expected, actual
168173
end
169174

170175
private

activerecord/test/cases/tasks/database_tasks_test.rb

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -143,9 +143,6 @@ class DatabaseTasksCreateAllTest < ActiveRecord::TestCase
143143
def setup
144144
@configurations = { "development" => { "database" => "my-db" } }
145145

146-
# To refrain from connecting to a newly created empty DB in sqlite3_mem tests
147-
ActiveRecord::Base.connection_handler.stubs(:establish_connection)
148-
149146
$stdout, @original_stdout = StringIO.new, $stdout
150147
$stderr, @original_stderr = StringIO.new, $stderr
151148
end
@@ -157,7 +154,7 @@ def teardown
157154
def test_ignores_configurations_without_databases
158155
@configurations["development"].merge!("database" => nil)
159156

160-
with_stubbed_configurations do
157+
with_stubbed_configurations_establish_connection do
161158
assert_not_called(ActiveRecord::Tasks::DatabaseTasks, :create) do
162159
ActiveRecord::Tasks::DatabaseTasks.create_all
163160
end
@@ -167,7 +164,7 @@ def test_ignores_configurations_without_databases
167164
def test_ignores_remote_databases
168165
@configurations["development"].merge!("host" => "my.server.tld")
169166

170-
with_stubbed_configurations do
167+
with_stubbed_configurations_establish_connection do
171168
assert_not_called(ActiveRecord::Tasks::DatabaseTasks, :create) do
172169
ActiveRecord::Tasks::DatabaseTasks.create_all
173170
end
@@ -177,7 +174,7 @@ def test_ignores_remote_databases
177174
def test_warning_for_remote_databases
178175
@configurations["development"].merge!("host" => "my.server.tld")
179176

180-
with_stubbed_configurations do
177+
with_stubbed_configurations_establish_connection do
181178
ActiveRecord::Tasks::DatabaseTasks.create_all
182179

183180
assert_match "This task only modifies local databases. my-db is on a remote host.",
@@ -188,7 +185,7 @@ def test_warning_for_remote_databases
188185
def test_creates_configurations_with_local_ip
189186
@configurations["development"].merge!("host" => "127.0.0.1")
190187

191-
with_stubbed_configurations do
188+
with_stubbed_configurations_establish_connection do
192189
assert_called(ActiveRecord::Tasks::DatabaseTasks, :create) do
193190
ActiveRecord::Tasks::DatabaseTasks.create_all
194191
end
@@ -198,7 +195,7 @@ def test_creates_configurations_with_local_ip
198195
def test_creates_configurations_with_local_host
199196
@configurations["development"].merge!("host" => "localhost")
200197

201-
with_stubbed_configurations do
198+
with_stubbed_configurations_establish_connection do
202199
assert_called(ActiveRecord::Tasks::DatabaseTasks, :create) do
203200
ActiveRecord::Tasks::DatabaseTasks.create_all
204201
end
@@ -208,7 +205,7 @@ def test_creates_configurations_with_local_host
208205
def test_creates_configurations_with_blank_hosts
209206
@configurations["development"].merge!("host" => nil)
210207

211-
with_stubbed_configurations do
208+
with_stubbed_configurations_establish_connection do
212209
assert_called(ActiveRecord::Tasks::DatabaseTasks, :create) do
213210
ActiveRecord::Tasks::DatabaseTasks.create_all
214211
end
@@ -217,9 +214,16 @@ def test_creates_configurations_with_blank_hosts
217214

218215
private
219216

220-
def with_stubbed_configurations
217+
def with_stubbed_configurations_establish_connection
221218
ActiveRecord::Base.stub(:configurations, @configurations) do
222-
yield
219+
# To refrain from connecting to a newly created empty DB in
220+
# sqlite3_mem tests
221+
ActiveRecord::Base.connection_handler.stub(
222+
:establish_connection,
223+
nil
224+
) do
225+
yield
226+
end
223227
end
224228
end
225229
end

activerecord/test/cases/tasks/mysql_rake_test.rb

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,17 @@ def teardown
2121
end
2222

2323
def test_establishes_connection_without_database
24-
ActiveRecord::Base.stubs(:establish_connection)
2524
ActiveRecord::Base.stub(:connection, @connection) do
26-
ActiveRecord::Base.expects(:establish_connection).
27-
with("adapter" => "mysql2", "database" => nil)
28-
ActiveRecord::Tasks::DatabaseTasks.create @configuration
25+
assert_called_with(
26+
ActiveRecord::Base,
27+
:establish_connection,
28+
[
29+
[ "adapter" => "mysql2", "database" => nil ],
30+
[ "adapter" => "mysql2", "database" => "my-app-db" ],
31+
]
32+
) do
33+
ActiveRecord::Tasks::DatabaseTasks.create @configuration
34+
end
2935
end
3036
end
3137

@@ -58,12 +64,17 @@ def test_creates_database_with_given_collation
5864
end
5965

6066
def test_establishes_connection_to_database
61-
ActiveRecord::Base.stubs(:establish_connection)
62-
6367
ActiveRecord::Base.stub(:connection, @connection) do
64-
ActiveRecord::Base.expects(:establish_connection).with(@configuration)
65-
66-
ActiveRecord::Tasks::DatabaseTasks.create @configuration
68+
assert_called_with(
69+
ActiveRecord::Base,
70+
:establish_connection,
71+
[
72+
["adapter" => "mysql2", "database" => nil],
73+
[@configuration]
74+
]
75+
) do
76+
ActiveRecord::Tasks::DatabaseTasks.create @configuration
77+
end
6778
end
6879
end
6980

activerecord/test/cases/tasks/postgresql_rake_test.rb

Lines changed: 66 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,24 @@ def teardown
2121
end
2222

2323
def test_establishes_connection_to_postgresql_database
24-
ActiveRecord::Base.stubs(:establish_connection)
2524
ActiveRecord::Base.stub(:connection, @connection) do
26-
ActiveRecord::Base.expects(:establish_connection).with(
27-
"adapter" => "postgresql",
28-
"database" => "postgres",
29-
"schema_search_path" => "public"
30-
)
31-
ActiveRecord::Tasks::DatabaseTasks.create @configuration
25+
assert_called_with(
26+
ActiveRecord::Base,
27+
:establish_connection,
28+
[
29+
[
30+
"adapter" => "postgresql",
31+
"database" => "postgres",
32+
"schema_search_path" => "public"
33+
],
34+
[
35+
"adapter" => "postgresql",
36+
"database" => "my-app-db"
37+
]
38+
]
39+
) do
40+
ActiveRecord::Tasks::DatabaseTasks.create @configuration
41+
end
3242
end
3343
end
3444

@@ -78,11 +88,23 @@ def test_creates_database_with_given_collation_and_ctype
7888
end
7989

8090
def test_establishes_connection_to_new_database
81-
ActiveRecord::Base.stubs(:establish_connection)
8291
ActiveRecord::Base.stub(:connection, @connection) do
83-
ActiveRecord::Base.expects(:establish_connection).with(@configuration)
84-
85-
ActiveRecord::Tasks::DatabaseTasks.create @configuration
92+
assert_called_with(
93+
ActiveRecord::Base,
94+
:establish_connection,
95+
[
96+
[
97+
"adapter" => "postgresql",
98+
"database" => "postgres",
99+
"schema_search_path" => "public"
100+
],
101+
[
102+
@configuration
103+
]
104+
]
105+
) do
106+
ActiveRecord::Tasks::DatabaseTasks.create @configuration
107+
end
86108
end
87109
end
88110

@@ -207,15 +229,24 @@ def test_clears_active_connections
207229
end
208230

209231
def test_establishes_connection_to_postgresql_database
210-
ActiveRecord::Base.stubs(:establish_connection)
211232
with_stubbed_connection do
212-
ActiveRecord::Base.expects(:establish_connection).with(
213-
"adapter" => "postgresql",
214-
"database" => "postgres",
215-
"schema_search_path" => "public"
216-
)
217-
218-
ActiveRecord::Tasks::DatabaseTasks.purge @configuration
233+
assert_called_with(
234+
ActiveRecord::Base,
235+
:establish_connection,
236+
[
237+
[
238+
"adapter" => "postgresql",
239+
"database" => "postgres",
240+
"schema_search_path" => "public"
241+
],
242+
[
243+
"adapter" => "postgresql",
244+
"database" => "my-app-db"
245+
]
246+
]
247+
) do
248+
ActiveRecord::Tasks::DatabaseTasks.purge @configuration
249+
end
219250
end
220251
end
221252

@@ -244,11 +275,23 @@ def test_creates_database
244275
end
245276

246277
def test_establishes_connection
247-
ActiveRecord::Base.stubs(:establish_connection)
248278
with_stubbed_connection do
249-
ActiveRecord::Base.expects(:establish_connection).with(@configuration)
250-
251-
ActiveRecord::Tasks::DatabaseTasks.purge @configuration
279+
assert_called_with(
280+
ActiveRecord::Base,
281+
:establish_connection,
282+
[
283+
[
284+
"adapter" => "postgresql",
285+
"database" => "postgres",
286+
"schema_search_path" => "public"
287+
],
288+
[
289+
@configuration
290+
]
291+
]
292+
) do
293+
ActiveRecord::Tasks::DatabaseTasks.purge @configuration
294+
end
252295
end
253296
end
254297

0 commit comments

Comments
 (0)