Guest User

Untitled

a guest
Jul 21st, 2018
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.11 KB | None | 0 0
  1. # controller-spec (abbrev.):
  2.  
  3. require File.dirname(__FILE__) + '/../spec_helper'
  4.  
  5. describe UsersController do
  6. integrate_views
  7. include Authlogic::TestCase
  8.  
  9. before(:each) do
  10. activate_authlogic
  11. @user = Factory(:user)
  12. #@user = User.create(:login => 'foobar', :password => 'foobar', :password_confirmation => 'foobar', :email => 'foobar@foobar.com')
  13. UserSession.create @user
  14. end
  15.  
  16. describe "edit action" do
  17.  
  18. it "should render edit template" do
  19. get :edit, :id => @user
  20. response.should render_template(:edit)
  21. end
  22. end
  23.  
  24. describe "update action" do
  25.  
  26. it "should render edit template when model is invalid" do
  27. User.any_instance.stubs(:valid?).returns(false)
  28. put :update, :id => @user
  29. response.should render_template(:edit)
  30. end
  31.  
  32. it "should render edit template when model is valid" do
  33. User.any_instance.stubs(:valid?).returns(false)
  34. put :update, :id => @user
  35. response.should render_template(:edit)
  36. end
  37.  
  38. end
  39. end
  40.  
  41. # the problem:
  42.  
  43. 1)
  44. ActiveRecord::RecordInvalid in 'UsersController update action should render edit template when model is valid'
  45. Validation failed:
  46. /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/validations.rb:1090:in `save_without_dirty!'
  47. /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/dirty.rb:87:in `save_without_transactions!'
  48. /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:200:in `save!'
  49. /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/database_statements.rb:136:in `transaction'
  50. /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:182:in `transaction'
  51. /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:200:in `save!'
  52. /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:208:in `rollback_active_record_state!'
  53. /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:200:in `save!'
  54. /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/proxy/create.rb:6:in `result'
  55. /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:316:in `run'
  56. /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:260:in `create'
  57. /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:291:in `send'
  58. /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:291:in `default_strategy'
  59. /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl.rb:21:in `Factory'
  60. ./spec/controllers/users_controller_spec.rb:9:
  61.  
  62. 2)
  63. ActiveRecord::RecordInvalid in 'UsersController edit action should render edit template'
  64. Validation failed:
  65. /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/validations.rb:1090:in `save_without_dirty!'
  66. /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/dirty.rb:87:in `save_without_transactions!'
  67. /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:200:in `save!'
  68. /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/database_statements.rb:136:in `transaction'
  69. /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:182:in `transaction'
  70. /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:200:in `save!'
  71. /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:208:in `rollback_active_record_state!'
  72. /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:200:in `save!'
  73. /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/proxy/create.rb:6:in `result'
  74. /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:316:in `run'
  75. /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:260:in `create'
  76. /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:291:in `send'
  77. /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:291:in `default_strategy'
  78. /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl.rb:21:in `Factory'
  79. ./spec/controllers/users_controller_spec.rb:9:
  80.  
  81. # line nr 9 is
  82.  
  83. @user = Factory(:user)
  84.  
  85. # the problem: the error message doesn't say _what_ validation failed.
  86.  
  87. # So i added a login-statement:
  88.  
  89. $cust_log.debug(@user.errors.inspect)
  90.  
  91. and this is what i get:
  92.  
  93. #<ActiveRecord::Errors:0xb6936a14 @base=#<User id: 26, login: "Helen_Davis", email: "qmiller@privacy.net", crypted_password: "0bcbf14086fb0f5558031820f10b3d55d462dedd3e4433e4ed7...", password_salt: "DeoerZgy2Bxhm4WvIIas", persistence_token: "5b7622c5b78fad690a28a59c8097b868092aeae5c8f8402fcde...", perishable_token: "2kE6dpJlHx98-KD2UkvT", first_name: "Michael", last_name: "Lewis", login_count: 1, failed_login_count: 0, last_request_at: "2009-12-28 22:40:15", current_login_at: "2009-12-28 22:40:15", last_login_at: nil, current_login_ip: "0.0.0.0", last_login_ip: nil, created_at: "2009-12-28 22:40:15", updated_at: "2009-12-28 22:40:15">, @errors=#<OrderedHash {}>>
  94.  
  95. # But what now?
  96.  
  97. # I should add that:
  98. # - I can run Factory(:user) a thousand times in any environment without any errors
  99. # - using: User.create(:login => 'foobar', :password => 'foobar', :password_confirmation => 'foobar', :email => 'foobar@foobar.com') gives me the same error
  100.  
  101. # at last, the relevant part of my spec_helper.rb:
  102.  
  103. ENV["RAILS_ENV"] ||= 'test'
  104. require File.expand_path(File.join(File.dirname(__FILE__),'..','config','environment'))
  105. require 'spec/autorun'
  106. require 'spec/rails'
  107. require "authlogic/test_case"
  108. require 'factory_girl'
  109. require 'spec/factories.rb'
  110. #require 'active_record/fixtures'
  111. require 'webrat_rspec_rails'
  112. require 'action_controller/test_process'
Add Comment
Please, Sign In to add comment