From 4cc594bd708df1ec67b61833493198ab0009c627 Mon Sep 17 00:00:00 2001 From: Alex MacCaw Date: Sun, 4 May 2008 12:28:08 +0100 Subject: Fix validates_uniqueness_of for SQL keywords [#23 state:resolved] Signed-off-by: Pratik Naik --- activerecord/test/cases/validations_test.rb | 8 ++++++++ activerecord/test/models/guid.rb | 2 ++ activerecord/test/schema/schema.rb | 4 ++++ 3 files changed, 14 insertions(+) create mode 100644 activerecord/test/models/guid.rb (limited to 'activerecord/test') diff --git a/activerecord/test/cases/validations_test.rb b/activerecord/test/cases/validations_test.rb index e3ca8660ac..a4d9da4806 100755 --- a/activerecord/test/cases/validations_test.rb +++ b/activerecord/test/cases/validations_test.rb @@ -5,6 +5,7 @@ require 'models/reply' require 'models/person' require 'models/developer' require 'models/warehouse_thing' +require 'models/guid' # The following methods in Topic are used in test_conditional_validation_* class Topic @@ -493,6 +494,13 @@ class ValidationsTest < ActiveRecord::TestCase end end + def test_validate_uniqueness_with_columns_which_are_sql_keywords + Guid.validates_uniqueness_of :key + g = Guid.new + g.key = "foo" + assert_nothing_raised { !g.valid? } + end + def test_validate_straight_inheritance_uniqueness w1 = IneptWizard.create(:name => "Rincewind", :city => "Ankh-Morpork") assert w1.valid?, "Saving w1" diff --git a/activerecord/test/models/guid.rb b/activerecord/test/models/guid.rb new file mode 100644 index 0000000000..9208dc28fa --- /dev/null +++ b/activerecord/test/models/guid.rb @@ -0,0 +1,2 @@ +class Guid < ActiveRecord::Base +end \ No newline at end of file diff --git a/activerecord/test/schema/schema.rb b/activerecord/test/schema/schema.rb index 818237f076..423929fd55 100644 --- a/activerecord/test/schema/schema.rb +++ b/activerecord/test/schema/schema.rb @@ -403,6 +403,10 @@ ActiveRecord::Schema.define do create_table(t, :force => true) { } end + create_table :guids, :force => true do |t| + t.column :key, :string + end + except 'SQLite' do # fk_test_has_fk should be before fk_test_has_pk create_table :fk_test_has_fk, :force => true do |t| -- cgit v1.2.3