なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2015/12/12)

2015/12/12分のコミットです。

CHANGELOGへの追加はありませんでした。


Merge pull request #22514 from prathamesh-sonpatki/use-assert-over-assert-predicate

actionpack/lib/action_dispatch/testing/assertions/response.rbの修正です。

assert_responseメソッドで引数がシンボル(:success、:redirect等)だった場合のassertにassert_predicateを使用していたのをassertメソッドを使用するよう修正しています。

-            assert_predicate @response, RESPONSE_PREDICATES[type], message
+            assert @response.send(RESPONSE_PREDICATES[type]), message

assert_predicateを使用すると、assert_predicateが生成するエラーメッセージが表示されてしまうのですが、assert_responseを使用している場合にその情報は不要だろう、という事で修正されたようです。

これにより、assert_responseのエラー時のメッセージが以下のようになっています。

# before
Expected response to be a :success, but was a redirect to http://test.host/posts.
Expected #ActionDispatch::TestResponse:0x007fb1cc1cf6f8....(lambda)}>> to be successful?.

# after
Expected response to be a :success, but was a redirect to http://test.host/posts

Merge pull request #22502 from maclover7/remove-deprecation-notice

activerecord/lib/active_record/railties/databases.rakeの修正です。

使用されていない、deprecated messageを表示する為のtest:deprecated taskを削除しています。

が、テストがコケてしまった為、後ほどrevertされています。


Show redirect response code in assert_response messages

actionpack/lib/action_dispatch/testing/assertions/response.rbの修正です。

assert_responseメソッドでredierct処理が行われた場合、エラーメソッドに明確にredirect処理が行われた旨表示するよう対応した、Merge pull request #19977 from prathamesh-sonpatki/mention-redirect-path-in-assert-responseの影響で、元々エラーメッセージに表示されていたstatus codeが表示されなくなってしまった為、再度status codeが表示されるよう修正しています。

# before
Expected response to be a <success>, but was a redirect to <http://test.host/posts/lol>

# after
Expected response to be a <success>, but was a <302>
redirect to <http://test.host/posts/redirect/1>

Revert "Merge pull request #22502 from maclover7/remove-deprecation-notice"

使用されていない、deprecated messageを表示する為のtest:deprecated taskを削除した、Merge pull request #22502 from maclover7/remove-deprecation-noticeをrevertしています。理由は先に書いた通り、テストがコケてしまった為。