aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorChris Salzberg <chris@dejimata.com>2019-04-13 22:17:54 +0900
committerChris Salzberg <chris@dejimata.com>2019-04-13 22:20:56 +0900
commit42a8340aa8b68a2dafaf7d611ba889a807ec278f (patch)
tree8776078fded5f7b484310c216958c15aab8dc5b3 /activerecord/test
parentcc6bff3daa4da4d2c6935761d0ab059201f772e2 (diff)
downloadrails-42a8340aa8b68a2dafaf7d611ba889a807ec278f.tar.gz
rails-42a8340aa8b68a2dafaf7d611ba889a807ec278f.tar.bz2
rails-42a8340aa8b68a2dafaf7d611ba889a807ec278f.zip
Add validation to subclass in tests to avoid polluting parent class
These two tests currently both define acceptance validators on the same class, Topic. This means that in either one test or the other, there are not one but *two* instances of the LazilyDefineAttributes module builder in the class' ancestors, which can result in unpredictable results. Subclassing Topic in each test avoids conflicts.
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/validations_test.rb12
1 files changed, 7 insertions, 5 deletions
diff --git a/activerecord/test/cases/validations_test.rb b/activerecord/test/cases/validations_test.rb
index 9a70934b7e..4f98a6b7fc 100644
--- a/activerecord/test/cases/validations_test.rb
+++ b/activerecord/test/cases/validations_test.rb
@@ -145,15 +145,17 @@ class ValidationsTest < ActiveRecord::TestCase
end
def test_validates_acceptance_of_with_undefined_attribute_methods
- Topic.validates_acceptance_of(:approved)
- topic = Topic.new(approved: true)
- Topic.undefine_attribute_methods
+ klass = Class.new(Topic)
+ klass.validates_acceptance_of(:approved)
+ topic = klass.new(approved: true)
+ klass.undefine_attribute_methods
assert topic.approved
end
def test_validates_acceptance_of_as_database_column
- Topic.validates_acceptance_of(:approved)
- topic = Topic.create("approved" => true)
+ klass = Class.new(Topic)
+ klass.validates_acceptance_of(:approved)
+ topic = klass.create("approved" => true)
assert topic["approved"]
end