summaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
authorMax Martin <max@puppetlabs.com>2011-03-08 13:32:25 -0800
committerMax Martin <max@puppetlabs.com>2011-03-08 13:32:25 -0800
commit9d551be70ab2a5d64a75a5c497534b0413cd3d81 (patch)
tree062d88419140fd3d848d68946c76cd3e75baeec5 /spec
parentc3ec3d100fb27211bf86c12bdc759d1fa1afce25 (diff)
parent2a915725adf0ccefcc28653cbba2219925194594 (diff)
downloadpuppet-9d551be70ab2a5d64a75a5c497534b0413cd3d81.tar.gz
puppet-9d551be70ab2a5d64a75a5c497534b0413cd3d81.tar.xz
puppet-9d551be70ab2a5d64a75a5c497534b0413cd3d81.zip
Merge branch 'ticket/next/4798-rdoc-fixes' into next
* ticket/next/4798-rdoc-fixes: (#4798) Make rdoc work if moduledir & manifestdir overlap maint: Fix rdoc when documenting manifest files maint: Move puppetdoc settings to defaults so we can use them in tests
Diffstat (limited to 'spec')
-rw-r--r--spec/fixtures/unit/util/rdoc/basic.pp16
-rw-r--r--spec/integration/application/doc_spec.rb1
-rwxr-xr-xspec/unit/util/rdoc_spec.rb70
3 files changed, 32 insertions, 55 deletions
diff --git a/spec/fixtures/unit/util/rdoc/basic.pp b/spec/fixtures/unit/util/rdoc/basic.pp
new file mode 100644
index 000000000..5616503c1
--- /dev/null
+++ b/spec/fixtures/unit/util/rdoc/basic.pp
@@ -0,0 +1,16 @@
+# im a class
+class foo {
+ file { '/tmp/foo' :
+ ensure => present,
+ }
+}
+
+# im a node
+node gar {
+}
+
+# im a define
+define baz { }
+
+# im a resource
+host { 'cow' : }
diff --git a/spec/integration/application/doc_spec.rb b/spec/integration/application/doc_spec.rb
index d94b3043b..f0b9d7db0 100644
--- a/spec/integration/application/doc_spec.rb
+++ b/spec/integration/application/doc_spec.rb
@@ -7,7 +7,6 @@ describe Puppet::Application::Doc do
include PuppetSpec::Files
it "should not generate an error when module dir overlaps parent of site.pp (#4798)" do
- pending "need to fix as part of fixing Brice's rdoc patch"
begin
# Note: the directory structure below is more complex than it
# needs to be, but it's representative of the directory structure
diff --git a/spec/unit/util/rdoc_spec.rb b/spec/unit/util/rdoc_spec.rb
index 41d4b9cd0..93c4f9bfa 100755
--- a/spec/unit/util/rdoc_spec.rb
+++ b/spec/unit/util/rdoc_spec.rb
@@ -123,63 +123,25 @@ describe Puppet::Util::RDoc do
end
describe "when outputing documentation" do
- before :each do
- @node = stub 'node', :file => "file", :line => 1, :doc => ""
- @class = stub 'class', :file => "file", :line => 4, :doc => ""
- @definition = stub 'definition', :file => "file", :line => 3, :doc => ""
- @ast = stub 'ast', :nodes => { :node => @node }, :hostclasses => { :class => @class }, :definitions => { :definition => @definition }
- end
-
- it "should output doc for ast nodes" do
- @node.expects(:doc)
-
- Puppet::Util::RDoc.output("file", @ast)
- end
-
- it "should output doc for ast classes" do
- @class.expects(:doc)
-
- Puppet::Util::RDoc.output("file", @ast)
- end
-
- it "should output doc for ast definitions" do
- @definition.expects(:doc)
-
- Puppet::Util::RDoc.output("file", @ast)
- end
-
- it "should output doc in order of increasing line number" do
- byline = sequence('byline')
- @node.expects(:doc).in_sequence(byline)
- @definition.expects(:doc).in_sequence(byline)
- @class.expects(:doc).in_sequence(byline)
-
- Puppet::Util::RDoc.output("file", @ast)
- end
-
- it "should not output documentation of ast object of another node" do
- klass = stub 'otherclass', :file => "otherfile", :line => 12, :doc => ""
- @ast.stubs(:hostclasses).returns({ :otherclass => klass })
-
- klass.expects(:doc).never
-
- Puppet::Util::RDoc.output("file", @ast)
+ it "should output doc for ast classes, nodes and definitions in order of increasing line number" do
+ byline = sequence('documentation outputs in line order')
+ Puppet::Util::RDoc.expects(:puts).with("im a class\n").in_sequence(byline)
+ Puppet::Util::RDoc.expects(:puts).with("im a node\n").in_sequence(byline)
+ Puppet::Util::RDoc.expects(:puts).with("im a define\n").in_sequence(byline)
+ # any other output must fail
+ Puppet::Util::RDoc.manifestdoc([my_fixture('basic.pp')])
end
it "should output resource documentation if needed" do
- Puppet.settings.stubs(:[]).with(:document_all).returns(true)
- [@node,@definition].each do |o|
- o.stubs(:code).returns([])
- end
-
- resource = stub_everything 'resource', :line => 1
- resource.stubs(:is_a?).with(Puppet::Parser::AST::ASTArray).returns(false)
- resource.stubs(:is_a?).with(Puppet::Parser::AST::Resource).returns(true)
- @class.stubs(:code).returns([resource])
-
- resource.expects(:doc)
-
- Puppet::Util::RDoc.output("file", @ast)
+ pending "#6634 being fixed"
+ Puppet.settings[:document_all] = true
+ byline = sequence('documentation outputs in line order')
+ Puppet::Util::RDoc.expects(:puts).with("im a class\n").in_sequence(byline)
+ Puppet::Util::RDoc.expects(:puts).with("im a node\n").in_sequence(byline)
+ Puppet::Util::RDoc.expects(:puts).with("im a define\n").in_sequence(byline)
+ Puppet::Util::RDoc.expects(:puts).with("im a resource\n").in_sequence(byline)
+ # any other output must fail
+ Puppet::Util::RDoc.manifestdoc([my_fixture('basic.pp')])
end
end
end