You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by "Rhett Sutphin (JIRA)" <ji...@apache.org> on 2009/02/10 06:38:59 UTC
[jira] Commented: (BUILDR-247) JtestR test framework does not pass
configured system properties to runner (Cause: OpenObject does not work
with Hash#only)
[ https://issues.apache.org/jira/browse/BUILDR-247?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12672162#action_12672162 ]
Rhett Sutphin commented on BUILDR-247:
--------------------------------------
Also, here's a monkeypatch you can use to get this fix if you need it before a new release:
# Monkeypatch OpenObject to fix BUILDR-247
class OpenObject < Hash
def initialize(source=nil, &block)
super(&block)
update(source) if source
end
%w([] []= delete to_hash).each do |n|
define_method n do
super
end
end
end
> JtestR test framework does not pass configured system properties to runner (Cause: OpenObject does not work with Hash#only)
> ---------------------------------------------------------------------------------------------------------------------------
>
> Key: BUILDR-247
> URL: https://issues.apache.org/jira/browse/BUILDR-247
> Project: Buildr
> Issue Type: Bug
> Components: Core features, Test frameworks
> Affects Versions: 1.3.3
> Environment: Ruby 1.8.6.
> Reporter: Rhett Sutphin
> Attachments: 0001-Fix-BUILDR-247-redefine-OpenObject-without-a-delega.patch
>
>
> Properties configured with test.using(:jtestr, :properties => { ... }) are not actually passed to the tests when they run.
> Digging into the cause, it appears to come from Buildr::TestFramework::JRubyBased#run, so rspec testing is probably also affected. The root cause is that Hash#only doesn't work if the hash is an OpenObject. Here's a spec that fails:
> describe "Hash#only" do
> it "works with OpenObjects" do
> OpenObject.new({:a => 1, :b => 2, :c => 3}).only(:a).should == { :a => 1 }
> end
> end
> The result of only(:a) is actually an empty hash because OpenObject doesn't delegate has_key? to @hash. It seems like OpenObject either needs to delegate all of Hash's methods to it's internal @hash or it needs to get rid of it.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.