diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2013-11-08 13:57:51 -0200 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2013-11-08 13:59:07 -0200 |
commit | bd09afb5fb3e2047c605660dac6ef4495c419716 (patch) | |
tree | 205df2ab04d92e8093c341e132726325e9c40656 /activerecord/test/cases/base_test.rb | |
parent | 3d5e83fea4cc070fc55da535b7777a914301e284 (diff) | |
download | rails-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.rb | 60 |
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 |