aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/base_test.rb
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2013-11-08 13:57:51 -0200
committerRafael Mendonça França <rafaelmfranca@gmail.com>2013-11-08 13:59:07 -0200
commitbd09afb5fb3e2047c605660dac6ef4495c419716 (patch)
tree205df2ab04d92e8093c341e132726325e9c40656 /activerecord/test/cases/base_test.rb
parent3d5e83fea4cc070fc55da535b7777a914301e284 (diff)
downloadrails-bd09afb5fb3e2047c605660dac6ef4495c419716.tar.gz
rails-bd09afb5fb3e2047c605660dac6ef4495c419716.tar.bz2
rails-bd09afb5fb3e2047c605660dac6ef4495c419716.zip
Don't skip tests if we don't need to.
We can conditional define the tests depending on the adapter or connection. Lets keep the skip for fail tests that need to be fixed.
Diffstat (limited to 'activerecord/test/cases/base_test.rb')
-rw-r--r--activerecord/test/cases/base_test.rb60
1 files changed, 29 insertions, 31 deletions
diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb
index 2d6979238e..cde188f6c3 100644
--- a/activerecord/test/cases/base_test.rb
+++ b/activerecord/test/cases/base_test.rb
@@ -612,18 +612,17 @@ class BasicsTest < ActiveRecord::TestCase
assert_equal 'たこ焼き仮面', weird.なまえ
end
- def test_respect_internal_encoding
- if current_adapter?(:PostgreSQLAdapter)
- skip 'pg does not respect internal encoding and always returns utf8'
- end
- old_default_internal = Encoding.default_internal
- silence_warnings { Encoding.default_internal = "EUC-JP" }
+ unless current_adapter?(:PostgreSQLAdapter)
+ def test_respect_internal_encoding
+ old_default_internal = Encoding.default_internal
+ silence_warnings { Encoding.default_internal = "EUC-JP" }
- Weird.reset_column_information
+ Weird.reset_column_information
- assert_equal ["EUC-JP"], Weird.columns.map {|c| c.name.encoding.name }.uniq
- ensure
- silence_warnings { Encoding.default_internal = old_default_internal }
+ assert_equal ["EUC-JP"], Weird.columns.map {|c| c.name.encoding.name }.uniq
+ ensure
+ silence_warnings { Encoding.default_internal = old_default_internal }
+ end
end
def test_non_valid_identifier_column_name
@@ -1362,34 +1361,33 @@ class BasicsTest < ActiveRecord::TestCase
assert_equal 1, post.comments.length
end
- def test_marshal_between_processes
- skip "can't marshal between processes when using an in-memory db" if in_memory_db?
- skip "fork isn't supported" unless Process.respond_to?(:fork)
+ if Process.respond_to?(:fork) && !in_memory_db?
+ def test_marshal_between_processes
+ # Define a new model to ensure there are no caches
+ if self.class.const_defined?("Post", false)
+ flunk "there should be no post constant"
+ end
- # Define a new model to ensure there are no caches
- if self.class.const_defined?("Post", false)
- flunk "there should be no post constant"
- end
+ self.class.const_set("Post", Class.new(ActiveRecord::Base) {
+ has_many :comments
+ })
- self.class.const_set("Post", Class.new(ActiveRecord::Base) {
- has_many :comments
- })
+ rd, wr = IO.pipe
- rd, wr = IO.pipe
+ ActiveRecord::Base.connection_handler.clear_all_connections!
- ActiveRecord::Base.connection_handler.clear_all_connections!
+ fork do
+ rd.close
+ post = Post.new
+ post.comments.build
+ wr.write Marshal.dump(post)
+ wr.close
+ end
- fork do
- rd.close
- post = Post.new
- post.comments.build
- wr.write Marshal.dump(post)
wr.close
+ assert Marshal.load rd.read
+ rd.close
end
-
- wr.close
- assert Marshal.load rd.read
- rd.close
end
def test_marshalling_new_record_round_trip_with_associations