diff options
author | Sean Griffin <sean@seantheprogrammer.com> | 2015-09-21 11:36:55 -0600 |
---|---|---|
committer | Sean Griffin <sean@seantheprogrammer.com> | 2015-09-21 11:37:36 -0600 |
commit | 926002a7f39ef185f4a9f9ec1264204230f895ab (patch) | |
tree | a269abe188b8b2efb46bf8ac8b084b8dabfdd283 | |
parent | 9cc324a3f1348430e5b6db58bbddab5090c708c8 (diff) | |
download | rails-926002a7f39ef185f4a9f9ec1264204230f895ab.tar.gz rails-926002a7f39ef185f4a9f9ec1264204230f895ab.tar.bz2 rails-926002a7f39ef185f4a9f9ec1264204230f895ab.zip |
Skip the test added in 9cc324a on buggy versions of SQlite
See 7dcfc25e7c52682a4343c2ba7188a69e7c06c936 for more details
-rw-r--r-- | activerecord/test/cases/relation_test.rb | 29 | ||||
-rw-r--r-- | activerecord/test/cases/relations_test.rb | 10 |
2 files changed, 22 insertions, 17 deletions
diff --git a/activerecord/test/cases/relation_test.rb b/activerecord/test/cases/relation_test.rb index 37d3965022..b0fb905760 100644 --- a/activerecord/test/cases/relation_test.rb +++ b/activerecord/test/cases/relation_test.rb @@ -243,18 +243,23 @@ module ActiveRecord end def test_select_quotes_when_using_from_clause - if sqlite3_version_includes_quoting_bug? - skip <<-ERROR.squish - You are using an outdated version of SQLite3 which has a bug in - quoted column names. Please update SQLite3 and rebuild the sqlite3 - ruby gem - ERROR - end + skip_if_sqlite3_version_includes_quoting_bug quoted_join = ActiveRecord::Base.connection.quote_table_name("join") selected = Post.select(:join).from(Post.select("id as #{quoted_join}")).map(&:join) assert_equal Post.pluck(:id), selected end + def test_selecting_aliased_attribute_quotes_column_name_when_from_is_used + skip_if_sqlite3_version_includes_quoting_bug + klass = Class.new(ActiveRecord::Base) do + self.table_name = :test_with_keyword_column_name + alias_attribute :description, :desc + end + klass.create!(description: "foo") + + assert_equal ["foo"], klass.select(:description).from(klass.all).map(&:desc) + end + def test_relation_merging_with_merged_joins_as_strings join_string = "LEFT OUTER JOIN #{Rating.quoted_table_name} ON #{SpecialComment.quoted_table_name}.id = #{Rating.quoted_table_name}.comment_id" special_comments_with_ratings = SpecialComment.joins join_string @@ -292,6 +297,16 @@ module ActiveRecord private + def skip_if_sqlite3_version_includes_quoting_bug + if sqlite3_version_includes_quoting_bug? + skip <<-ERROR.squish + You are using an outdated version of SQLite3 which has a bug in + quoted column names. Please update SQLite3 and rebuild the sqlite3 + ruby gem + ERROR + end + end + def sqlite3_version_includes_quoting_bug? if current_adapter?(:SQLite3Adapter) selected_quoted_column_names = ActiveRecord::Base.connection.exec_query( diff --git a/activerecord/test/cases/relations_test.rb b/activerecord/test/cases/relations_test.rb index 5aa0ea85a5..8256762f96 100644 --- a/activerecord/test/cases/relations_test.rb +++ b/activerecord/test/cases/relations_test.rb @@ -1897,14 +1897,4 @@ class RelationTest < ActiveRecord::TestCase def test_relation_join_method assert_equal 'Thank you for the welcome,Thank you again for the welcome', Post.first.comments.join(",") end - - def test_selecting_aliased_attribute_quotes_column_name_when_from_is_used - klass = Class.new(ActiveRecord::Base) do - self.table_name = :test_with_keyword_column_name - alias_attribute :description, :desc - end - klass.create!(description: "foo") - - assert_equal ["foo"], klass.select(:description).from(klass.all).map(&:desc) - end end |