diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2011-09-01 15:00:31 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2011-09-01 15:08:19 -0700 |
commit | 6f3c6992c529a09c8f8bfdb1f714bb8ff1e23300 (patch) | |
tree | e7439b62a6c946b8bb0d05e93ba47dc9c3836a6e /activerecord/test/cases | |
parent | 8b9ddbd8f912d4aac475bcbcbd3e3d39b9b73bf9 (diff) | |
download | rails-6f3c6992c529a09c8f8bfdb1f714bb8ff1e23300.tar.gz rails-6f3c6992c529a09c8f8bfdb1f714bb8ff1e23300.tar.bz2 rails-6f3c6992c529a09c8f8bfdb1f714bb8ff1e23300.zip |
* Psych errors with poor yaml formatting are proxied. Fixes #2645, #2731
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/fixtures_test.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/activerecord/test/cases/fixtures_test.rb b/activerecord/test/cases/fixtures_test.rb index 913f6a3340..866dcefbab 100644 --- a/activerecord/test/cases/fixtures_test.rb +++ b/activerecord/test/cases/fixtures_test.rb @@ -20,6 +20,7 @@ require 'models/book' require 'models/admin' require 'models/admin/account' require 'models/admin/user' +require 'tempfile' class FixturesTest < ActiveRecord::TestCase self.use_instantiated_fixtures = true @@ -45,6 +46,21 @@ class FixturesTest < ActiveRecord::TestCase end end + def test_broken_yaml_exception + badyaml = Tempfile.new ['foo', '.yml'] + badyaml.write 'a: !ruby.yaml.org,2002:str |\nfoo' + badyaml.flush + + dir = File.dirname badyaml.path + name =File.basename badyaml.path, '.yml' + assert_raises(ActiveRecord::Fixture::FormatError) do + ActiveRecord::Fixtures.create_fixtures(dir, name) + end + ensure + badyaml.close + badyaml.unlink + end + def test_create_fixtures ActiveRecord::Fixtures.create_fixtures(FIXTURES_ROOT, "parrots") assert Parrot.find_by_name('Curious George'), 'George is in the database' |