提交 558334a8 编写于 作者: A Aaron Patterson

deprecating CSV fixture support

上级 714fea81
*Rails 3.1.0 (unreleased)* *Rails 3.1.0 (unreleased)*
* CSV Fixtures are deprecated and support will be removed in Rails 3.2.0
* AR#new, AR#create and AR#update_attributes all accept a second hash as option that allows you * AR#new, AR#create and AR#update_attributes all accept a second hash as option that allows you
to specify which role to consider when assigning attributes. This is built on top of ActiveModel's to specify which role to consider when assigning attributes. This is built on top of ActiveModel's
new mass assignment capabilities: new mass assignment capabilities:
......
...@@ -29,11 +29,9 @@ class FixturesFileNotFound < StandardError; end ...@@ -29,11 +29,9 @@ class FixturesFileNotFound < StandardError; end
# #
# = Fixture formats # = Fixture formats
# #
# Fixtures come in 3 flavors: # Fixtures come in 1 flavor:
# #
# 1. YAML fixtures # 1. YAML fixtures
# 2. CSV fixtures
# 3. Single-file fixtures
# #
# == YAML fixtures # == YAML fixtures
# #
...@@ -75,56 +73,6 @@ class FixturesFileNotFound < StandardError; end ...@@ -75,56 +73,6 @@ class FixturesFileNotFound < StandardError; end
# parent_id: 1 # parent_id: 1
# title: Child # title: Child
# #
# == CSV fixtures
#
# Fixtures can also be kept in the Comma Separated Value (CSV) format. Akin to YAML fixtures, CSV fixtures are stored
# in a single file, but instead end with the <tt>.csv</tt> file extension
# (Rails example: <tt><your-rails-app>/test/fixtures/web_sites.csv</tt>).
#
# The format of this type of fixture file is much more compact than the others, but also a little harder to read by us
# humans. The first line of the CSV file is a comma-separated list of field names. The rest of the
# file is then comprised
# of the actual data (1 per line). Here's an example:
#
# id, name, url
# 1, Ruby On Rails, http://www.rubyonrails.org
# 2, Google, http://www.google.com
#
# Should you have a piece of data with a comma character in it, you can place double quotes around that value. If you
# need to use a double quote character, you must escape it with another double quote.
#
# Another unique attribute of the CSV fixture is that it has *no* fixture name like the other two formats. Instead, the
# fixture names are automatically generated by deriving the class name of the fixture file and adding an incrementing
# number to the end. In our example, the 1st fixture would be called "web_site_1" and the 2nd one would be called
# "web_site_2".
#
# Most databases and spreadsheets support exporting to CSV format, so this is a great format for you to choose if you
# have existing data somewhere already.
#
# == Single-file fixtures
#
# This type of fixture was the original format for Active Record that has since been deprecated in
# favor of the YAML and CSV formats.
# Fixtures for this format are created by placing text files in a sub-directory (with the name of the model)
# to the directory appointed by <tt>ActiveSupport::TestCase.fixture_path=(path)</tt> (this is automatically
# configured for Rails, so you can just put your files in <tt><your-rails-app>/test/fixtures/<your-model-name>/</tt> --
# like <tt><your-rails-app>/test/fixtures/web_sites/</tt> for the WebSite model).
#
# Each text file placed in this directory represents a "record". Usually these types of fixtures are named without
# extensions, but if you are on a Windows machine, you might consider adding <tt>.txt</tt> as the extension.
# Here's what the above example might look like:
#
# web_sites/google
# web_sites/yahoo.txt
# web_sites/ruby-on-rails
#
# The file format of a standard fixture is simple. Each line is a property (or column in db speak) and has the syntax
# of "name => value". Here's an example of the ruby-on-rails fixture above:
#
# id => 1
# name => Ruby on Rails
# url => http://www.rubyonrails.org
#
# = Using fixtures in testcases # = Using fixtures in testcases
# #
# Since fixtures are a testing construct, we use them in our unit and functional tests. There are two ways to use the # Since fixtures are a testing construct, we use them in our unit and functional tests. There are two ways to use the
...@@ -177,7 +125,7 @@ class FixturesFileNotFound < StandardError; end ...@@ -177,7 +125,7 @@ class FixturesFileNotFound < StandardError; end
# = Dynamic fixtures with ERB # = Dynamic fixtures with ERB
# #
# Some times you don't care about the content of the fixtures as much as you care about the volume. In these cases, you can # Some times you don't care about the content of the fixtures as much as you care about the volume. In these cases, you can
# mix ERB in with your YAML or CSV fixtures to create a bunch of fixtures for load testing, like: # mix ERB in with your YAML fixtures to create a bunch of fixtures for load testing, like:
# #
# <% for i in 1..1000 %> # <% for i in 1..1000 %>
# fix_<%= i %>: # fix_<%= i %>:
......
...@@ -175,7 +175,9 @@ def test_dirty_dirty_yaml_file ...@@ -175,7 +175,9 @@ def test_dirty_dirty_yaml_file
end end
def test_empty_csv_fixtures def test_empty_csv_fixtures
assert_not_nil ActiveRecord::Fixtures.new( Account.connection, "accounts", 'Account', FIXTURES_ROOT + "/naked/csv/accounts") assert_deprecated do
assert_not_nil ActiveRecord::Fixtures.new( Account.connection, "accounts", 'Account', FIXTURES_ROOT + "/naked/csv/accounts")
end
end end
def test_omap_fixtures def test_omap_fixtures
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册