Work around upcoming minitest insanity
authorTom Hughes <tom@compton.nu>
Fri, 2 Dec 2016 22:29:44 +0000 (22:29 +0000)
committerTom Hughes <tom@compton.nu>
Fri, 2 Dec 2016 22:29:44 +0000 (22:29 +0000)
Minitest 6 will not allow assert_equal to compare for equality
with nil and minitest 5 has already started warning about it.

That's fine if you're comparing with a nil constant, but if you're
comparing with an expression that is sometimes nil and sometimes
not nil it's an absolute pain in the rear end.

test/integration/oauth_test.rb
test/lib/bounding_box_test.rb
test/lib/locale_test.rb
test/models/user_test.rb
test/test_helper.rb

index 2452e6e6b8c76cfebd6eb8bd87956410e0511d40..c10699f2aa1e422d9d37e0c9ec07848a0b08e712 100644 (file)
@@ -333,7 +333,7 @@ class OAuthTest < ActionDispatch::IntegrationTest
     assert_not_nil token.created_at
     assert_nil token.authorized_at
     assert_nil token.invalidated_at
     assert_not_nil token.created_at
     assert_nil token.authorized_at
     assert_nil token.invalidated_at
-    assert_equal options[:oauth_callback], token.callback_url
+    assert_equal_allowing_nil options[:oauth_callback], token.callback_url
     assert_allowed token, client.permissions
 
     token
     assert_allowed token, client.permissions
 
     token
index 5fb81a4cb88d6a2180f383a1269170f86a239cf9..dc62531f532414ec885c9d72e8a3d5efc1b80716 100644 (file)
@@ -312,9 +312,9 @@ class BoundingBoxTest < ActiveSupport::TestCase
   end
 
   def check_bbox(bbox, result)
   end
 
   def check_bbox(bbox, result)
-    assert_equal result[0], bbox.min_lon, "min_lon"
-    assert_equal result[1], bbox.min_lat, "min_lat"
-    assert_equal result[2], bbox.max_lon, "max_lon"
-    assert_equal result[3], bbox.max_lat, "max_lat"
+    assert_equal_allowing_nil result[0], bbox.min_lon, "min_lon"
+    assert_equal_allowing_nil result[1], bbox.min_lat, "min_lat"
+    assert_equal_allowing_nil result[2], bbox.max_lon, "max_lon"
+    assert_equal_allowing_nil result[3], bbox.max_lat, "max_lat"
   end
 end
   end
 end
index a100515c8178316c7e0f6f8ed229d523ef398695..65c7ea398799e3333423f04afcfca10081d06e2e 100644 (file)
@@ -32,39 +32,39 @@ class LocaleTest < ActiveSupport::TestCase
   end
 
   def test_script
   end
 
   def test_script
-    assert_equal EN.script, Locale.tag("en").script
-    assert_equal EN_GB.script, Locale.tag("en-GB").script
-    assert_equal FR.script, Locale.tag("fr").script
-    assert_equal ZH_HANS.script, Locale.tag("zh-Hans").script
-    assert_equal ZH_HANT_TW.script, Locale.tag("zh-Hant-TW").script
-    assert_equal ZH_YUE.script, Locale.tag("zh-yue").script
-    assert_equal ZH_YUE.script, Locale.tag("zh-YUE").script
-    assert_equal BE_TARASK.script, Locale.tag("be-tarask").script
-    assert_equal BE_TARASK.script, Locale.tag("be-Tarask").script
+    assert_equal_allowing_nil EN.script, Locale.tag("en").script
+    assert_equal_allowing_nil EN_GB.script, Locale.tag("en-GB").script
+    assert_equal_allowing_nil FR.script, Locale.tag("fr").script
+    assert_equal_allowing_nil ZH_HANS.script, Locale.tag("zh-Hans").script
+    assert_equal_allowing_nil ZH_HANT_TW.script, Locale.tag("zh-Hant-TW").script
+    assert_equal_allowing_nil ZH_YUE.script, Locale.tag("zh-yue").script
+    assert_equal_allowing_nil ZH_YUE.script, Locale.tag("zh-YUE").script
+    assert_equal_allowing_nil BE_TARASK.script, Locale.tag("be-tarask").script
+    assert_equal_allowing_nil BE_TARASK.script, Locale.tag("be-Tarask").script
   end
 
   def test_region
   end
 
   def test_region
-    assert_equal EN.region, Locale.tag("en").region
-    assert_equal EN_GB.region, Locale.tag("en-GB").region
-    assert_equal FR.region, Locale.tag("fr").region
-    assert_equal ZH_HANS.region, Locale.tag("zh-Hans").region
-    assert_equal ZH_HANT_TW.region, Locale.tag("zh-Hant-TW").region
-    assert_equal ZH_YUE.region, Locale.tag("zh-yue").region
-    assert_equal ZH_YUE.region, Locale.tag("zh-YUE").region
-    assert_equal BE_TARASK.region, Locale.tag("be-tarask").region
-    assert_equal BE_TARASK.region, Locale.tag("be-Tarask").region
+    assert_equal_allowing_nil EN.region, Locale.tag("en").region
+    assert_equal_allowing_nil EN_GB.region, Locale.tag("en-GB").region
+    assert_equal_allowing_nil FR.region, Locale.tag("fr").region
+    assert_equal_allowing_nil ZH_HANS.region, Locale.tag("zh-Hans").region
+    assert_equal_allowing_nil ZH_HANT_TW.region, Locale.tag("zh-Hant-TW").region
+    assert_equal_allowing_nil ZH_YUE.region, Locale.tag("zh-yue").region
+    assert_equal_allowing_nil ZH_YUE.region, Locale.tag("zh-YUE").region
+    assert_equal_allowing_nil BE_TARASK.region, Locale.tag("be-tarask").region
+    assert_equal_allowing_nil BE_TARASK.region, Locale.tag("be-Tarask").region
   end
 
   def test_variant
   end
 
   def test_variant
-    assert_equal EN.variant, Locale.tag("en").variant
-    assert_equal EN_GB.variant, Locale.tag("en-GB").variant
-    assert_equal FR.variant, Locale.tag("fr").variant
-    assert_equal ZH_HANS.variant, Locale.tag("zh-Hans").variant
-    assert_equal ZH_HANT_TW.variant, Locale.tag("zh-Hant-TW").variant
-    assert_equal ZH_YUE.variant, Locale.tag("zh-yue").variant
-    assert_equal ZH_YUE.variant, Locale.tag("zh-YUE").variant
-    assert_equal BE_TARASK.variant, Locale.tag("be-tarask").variant
-    assert_equal BE_TARASK.variant, Locale.tag("be-Tarask").variant
+    assert_equal_allowing_nil EN.variant, Locale.tag("en").variant
+    assert_equal_allowing_nil EN_GB.variant, Locale.tag("en-GB").variant
+    assert_equal_allowing_nil FR.variant, Locale.tag("fr").variant
+    assert_equal_allowing_nil ZH_HANS.variant, Locale.tag("zh-Hans").variant
+    assert_equal_allowing_nil ZH_HANT_TW.variant, Locale.tag("zh-Hant-TW").variant
+    assert_equal_allowing_nil ZH_YUE.variant, Locale.tag("zh-yue").variant
+    assert_equal_allowing_nil ZH_YUE.variant, Locale.tag("zh-YUE").variant
+    assert_equal_allowing_nil BE_TARASK.variant, Locale.tag("be-tarask").variant
+    assert_equal_allowing_nil BE_TARASK.variant, Locale.tag("be-Tarask").variant
   end
 
   def test_list
   end
 
   def test_list
index d480849dd5c49336d44edbe4d8d56c6c39413bc8..b7b37d3b42afa0b2af119321b5e6f08510cb1da1 100644 (file)
@@ -151,7 +151,7 @@ class UserTest < ActiveSupport::TestCase
 
   def test_user_preferred_editor
     user = users(:normal_user)
 
   def test_user_preferred_editor
     user = users(:normal_user)
-    assert_equal nil, user.preferred_editor
+    assert_nil user.preferred_editor
     user.preferred_editor = "potlatch"
     assert_equal "potlatch", user.preferred_editor
     user.save!
     user.preferred_editor = "potlatch"
     assert_equal "potlatch", user.preferred_editor
     user.save!
@@ -244,8 +244,8 @@ class UserTest < ActiveSupport::TestCase
     user.delete
     assert_equal "user_#{user.id}", user.display_name
     assert user.description.blank?
     user.delete
     assert_equal "user_#{user.id}", user.display_name
     assert user.description.blank?
-    assert_equal nil, user.home_lat
-    assert_equal nil, user.home_lon
+    assert_nil user.home_lat
+    assert_nil user.home_lon
     assert_equal false, user.image.file?
     assert_equal "deleted", user.status
     assert_equal false, user.visible?
     assert_equal false, user.image.file?
     assert_equal "deleted", user.status
     assert_equal false, user.visible?
index 88cfe4831150440f4b67c2af6c41a61965768521..3eafdd55cbbf62f040b65e21c17f79e379c0070b 100644 (file)
@@ -77,6 +77,19 @@ module ActiveSupport
       end
     end
 
       end
     end
 
+    ##
+    # work round minitest insanity that causes it to tell you
+    # to use assert_nil to test for nil, which is fine if you're
+    # comparing to a nil constant but not if you're comparing
+    # an expression that might be nil sometimes
+    def assert_equal_allowing_nil(exp, act, msg = nil)
+      if exp.nil?
+        assert_nil act, msg
+      else
+        assert_equal exp, act, msg
+      end
+    end
+
     ##
     # for some reason assert_equal a, b fails when the relations are
     # actually equal, so this method manually checks the fields...
     ##
     # for some reason assert_equal a, b fails when the relations are
     # actually equal, so this method manually checks the fields...