From 0ec701d50bebf8ebd08015565ec771fb14357d8d Mon Sep 17 00:00:00 2001 From: Kassio Borges Date: Mon, 5 Aug 2013 15:33:12 -0300 Subject: Load fixtures from linked folders --- activerecord/CHANGELOG.md | 4 ++++ activerecord/lib/active_record/fixtures.rb | 4 ++-- activerecord/test/cases/fixtures_test.rb | 2 +- activerecord/test/fixtures/all/admin | 1 + 4 files changed, 8 insertions(+), 3 deletions(-) create mode 120000 activerecord/test/fixtures/all/admin diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index a068d04fbd..5abc84d3fb 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -1,5 +1,9 @@ ## unreleased ## +* Load fixtures from linked folders. + + *Kassio Borges* + * When using optimistic locking, `update` was not passing the column to `quote_value` to allow the connection adapter to properly determine how to quote the value. This was affecting certain databases that use specific colmn types. diff --git a/activerecord/lib/active_record/fixtures.rb b/activerecord/lib/active_record/fixtures.rb index 7a5634f225..1e6b5c5d69 100644 --- a/activerecord/lib/active_record/fixtures.rb +++ b/activerecord/lib/active_record/fixtures.rb @@ -661,7 +661,7 @@ module ActiveRecord end def read_fixture_files - yaml_files = Dir["#{@fixture_path}/**/*.yml"].select { |f| + yaml_files = Dir["#{@fixture_path}/{**,*}/*.yml"].select { |f| ::File.file?(f) } + [yaml_file_path] @@ -752,7 +752,7 @@ module ActiveRecord def fixtures(*fixture_names) if fixture_names.first == :all - fixture_names = Dir["#{fixture_path}/**/*.{yml}"] + fixture_names = Dir["#{fixture_path}/{**,*}/*.{yml}"] fixture_names.map! { |f| f[(fixture_path.size + 1)..-5] } else fixture_names = fixture_names.flatten.map { |n| n.to_s } diff --git a/activerecord/test/cases/fixtures_test.rb b/activerecord/test/cases/fixtures_test.rb index 99dd74c561..4c7da6e5c5 100644 --- a/activerecord/test/cases/fixtures_test.rb +++ b/activerecord/test/cases/fixtures_test.rb @@ -549,7 +549,7 @@ class LoadAllFixturesTest < ActiveRecord::TestCase fixtures :all def test_all_there - assert_equal %w(developers people tasks), fixture_table_names.sort + assert_equal %w(admin/accounts admin/users developers people tasks), fixture_table_names.sort end end diff --git a/activerecord/test/fixtures/all/admin b/activerecord/test/fixtures/all/admin new file mode 120000 index 0000000000..59636afce2 --- /dev/null +++ b/activerecord/test/fixtures/all/admin @@ -0,0 +1 @@ +../admin/ \ No newline at end of file -- cgit v1.2.3