summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff McCune <jeff@puppetlabs.com>2012-11-26 11:41:34 -0800
committerJeff McCune <jeff@puppetlabs.com>2012-11-26 11:41:34 -0800
commit06952967bf2283604d8e195cdea08df417f07deb (patch)
tree984e6505a94ef4733659b7c0ce69d2defeb2a5c4
parent32419e77edd2908f767490f00e5d333ea80d046c (diff)
parent9224e370766b71db2793736ed9c74c82aa28d1bf (diff)
downloadpuppet-stdlib-06952967bf2283604d8e195cdea08df417f07deb.tar.gz
puppet-stdlib-06952967bf2283604d8e195cdea08df417f07deb.tar.bz2
Merge branch '4.x'
* 4.x: (#14670) Fixup file_line autorequire specs (#14670) autorequire a file_line resource's path
-rw-r--r--lib/puppet/type/file_line.rb5
-rw-r--r--spec/unit/puppet/type/file_line_spec.rb18
2 files changed, 23 insertions, 0 deletions
diff --git a/lib/puppet/type/file_line.rb b/lib/puppet/type/file_line.rb
index 6b35902..f71a4bc 100644
--- a/lib/puppet/type/file_line.rb
+++ b/lib/puppet/type/file_line.rb
@@ -50,6 +50,11 @@ Puppet::Type.newtype(:file_line) do
end
end
+ # Autorequire the file resource if it's being managed
+ autorequire(:file) do
+ self[:path]
+ end
+
validate do
unless self[:line] and self[:path]
raise(Puppet::Error, "Both line and path are required attributes")
diff --git a/spec/unit/puppet/type/file_line_spec.rb b/spec/unit/puppet/type/file_line_spec.rb
index e1c07ac..0cd8a26 100644
--- a/spec/unit/puppet/type/file_line_spec.rb
+++ b/spec/unit/puppet/type/file_line_spec.rb
@@ -48,4 +48,22 @@ describe Puppet::Type.type(:file_line) do
it 'should default to ensure => present' do
file_line[:ensure].should eq :present
end
+
+ it "should autorequire the file it manages" do
+ catalog = Puppet::Resource::Catalog.new
+ file = Puppet::Type.type(:file).new(:name => "/tmp/path")
+ catalog.add_resource file
+ catalog.add_resource file_line
+
+ relationship = file_line.autorequire.find do |rel|
+ (rel.source.to_s == "File[/tmp/path]") and (rel.target.to_s == file_line.to_s)
+ end
+ relationship.should be_a Puppet::Relationship
+ end
+
+ it "should not autorequire the file it manages if it is not managed" do
+ catalog = Puppet::Resource::Catalog.new
+ catalog.add_resource file_line
+ file_line.autorequire.should be_empty
+ end
end