Peter Vandenabeele
2012-Jan-15 21:55 UTC
DEPRECATION WARNING: Passing a template handler in the template name is deprecated. (rspec + haml)
I upgraded a small project that I had created on 3.1.3 to 3.2.0.rc2. Running rspec on it brings about a large amount of these messages: DEPRECATION WARNING: Passing a template handler in the template name is deprecated. You can simply remove the handler name or pass render :handlers => [:haml] instead. (called from block (2 levels) in <top (required)> at /home/peterv/data/backed_up/projects/code/contact_app/spec/views/contacts/new.html.haml_spec.rb:12) . The offending code seems to be: spec/views/contacts$ cat -n new.html.haml_spec.rb 1 require ''spec_helper'' 2 3 describe "contacts/new.html.haml" do 4 before(:each) do 5 assign(:contact, stub_model(Contact, 6 :email => "MyString", 7 :person_id => 1 8 ).as_new_record) 9 end 10 11 it "renders new contact form" do 12 render ####### this render seems to trigger it 13 14 # Run the generator again with the --webrat flag if you want to use webrat matchers 15 assert_select "form", :action => contacts_path, :method => "post" do 16 assert_select "input#contact_email", :name => "contact[email]" 17 assert_select "input#contact_person_id", :name => "contact[person_id]" 18 end 19 end 20 end These are the view files (with .haml extensions) app/views/contacts$ ls -l total 20 -rw-rw-r-- 1 peterv peterv 100 2012-01-15 20:12 edit.html.haml -rw-rw-r-- 1 peterv peterv 416 2012-01-15 20:12 _form.html.haml -rw-rw-r-- 1 peterv peterv 404 2012-01-15 20:12 index.html.haml -rw-rw-r-- 1 peterv peterv 66 2012-01-15 20:12 new.html.haml -rw-rw-r-- 1 peterv peterv 171 2012-01-15 20:12 show.html.haml app/views/contacts$ cat -n new.html.haml 1 %h1 New contact 2 3 = render ''form'' 4 5 = link_to ''Back'', contacts_path I just did a bundle update a few hours ago. I show the Gemfile and Gemfile.lock below. I presume this is associated with this commit https://github.com/rails/rails/commit/43d27e9105b385f64ec195f60d10ab3d64281bd4 Is there a way I can fix this myself? I do not really understand what the problem and the proposed solution is ... Thanks, Peter ########################################## cat Gemfile source ''http://rubygems.org'' gem ''rails'', ''3.2.0.rc2'' gem ''pg'' # Gems used only for assets and not required # in production environments by default. group :assets do gem ''sass-rails'' gem ''coffee-rails'' gem ''uglifier'' gem ''bootstrap-sass'' end gem ''jquery-rails'' gem ''therubyracer'' gem ''bcrypt-ruby'' gem ''haml-rails'' gem ''capistrano'' # tools for testing gem "rspec-rails", :group => [:test, :development] group :test do gem "factory_girl_rails" gem "capybara" gem "guard-rspec" gem ''spec_support'' # on Linux gem ''rb-inotify'' unless RUBY_PLATFORM.include?("x86_64-darwin") gem ''libnotify'' unless RUBY_PLATFORM.include?("x86_64-darwin") end # To use debugger # gem ''ruby-debug19'', :require => ''ruby-debug'' ######################################## cat Gemfile.lock GEM remote: http://rubygems.org/ specs: actionmailer (3.2.0.rc2) actionpack (= 3.2.0.rc2) mail (~> 2.3.0) actionpack (3.2.0.rc2) activemodel (= 3.2.0.rc2) activesupport (= 3.2.0.rc2) builder (~> 3.0.0) erubis (~> 2.7.0) journey (~> 1.0.0.rc1) rack (~> 1.4.0) rack-cache (~> 1.1) rack-test (~> 0.6.1) sprockets (~> 2.1.2) activemodel (3.2.0.rc2) activesupport (= 3.2.0.rc2) builder (~> 3.0.0) activerecord (3.2.0.rc2) activemodel (= 3.2.0.rc2) activesupport (= 3.2.0.rc2) arel (~> 3.0.0.rc1) tzinfo (~> 0.3.29) activeresource (3.2.0.rc2) activemodel (= 3.2.0.rc2) activesupport (= 3.2.0.rc2) activesupport (3.2.0.rc2) i18n (~> 0.6) multi_json (~> 1.0) arel (3.0.0) bcrypt-ruby (3.0.1) bootstrap-sass (1.4.3) sass-rails (~> 3.1) builder (3.0.0) capistrano (2.9.0) highline net-scp (>= 1.0.0) net-sftp (>= 2.0.0) net-ssh (>= 2.0.14) net-ssh-gateway (>= 1.1.0) capybara (1.1.2) mime-types (>= 1.16) nokogiri (>= 1.3.3) rack (>= 1.0.0) rack-test (>= 0.5.4) selenium-webdriver (~> 2.0) xpath (~> 0.1.4) childprocess (0.3.0) ffi (~> 1.0.6) coffee-rails (3.2.1) coffee-script (>= 2.2.0) railties (~> 3.2.0.beta) coffee-script (2.2.0) coffee-script-source execjs coffee-script-source (1.2.0) diff-lcs (1.1.3) erubis (2.7.0) execjs (1.2.13) multi_json (~> 1.0) factory_girl (2.4.0) activesupport factory_girl_rails (1.5.0) factory_girl (~> 2.4.0) railties (>= 3.0.0) ffi (1.0.11) guard (0.10.0) ffi (>= 0.5.0) thor (~> 0.14.6) guard-rspec (0.6.0) guard (>= 0.10.0) haml (3.1.4) haml-rails (0.3.4) actionpack (~> 3.0) activesupport (~> 3.0) haml (~> 3.0) railties (~> 3.0) highline (1.6.9) hike (1.2.1) i18n (0.6.0) journey (1.0.0) jquery-rails (2.0.0) railties (>= 3.2.0.beta, < 5.0) thor (~> 0.14) json (1.6.5) libnotify (0.7.1) libv8 (3.3.10.4) mail (2.3.0) i18n (>= 0.4.0) mime-types (~> 1.16) treetop (~> 1.4.8) mime-types (1.17.2) multi_json (1.0.4) net-scp (1.0.4) net-ssh (>= 1.99.1) net-sftp (2.0.5) net-ssh (>= 2.0.9) net-ssh (2.3.0) net-ssh-gateway (1.1.0) net-ssh (>= 1.99.1) nokogiri (1.5.0) pg (0.12.2) polyglot (0.3.3) rack (1.4.0) rack-cache (1.1) rack (>= 0.4) rack-ssl (1.3.2) rack rack-test (0.6.1) rack (>= 1.0) rails (3.2.0.rc2) actionmailer (= 3.2.0.rc2) actionpack (= 3.2.0.rc2) activerecord (= 3.2.0.rc2) activeresource (= 3.2.0.rc2) activesupport (= 3.2.0.rc2) bundler (~> 1.0) railties (= 3.2.0.rc2) railties (3.2.0.rc2) actionpack (= 3.2.0.rc2) activesupport (= 3.2.0.rc2) rack-ssl (~> 1.3.2) rake (>= 0.8.7) rdoc (~> 3.4) thor (~> 0.14.6) rake (0.9.2.2) rb-inotify (0.8.8) ffi (>= 0.5.0) rdoc (3.12) json (~> 1.4) rspec (2.8.0) rspec-core (~> 2.8.0) rspec-expectations (~> 2.8.0) rspec-mocks (~> 2.8.0) rspec-core (2.8.0) rspec-expectations (2.8.0) diff-lcs (~> 1.1.2) rspec-mocks (2.8.0) rspec-rails (2.8.1) actionpack (>= 3.0) activesupport (>= 3.0) railties (>= 3.0) rspec (~> 2.8.0) rubyzip (0.9.5) sass (3.1.12) sass-rails (3.2.3) railties (~> 3.2.0.beta) sass (>= 3.1.10) tilt (~> 1.3) selenium-webdriver (2.16.0) childprocess (>= 0.2.5) ffi (~> 1.0.9) multi_json (~> 1.0.4) rubyzip spec_support (0.0.2) rspec sprockets (2.1.2) hike (~> 1.2) rack (~> 1.0) tilt (~> 1.1, != 1.3.0) therubyracer (0.9.9) libv8 (~> 3.3.10) thor (0.14.6) tilt (1.3.3) treetop (1.4.10) polyglot polyglot (>= 0.3.1) tzinfo (0.3.31) uglifier (1.2.2) execjs (>= 0.3.0) multi_json (>= 1.0.2) xpath (0.1.4) nokogiri (~> 1.3) PLATFORMS ruby DEPENDENCIES bcrypt-ruby bootstrap-sass capistrano capybara coffee-rails factory_girl_rails guard-rspec haml-rails jquery-rails libnotify pg rails (= 3.2.0.rc2) rb-inotify rspec-rails sass-rails spec_support therubyracer uglifier -- Peter Vandenabeele http://twitter.com/peter_v http://rails.vandenabeele.com gsm: +32-478-27.40.69 e-mail: peter-jNuWw7i2w7syMbTcgqFhxg@public.gmane.org -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Matt Jones
2012-Jan-16 13:13 UTC
Re: DEPRECATION WARNING: Passing a template handler in the template name is deprecated. (rspec + haml)
On Jan 15, 3:55 pm, Peter Vandenabeele <pe...-jNuWw7i2w7syMbTcgqFhxg@public.gmane.org> wrote:> I upgraded a small project that I had created on 3.1.3 to 3.2.0.rc2. > > Running rspec on it brings about a large amount of these messages: > > DEPRECATION WARNING: Passing a template handler in the template name is > deprecated. You can simply remove the handler name or pass render :handlers > => [:haml] instead. (called from block (2 levels) in <top (required)> at > /home/peterv/data/backed_up/projects/code/contact_app/spec/views/contacts/n ew.html.haml_spec.rb:12) > . > > The offending code seems to be: > > spec/views/contacts$ cat -n new.html.haml_spec.rb > 1 require ''spec_helper'' > 2 > 3 describe "contacts/new.html.haml" doDoes it go away if you change this to "contacts/new.html"? --Matt Jones -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Peter Vandenabeele
2012-Jan-16 22:41 UTC
Re: Re: DEPRECATION WARNING: Passing a template handler in the template name is deprecated. (rspec + haml)
On Mon, Jan 16, 2012 at 2:13 PM, Matt Jones <al2o3cr-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > On Jan 15, 3:55 pm, Peter Vandenabeele <pe...-jNuWw7i2w7syMbTcgqFhxg@public.gmane.org> wrote: > > I upgraded a small project that I had created on 3.1.3 to 3.2.0.rc2. > > > > Running rspec on it brings about a large amount of these messages: > > > > DEPRECATION WARNING: Passing a template handler in the template name is > > deprecated. You can simply remove the handler name or pass render > :handlers > > => [:haml] instead. (called from block (2 levels) in <top (required)> at > > > /home/peterv/data/backed_up/projects/code/contact_app/spec/views/contacts/n > ew.html.haml_spec.rb:12) > > . > > > > The offending code seems to be: > > > > spec/views/contacts$ cat -n new.html.haml_spec.rb > > 1 require ''spec_helper'' > > 2 > > 3 describe "contacts/new.html.haml" do > > Does it go away if you change this to "contacts/new.html"? >Thanks for the accurate reply :-) With the change you suggested, I still get a deprecation (but it already changed) $ rspec spec/views/contacts/new.html.haml_spec.rb DEPRECATION WARNING: Passing the format in the template name is deprecated. Please pass render with :formats => [:html] instead. (called from block (2 levels) in <top (required)> at /home/peterv/data/backed_up/customers/DDS/contact_app/spec/views/contacts/new.html.haml_spec.rb:12) So, I went 1 step further, and moved to this: -describe "contacts/new.html.haml" do +describe "contacts/new" do And now the result is OK: contact_app$ rspec spec/views/contacts/new.html.haml_spec.rb . Finished in 0.18224 seconds 1 example, 0 failures I assume it was clear that this is all "auto-generated" test code by rspec initializer (that was 2.7 if I see correctly). Now with rspec 2.8.x I added a new resource (foo), and I see that rspec does it the correct way: ... describe "foos/new" do ... So, I presume this also shows the way towards the solution. I now replaced all occurences of this {new|edit|index|show}.html.haml into {new|edit|index|show} and all the deprecations are gone and all tests remain green. This _is_ fixed in rspec 2.8 , I believe with this commit: https://github.com/rspec/rspec-rails/commit/1ccb17cfea27fe189c97cb88619b236e851b6fb9 I presume other users that have autogenerated rspec scaffold tests will be hit by this? Anything can be done there (I asked the question as a comment on that patch on Github). Thanks again, Peter -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.