From df5691aa94f209a59945d60d750a5040b24dbc40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 11 Apr 2011 17:47:55 +0200 Subject: No need to rescue here. Invoking the wrong method in an object can happen anywhere if you are not careful. In other words, test your shit. --- activemodel/lib/active_model/validations/exclusion.rb | 2 -- activemodel/lib/active_model/validations/format.rb | 2 -- activemodel/lib/active_model/validations/inclusion.rb | 2 -- .../test/cases/validations/exclusion_validation_test.rb | 9 --------- .../test/cases/validations/format_validation_test.rb | 16 ---------------- .../test/cases/validations/inclusion_validation_test.rb | 9 --------- 6 files changed, 40 deletions(-) diff --git a/activemodel/lib/active_model/validations/exclusion.rb b/activemodel/lib/active_model/validations/exclusion.rb index abc1bfae78..d135d0164a 100644 --- a/activemodel/lib/active_model/validations/exclusion.rb +++ b/activemodel/lib/active_model/validations/exclusion.rb @@ -19,8 +19,6 @@ module ActiveModel if exclusions.send(inclusion_method(exclusions), value) record.errors.add(attribute, :exclusion, options.except(:in).merge!(:value => value)) end - rescue NoMethodError - raise ArgumentError, "Exclusion validation for :#{attribute} in #{record.class.name}: #{ERROR_MESSAGE}" end private diff --git a/activemodel/lib/active_model/validations/format.rb b/activemodel/lib/active_model/validations/format.rb index 2ec052c74b..349e110a4b 100644 --- a/activemodel/lib/active_model/validations/format.rb +++ b/activemodel/lib/active_model/validations/format.rb @@ -19,8 +19,6 @@ module ActiveModel raise ArgumentError, "A proc or lambda given to :without option must returns a regular expression" end end - rescue TypeError - raise ArgumentError, "A proc or lambda given to :with or :without option must returns a regular expression" end def check_validity! diff --git a/activemodel/lib/active_model/validations/inclusion.rb b/activemodel/lib/active_model/validations/inclusion.rb index cb46547e92..43b1d87d0b 100644 --- a/activemodel/lib/active_model/validations/inclusion.rb +++ b/activemodel/lib/active_model/validations/inclusion.rb @@ -19,8 +19,6 @@ module ActiveModel unless exclusions.send(inclusion_method(exclusions), value) record.errors.add(attribute, :inclusion, options.except(:in).merge!(:value => value)) end - rescue NoMethodError - raise ArgumentError, "Exclusion validation for :#{attribute} in #{record.class.name}: #{ERROR_MESSAGE}" end private diff --git a/activemodel/test/cases/validations/exclusion_validation_test.rb b/activemodel/test/cases/validations/exclusion_validation_test.rb index fe0d13ec33..72a383f128 100644 --- a/activemodel/test/cases/validations/exclusion_validation_test.rb +++ b/activemodel/test/cases/validations/exclusion_validation_test.rb @@ -54,13 +54,4 @@ class ExclusionValidationTest < ActiveModel::TestCase p.title = "wasabi" assert p.valid? end - - def test_validates_exclustion_with_invalid_lambda_return - Topic.validates_exclusion_of :title, :in => lambda{ |topic| false } - - p = Topic.new - p.title = "wasabi" - p.author_name = "sikachu" - assert_raise(ArgumentError){ p.valid? } - end end diff --git a/activemodel/test/cases/validations/format_validation_test.rb b/activemodel/test/cases/validations/format_validation_test.rb index 1ff29134ee..73647efea5 100644 --- a/activemodel/test/cases/validations/format_validation_test.rb +++ b/activemodel/test/cases/validations/format_validation_test.rb @@ -122,22 +122,6 @@ class PresenceValidationTest < ActiveModel::TestCase assert p.valid? end - def test_validates_format_of_with_lambda_not_returns_regexp - Topic.validates_format_of :content, :with => lambda{ |topic| false } - - p = Topic.new - p.content = "Pixies" - assert_raise(ArgumentError){ p.valid? } - end - - def test_validates_format_of_without_lambda_not_returns_regexp - Topic.validates_format_of :content, :without => lambda{ |topic| false } - - p = Topic.new - p.content = "Pixies" - assert_raise(ArgumentError){ p.valid? } - end - def test_validates_format_of_for_ruby_class Person.validates_format_of :karma, :with => /\A\d+\Z/ diff --git a/activemodel/test/cases/validations/inclusion_validation_test.rb b/activemodel/test/cases/validations/inclusion_validation_test.rb index e6adb6d187..92c473de0e 100644 --- a/activemodel/test/cases/validations/inclusion_validation_test.rb +++ b/activemodel/test/cases/validations/inclusion_validation_test.rb @@ -86,13 +86,4 @@ class InclusionValidationTest < ActiveModel::TestCase p.title = "elephant" assert p.valid? end - - def test_validates_inclustion_with_invalid_lambda_return - Topic.validates_inclusion_of :title, :in => lambda{ |topic| false } - - p = Topic.new - p.title = "monkey" - p.author_name = "sikachu" - assert_raise(ArgumentError){ p.valid? } - end end -- cgit v1.2.3