2.3.3 update broke my test suite

hello,

The recent update to 2.3.3 is breaking my entire suite with the same
error. I guess something in the load order changed?

e.g.:

Fixture::FormatError in ‘PublishedGallery Methods#thumbnail should
delegate to its lead asset’
a YAML error occurred parsing /Users/mpd/timber/spec/fixtures/
galleries.yml. Please note that YAML must be consistently indented
using spaces. Tabs are not allowed. Please have a look at
http://www.yaml.org/faq.html
The exact error was:
NoMethodError: undefined method `abstract_class?’ for Object:Class

The YAML error is a red herring. Every spec failure mentions the same
error, but the fixture files are all fine. This is happening with both
rspec 1.2.7 and 1.2.8.

Switching RAILS_GEM_VERSION back to 2.3.2 in environment.rb
immediately re-greens the entire suite with no other changes (in both
above-mentioned versions of rspec,) and running in dev mode seems to
be ok, so I’m guessing it’s just something with my test env setup.
However I get no stack trace output or anything for the failures,
other than a message similar to the above. I’m hitting a wall here.

Any ideas?

thanks.

Captured a backtrace for this:

/opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/
fixtures.rb:745:in parse_yaml_string' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ fixtures.rb:697:inread_yaml_fixture_files’
/opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/
fixtures.rb:684:in read_fixture_files' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ fixtures.rb:545:ininitialize’
/opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/
fixtures.rb:505:in new' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ fixtures.rb:505:increate_fixtures’
/opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/
fixtures.rb:504:in map' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ fixtures.rb:504:increate_fixtures’
/opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/
connection_adapters/mysql_adapter.rb:264:in
disable_referential_integrity' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ fixtures.rb:501:increate_fixtures’
/opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/
base.rb:1448:in silence' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ fixtures.rb:500:increate_fixtures’
/opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/
fixtures.rb:961:in load_fixtures' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ fixtures.rb:926:insetup_fixtures’
/opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/
active_support/callbacks.rb:178:in send' /opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/ active_support/callbacks.rb:178:inevaluate_method’
/opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/
active_support/callbacks.rb:166:in call' /opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/ active_support/callbacks.rb:90:inrun’
/opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/
active_support/callbacks.rb:90:in each' /opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/ active_support/callbacks.rb:90:insend’
/opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/
active_support/callbacks.rb:90:in run' /opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/ active_support/callbacks.rb:276:inrun_callbacks’
/opt/local/lib/ruby/gems/1.8/gems/rspec-rails-1.2.7.1/lib/spec/rails/
interop/testcase.rb:7:
/opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/
example_methods.rb:70:in instance_eval' /opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/ example_methods.rb:70:ineval_each_fail_fast’
/opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/
example_methods.rb:70:in each' /opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/ example_methods.rb:70:ineval_each_fail_fast’
/opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/
example_group_hierarchy.rb:17:in run_before_each' /opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/ example_methods.rb:103:inrun_before_each’
/opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/
example_methods.rb:124:in before_each_example' /opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/ example_methods.rb:39:inexecute’
/opt/local/lib/ruby/1.8/timeout.rb:53:in timeout' /opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/ example_methods.rb:37:inexecute’
/opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/
example_group_methods.rb:207:in run_examples' /opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/ example_group_methods.rb:205:ineach’
/opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/
example_group_methods.rb:205:in run_examples' /opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/ example_group_methods.rb:103:inrun’
/opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/runner/
example_group_runner.rb:23:in run' /opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/runner/ example_group_runner.rb:22:ineach’
/opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/runner/
example_group_runner.rb:22:in run' /opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/runner/ options.rb:127:inrun_examples’
/opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/runner/
command_line.rb:9:in run' /opt/local/lib/ruby/gems/1.8/gems/rspec-1.2.8/bin/spec:4: /opt/local/bin/spec:19:inload’
/opt/local/bin/spec:19:

the trace is the same on every failure.

No takers. Bummer.

Is there anywhere else I could go with this question? IRC was no help,
and there’s no answer from the rspec list either.

I’d really like to solve this problem. It’s holding up development.

thanks.

On Mon, Jul 20, 2009 at 3:36 PM, mpd [email protected] wrote:

a YAML error occurred parsing /Users/mpd/timber/spec/fixtures/
Switching RAILS_GEM_VERSION back to 2.3.2 in environment.rb
immediately re-greens the entire suite with no other changes (in both
above-mentioned versions of rspec,) and running in dev mode seems to
be ok, so I’m guessing it’s just something with my test env setup.
However I get no stack trace output or anything for the failures,
other than a message similar to the above. I’m hitting a wall here.

Any ideas?

thanks.

Hi, are you sure that all the gems and plugins that you’re using within
your Rails application supported with 2.3.3? Did you include any fixes
in 2.3.2 that were fixed by 2.3.3. Next, can you produce a minimum set
of files to reproduce the issue? If so, I would recommend posting a
bug report here:

https://rails.lighthouseapp.com/projects/8994-ruby-on-rails

Good look,

-Conrad

On Jul 21, 5:17 pm, Conrad T. [email protected] wrote:

delegate to its lead asset’

-Conrad
Thank you for responding. I can’t come up with minimum set of files to
reproduce
without giving out code that I don’t have license to give out,
unfortunately.

I’ve dug further into this, and the failure seems to be from ERB:

code fragment at http://pastie.org/555427

erb_render is returning an empty string when running tests in 2.3.3,
while it returns
the expected rendered ERB text in 2.3.2.

My code base does not monkeypatch ERB in any way, nor do any of the
plugins.
None of that code changed within Rails between 2.3.2 and 2.3.3 anyway.

ERB does render correctly when tested via script/console in 2.3.3

I’m happy to file a bug report, but this is far more likely a problem
with my configuration, rather than a Rails bug.

I just don’t know what it could be.

thanks again.