Permalink
Browse files

Fix column type detection while loading fixtures. Closes #7987 [roder…

…ickvd]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6798 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
1 parent d1c957d commit 96bc3d224d42fdd75d104feadc8f93ae41209fcb @technoweenie technoweenie committed May 21, 2007
Showing with 12 additions and 6 deletions.
  1. +2 −0 activerecord/CHANGELOG
  2. +1 −1 activerecord/lib/active_record/fixtures.rb
  3. +9 −5 activerecord/test/fixtures_test.rb
View
2 activerecord/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Fix column type detection while loading fixtures. Closes #7987 [roderickvd]
+
* Document deep eager includes. #6267 [Josh Susser, Dan Manges]
* Document warning that associations names shouldn't be reserved words. #4378 [murphy@cYcnus.de, Josh Susser]
View
2 activerecord/lib/active_record/fixtures.rb
@@ -415,7 +415,7 @@ def value_list
klass = @class_name.constantize rescue nil
list = @fixture.inject([]) do |fixtures, (key, value)|
- col = klass.columns_hash[key] if klass.kind_of?(ActiveRecord::Base)
+ col = klass.columns_hash[key] if klass.respond_to?(:ancestors) && klass.ancestors.include?(ActiveRecord::Base)
fixtures << ActiveRecord::Base.connection.quote(value, col).gsub('[^\]\\n', "\n").gsub('[^\]\\r', "\r")
end
list * ', '
View
14 activerecord/test/fixtures_test.rb
@@ -12,13 +12,15 @@ class FixturesTest < Test::Unit::TestCase
self.use_instantiated_fixtures = true
self.use_transactional_fixtures = false
- fixtures :topics, :developers, :accounts, :tasks, :categories, :funny_jokes
+ fixtures :topics, :developers, :accounts, :tasks, :categories, :funny_jokes, :binaries
- FIXTURES = %w( accounts companies customers
+ FIXTURES = %w( accounts binaries companies customers
developers developers_projects entrants
movies projects subscribers topics tasks )
MATCH_ATTRIBUTE_NAME = /[a-zA-Z][-_\w]*/
+ BINARY_FIXTURE_PATH = File.dirname(__FILE__) + '/fixtures/flowers.jpg'
+
def test_clean_fixtures
FIXTURES.each do |name|
fixtures = nil
@@ -100,7 +102,6 @@ def test_insert_with_datetime
assert first
end
-
def test_bad_format
path = File.join(File.dirname(__FILE__), 'fixtures', 'bad_fixtures')
Dir.entries(path).each do |file|
@@ -174,7 +175,6 @@ def test_omap_fixtures
end
end
-
def test_yml_file_in_subdirectory
assert_equal(categories(:sub_special_1).name, "A special category in a subdir file")
assert_equal(categories(:sub_special_1).class, SpecialCategory)
@@ -185,7 +185,11 @@ def test_subsubdir_file_with_arbitrary_name
assert_equal(categories(:sub_special_3).class, SpecialCategory)
end
-
+ def test_binary_in_fixtures
+ assert_equal 1, @binaries.size
+ data = File.read(BINARY_FIXTURE_PATH).freeze
+ assert_equal data, @flowers.data
+ end
end
if Account.connection.respond_to?(:reset_pk_sequence!)

0 comments on commit 96bc3d2

Please sign in to comment.