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 2452e6e..c10699f 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_equal options[:oauth_callback], token.callback_url
+    assert_equal_allowing_nil options[:oauth_callback], token.callback_url
     assert_allowed token, client.permissions
 
     token
index 5fb81a4..dc62531 100644 (file)
@@ -312,9 +312,9 @@ class BoundingBoxTest < ActiveSupport::TestCase
   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
index a100515..65c7ea3 100644 (file)
@@ -32,39 +32,39 @@ class LocaleTest < ActiveSupport::TestCase
   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
-    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
-    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
index d480849..b7b37d3 100644 (file)
@@ -151,7 +151,7 @@ class UserTest < ActiveSupport::TestCase
 
   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!
@@ -244,8 +244,8 @@ class UserTest < ActiveSupport::TestCase
     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?
index 88cfe48..3eafdd5 100644 (file)
@@ -77,6 +77,19 @@ module ActiveSupport
       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...