validates_uniqueness_of(*attr_names) w scope not working in unit test

39 views
Skip to first unread message

Erwin

unread,
Nov 8, 2012, 10:27:29 AM11/8/12
to rubyonra...@googlegroups.com
Rails 3.2.8
Very strange , it works in dv mode console , but not in a unit test

class User < ActiveRecord::Base
  belongs_to :subdomain
  validates_uniqueness_of :email, :scope => :subdomain_id

class UserTest < ActiveSupport::TestCase
  def initialize_user
    @booboo = FactoryGirl.create(:subdomain, name: "booboo")
    @coocoo = FactoryGirl.create(:subdomain, name: "coocoo")
    FactoryGirl.create(:user, subdomain_id: @booboo[:id], email: "user...@acme.com", password: "UkZaHWcy", password_confirmation: "UkZaHWcy")
  end

  def teardown
    User.delete_all
    Subdomain.delete_all
  end

 test "should_save_user_with_duplicated_email_in_another_scoped_subdomain" do
    user = FactoryGirl.build(:user, subdomain_id: @coocoo[:id], email: "user...@acme.com", password: "UkZaHWcy", password_confirmation: "UkZaHWcy")
    assert user.save # failing  @messages={:email=>["has already been taken"]}
  end


Now in console
>    @booboo = FactoryGirl.create(:subdomain, name: "booboo")
>    @coocoo = FactoryGirl.create(:subdomain, name: "coocoo")
>     FactoryGirl.create(:user, subdomain_id: @booboo[:id], email: "user...@acme.com", password: "UkZaHWcy", password_confirmation: "UkZaHWcy")
>      user = FactoryGirl.build(:user, subdomain_id: @coocoo[:id], email: "user...@acme.com", password: "UkZaHWcy", password_confirmation: "UkZaHWcy")
>  user.save
  COMMIT
 => true 

why do the same Model have different behaviors in test mode and dev mode ?   any clue ?
thanks for feedback



Erwin

unread,
Nov 8, 2012, 11:05:09 AM11/8/12
to rubyonra...@googlegroups.com
[SOLVED]
weird environment => weird behaviour
I had a duplicated copy of my User model file still in my models folder ...  filename was user_copy.. but containing a User class def..
I guess running in the console, the first user model file was used , but in unit test , the copy was used ...

need a break .. tea time ! not tea party !
Reply all
Reply to author
Forward
0 new messages