Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on Nov 30, 2024. It is now read-only.

rspec crash when generate description on settingslogic #620

Closed
lidaobing opened this issue May 17, 2012 · 2 comments
Closed

rspec crash when generate description on settingslogic #620

lidaobing opened this issue May 17, 2012 · 2 comments

Comments

@lidaobing
Copy link

backtrace as follows

/var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/settingslogic-2.0.8/lib/settingslogic.rb:173:in `missing_key': Missing setting 'to_ary' in /var/lib/jenkins/jobs/gigabase/workspace/config/application.yml (Settingslogic::MissingSetting)
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/settingslogic-2.0.8/lib/settingslogic.rb:127:in `method_missing'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/settingslogic-2.0.8/lib/settingslogic.rb:77:in `method_missing'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.0/lib/rspec/core/metadata.rb:125:in `flatten'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.0/lib/rspec/core/metadata.rb:125:in `full_description'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.0/lib/rspec/core/metadata.rb:61:in `[]'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/ci_reporter-1.7.0/lib/ci/reporter/rspec.rb:193:in `description_for'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/ci_reporter-1.7.0/lib/ci/reporter/rspec.rb:114:in `example_group_started'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.0/lib/rspec/core/reporter.rb:98:in `block in notify'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.0/lib/rspec/core/reporter.rb:97:in `each'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.0/lib/rspec/core/reporter.rb:97:in `notify'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.0/lib/rspec/core/reporter.rb:50:in `example_group_started'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.0/lib/rspec/core/example_group.rb:331:in `run'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.0/lib/rspec/core/command_line.rb:28:in `block (2 levels) in run'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.0/lib/rspec/core/command_line.rb:28:in `map'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.0/lib/rspec/core/command_line.rb:28:in `block in run'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.0/lib/rspec/core/reporter.rb:34:in `report'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.0/lib/rspec/core/command_line.rb:25:in `run'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.0/lib/rspec/core/runner.rb:66:in `rescue in run'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.0/lib/rspec/core/runner.rb:62:in `run'
    from /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.0/lib/rspec/core/runner.rb:10:in `block in autorun'
@dchelimsky
Copy link
Contributor

This is actually an integration bug somewhere between Settingslogic and Ruby. RSpec is calling flatten on an Array that includes an instance of Settingslogic, which implements method_missing but does not also implement respond_to?. This is arguably a violation of the contract for "method_missing". The problem in Ruby is that flatten calls to_ary[1] on the instance of Settingslogic, looking to catch a NameError, but the settingslogic object raises a MissingSetting instead. I'd raise this issue in the Settingslogic tracker.

[1] http://www.ruby-forum.com/topic/3210037

@hypomodern
Copy link

Necromancy, but I've generated a pull request against Settingslogic to fix this behavior: binarylogic/settingslogic#36

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants