1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Fix column type detection while loading fixtures. Closes #7987 [roderickvd]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6798 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
Rick Olson 2007-05-21 18:54:51 +00:00
parent d1c957d067
commit 96bc3d224d
3 changed files with 12 additions and 6 deletions

View file

@ -1,5 +1,7 @@
*SVN* *SVN*
* Fix column type detection while loading fixtures. Closes #7987 [roderickvd]
* Document deep eager includes. #6267 [Josh Susser, Dan Manges] * 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] * Document warning that associations names shouldn't be reserved words. #4378 [murphy@cYcnus.de, Josh Susser]

View file

@ -415,7 +415,7 @@ class Fixture #:nodoc:
klass = @class_name.constantize rescue nil klass = @class_name.constantize rescue nil
list = @fixture.inject([]) do |fixtures, (key, value)| 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") fixtures << ActiveRecord::Base.connection.quote(value, col).gsub('[^\]\\n', "\n").gsub('[^\]\\r', "\r")
end end
list * ', ' list * ', '

View file

@ -12,13 +12,15 @@ class FixturesTest < Test::Unit::TestCase
self.use_instantiated_fixtures = true self.use_instantiated_fixtures = true
self.use_transactional_fixtures = false 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 developers developers_projects entrants
movies projects subscribers topics tasks ) movies projects subscribers topics tasks )
MATCH_ATTRIBUTE_NAME = /[a-zA-Z][-_\w]*/ MATCH_ATTRIBUTE_NAME = /[a-zA-Z][-_\w]*/
BINARY_FIXTURE_PATH = File.dirname(__FILE__) + '/fixtures/flowers.jpg'
def test_clean_fixtures def test_clean_fixtures
FIXTURES.each do |name| FIXTURES.each do |name|
fixtures = nil fixtures = nil
@ -100,7 +102,6 @@ class FixturesTest < Test::Unit::TestCase
assert first assert first
end end
def test_bad_format def test_bad_format
path = File.join(File.dirname(__FILE__), 'fixtures', 'bad_fixtures') path = File.join(File.dirname(__FILE__), 'fixtures', 'bad_fixtures')
Dir.entries(path).each do |file| Dir.entries(path).each do |file|
@ -174,7 +175,6 @@ class FixturesTest < Test::Unit::TestCase
end end
end end
def test_yml_file_in_subdirectory 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).name, "A special category in a subdir file")
assert_equal(categories(:sub_special_1).class, SpecialCategory) assert_equal(categories(:sub_special_1).class, SpecialCategory)
@ -185,7 +185,11 @@ class FixturesTest < Test::Unit::TestCase
assert_equal(categories(:sub_special_3).class, SpecialCategory) assert_equal(categories(:sub_special_3).class, SpecialCategory)
end 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 end
if Account.connection.respond_to?(:reset_pk_sequence!) if Account.connection.respond_to?(:reset_pk_sequence!)