From 607b01e82ea294068fdd554e59bc8e5fe3f9761a Mon Sep 17 00:00:00 2001 From: Brice Figureau Date: Sat, 6 Jun 2009 12:58:26 +0200 Subject: Fix #2246 - take2: make sure we run the rails tag query only when needed Adding the tags to the rails collect query can reduce performance because there are 2 more tables to join with. So we make sure to include tags in the query only when it is necessary. Signed-off-by: Brice Figureau --- spec/unit/parser/collector.rb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'spec/unit/parser') diff --git a/spec/unit/parser/collector.rb b/spec/unit/parser/collector.rb index c2d5a991b..926033c68 100755 --- a/spec/unit/parser/collector.rb +++ b/spec/unit/parser/collector.rb @@ -505,7 +505,17 @@ describe Puppet::Parser::Collector, "when building its ActiveRecord query for co @collector.evaluate.should == [@resource] end - it "should return parameter names, parameter values and tags when querying ActiveRecord" do + it "should return parameter names, parameter values when querying ActiveRecord" do + Puppet::Rails::Resource.stubs(:find).with { |*arguments| + options = arguments[3] + options[:include] == {:param_values => :param_name} + }.returns([@resource]) + + @collector.evaluate.should == [@resource] + end + + it "should return tags when querying ActiveRecord with a tag exported query" do + @collector.equery = "puppet_tags.name = test" Puppet::Rails::Resource.stubs(:find).with { |*arguments| options = arguments[3] options[:include] == {:param_values => :param_name, :puppet_tags => :resource_tags} -- cgit