summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-09-19 18:04:20 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-09-19 18:04:20 +0000
commit3891f48119ea01d04d7495cf2f07a9ddb37b2afc (patch)
tree564c02bc5cc3498a440ddea80e96a8852791c528
parentdcab464f8db80e6d8c91a595a77875222f2927bf (diff)
downloadpuppet-3891f48119ea01d04d7495cf2f07a9ddb37b2afc.tar.gz
Converting to using the Rakefile for testing. The old 'test' script is
now deprecated, and I'll send an email to the dev list and update the docs to reflect that. This still isn't the final solution, because the module structure is a bit weird, but at least it's a starting point, and everything from here on out is small changes, as opposed to large architectural changes. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1632 980ebf18-57e1-0310-9a29-db15c13687c0
-rw-r--r--test/Rakefile31
-rwxr-xr-xtest/certmgr/certmgr.rb9
-rw-r--r--test/client/client.rb15
-rw-r--r--test/client/master.rb11
-rw-r--r--test/client/pelement.rb11
-rwxr-xr-xtest/executables/puppetbin.rb11
-rwxr-xr-xtest/executables/puppetca.rb11
-rwxr-xr-xtest/executables/puppetd.rb11
-rwxr-xr-xtest/executables/puppetmasterd.rb13
-rwxr-xr-xtest/executables/puppetmodule.rb23
-rwxr-xr-xtest/language/ast.rb9
-rwxr-xr-xtest/language/functions.rb9
-rwxr-xr-xtest/language/interpreter.rb11
-rw-r--r--test/language/lexer.rb11
-rw-r--r--test/language/node.rb9
-rw-r--r--test/language/parser.rb9
-rwxr-xr-xtest/language/rails.rb9
-rwxr-xr-xtest/language/scope.rb9
-rwxr-xr-xtest/language/snippets.rb35
-rwxr-xr-xtest/language/transportable.rb9
-rw-r--r--test/lib/puppettest.rb74
-rw-r--r--test/lib/puppettest/exetest.rb4
-rw-r--r--test/lib/puppettest/fakes.rb4
-rw-r--r--test/lib/puppettest/filetesting.rb (renamed from test/lib/puppettest/support/file.rb)7
-rw-r--r--test/lib/puppettest/parsertesting.rb (renamed from test/lib/puppettest/support/parser.rb)5
-rw-r--r--test/lib/puppettest/servertest.rb2
-rw-r--r--test/lib/puppettest/support.rb10
-rw-r--r--test/lib/puppettest/support/assertions.rb4
-rw-r--r--test/lib/puppettest/support/helpers.rb4
-rw-r--r--test/lib/puppettest/support/utils.rb16
-rw-r--r--test/other/autoload.rb9
-rwxr-xr-xtest/other/config.rb9
-rwxr-xr-xtest/other/events.rb9
-rwxr-xr-xtest/other/filetype.rb9
-rw-r--r--test/other/inifile.rb9
-rwxr-xr-xtest/other/loadedfile.rb9
-rw-r--r--test/other/log.rb9
-rw-r--r--test/other/metrics.rb9
-rwxr-xr-xtest/other/overrides.rb9
-rw-r--r--test/other/provider.rb9
-rwxr-xr-xtest/other/puppet.rb9
-rwxr-xr-xtest/other/relationships.rb9
-rwxr-xr-xtest/other/report.rb9
-rwxr-xr-xtest/other/storage.rb9
-rw-r--r--test/other/transactions.rb11
-rwxr-xr-xtest/providers/group.rb9
-rw-r--r--test/providers/nameservice.rb9
-rw-r--r--test/providers/package.rb9
-rw-r--r--test/providers/provider.rb9
-rw-r--r--test/providers/user.rb9
-rwxr-xr-xtest/puppet/conffiles.rb9
-rwxr-xr-xtest/puppet/defaults.rb9
-rwxr-xr-xtest/puppet/errortest.rb9
-rw-r--r--test/puppettest.rb1320
-rwxr-xr-xtest/server/authconfig.rb11
-rwxr-xr-xtest/server/authstore.rb15
-rw-r--r--test/server/bucket.rb14
-rw-r--r--test/server/ca.rb11
-rwxr-xr-xtest/server/fileserver.rb16
-rw-r--r--test/server/logger.rb11
-rw-r--r--test/server/master.rb15
-rw-r--r--test/server/pelement.rb13
-rwxr-xr-xtest/server/report.rb11
-rwxr-xr-xtest/server/rights.rb11
-rwxr-xr-xtest/server/runner.rb11
-rw-r--r--test/server/server.rb11
-rw-r--r--test/tagging/tagging.rb16
-rwxr-xr-xtest/test61
-rw-r--r--test/types/basic.rb11
-rwxr-xr-xtest/types/component.rb9
-rwxr-xr-xtest/types/cron.rb9
-rwxr-xr-xtest/types/exec.rb9
-rw-r--r--test/types/file.rb9
-rwxr-xr-xtest/types/filebucket.rb9
-rw-r--r--test/types/fileignoresource.rb10
-rwxr-xr-xtest/types/filesources.rb10
-rwxr-xr-xtest/types/group.rb11
-rwxr-xr-xtest/types/host.rb9
-rwxr-xr-xtest/types/mount.rb9
-rw-r--r--test/types/package.rb9
-rw-r--r--test/types/parameter.rb9
-rwxr-xr-xtest/types/port.rb9
-rw-r--r--test/types/query.rb13
-rwxr-xr-xtest/types/schedule.rb9
-rw-r--r--test/types/service.rb17
-rwxr-xr-xtest/types/sshkey.rb9
-rw-r--r--test/types/state.rb9
-rwxr-xr-xtest/types/symlink.rb9
-rwxr-xr-xtest/types/tidy.rb9
-rw-r--r--test/types/type.rb9
-rwxr-xr-xtest/types/user.rb11
-rw-r--r--test/types/yumrepo.rb9
-rwxr-xr-xtest/types/zone.rb9
-rwxr-xr-xtest/util/classgen.rb9
-rwxr-xr-xtest/util/execution.rb9
-rwxr-xr-xtest/util/package.rb9
-rwxr-xr-xtest/util/utiltest.rb9
97 files changed, 263 insertions, 2170 deletions
diff --git a/test/Rakefile b/test/Rakefile
index e1fc374b0..463c7a9a1 100644
--- a/test/Rakefile
+++ b/test/Rakefile
@@ -7,26 +7,19 @@ $exclusions = %W(lib data)
$test_dirs = [] # this is used to generate all the targets.
$test_files = [] # this is ONLY used for the top-level test suite.
-# this basically amounts to:
-# find $(pwd) -type d -maxdepth 1 | xargs basename
-# with an exclusion list.
+# Collect all of our test directories, skipping specifically excluded dirs.
+$test_dirs = Dir.glob("*").find_all { |f| directory?(f) }.reject { |d|
+ $exclusions.include?(File.basename(d))
+}
-find(Dir.pwd) do |path|
- if File.basename(path) =~ /^\.+/
- prune
- elsif path != Dir.pwd and directory? path and !$exclusions.include? File.basename(path)
- $test_dirs.push File.basename(path)
- prune
- end
-end
-
-# another find for the test files themselves: this could probably be rolled into the original find loop.
+# another find for the test files themselves: this could probably be rolled
+# into the original find loop.
$test_dirs.each do |dir|
find(dir) do |path|
if File.basename(path) =~ /^\.+/
prune
- elsif path != dir and !directory? path
+ elsif path != dir and ! directory?(path)
$test_files.push path
end
end
@@ -35,12 +28,14 @@ end
desc "Run the full test suite"
Rake::TestTask.new 'test' do |t|
t.libs << 'lib'
- t.test_files = $test_files.dup
+ t.test_files = $test_files.sort
t.verbose = true
end
#task :test => $test_dirs
-$test_dirs.each do |path|
+task :default => :test
+
+$test_dirs.sort.each do |path|
files = []
find(path) do |file|
@@ -53,7 +48,7 @@ $test_dirs.each do |path|
Rake::TestTask.new path.to_sym do |t|
t.libs << 'lib'
- t.test_files = files
+ t.test_files = files.sort
t.verbose = true
end
@@ -69,3 +64,5 @@ $test_dirs.each do |path|
end
end
end
+
+# $Id$
diff --git a/test/certmgr/certmgr.rb b/test/certmgr/certmgr.rb
index 2275e9953..cc95822ee 100755
--- a/test/certmgr/certmgr.rb
+++ b/test/certmgr/certmgr.rb
@@ -1,14 +1,7 @@
#!/usr/bin/ruby
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/sslcertificates.rb'
-require 'test/unit'
require 'puppettest'
# so, what kind of things do we want to test?
@@ -21,7 +14,7 @@ require 'puppettest'
# and test whether we've got things in the right scopes
class TestCertMgr < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
#@dir = File.join(Puppet[:certdir], "testing")
diff --git a/test/client/client.rb b/test/client/client.rb
index fa382392e..7d02f7acf 100644
--- a/test/client/client.rb
+++ b/test/client/client.rb
@@ -1,19 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/client'
require 'puppet/server'
-require 'test/unit'
-require 'puppettest.rb'
-
-# $Id$
+require 'puppettest'
class TestClient < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
# a single run through of connect, auth, etc.
def test_sslInitWithAutosigningLocalServer
# autosign everything, for simplicity
@@ -195,3 +186,5 @@ class TestClient < Test::Unit::TestCase
"PID file was not created")
end
end
+
+# $Id$
diff --git a/test/client/master.rb b/test/client/master.rb
index 2f88123b5..2b6688979 100644
--- a/test/client/master.rb
+++ b/test/client/master.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/client'
require 'puppet/server'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestMasterClient < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
def mkmaster(file = nil)
master = nil
diff --git a/test/client/pelement.rb b/test/client/pelement.rb
index 4d782cf03..d5f8e824a 100644
--- a/test/client/pelement.rb
+++ b/test/client/pelement.rb
@@ -1,19 +1,12 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/client/pelement'
require 'puppet/server'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
# $Id$
class TestPElementClient < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
def mkpelementserver
handlers = {
diff --git a/test/executables/puppetbin.rb b/test/executables/puppetbin.rb
index bde9eaa8b..d7e05a810 100755
--- a/test/executables/puppetbin.rb
+++ b/test/executables/puppetbin.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server'
require 'puppet/sslcertificates'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestPuppetBin < Test::Unit::TestCase
- include ExeTest
+ include PuppetTest::ExeTest
def test_version
output = nil
assert_nothing_raised {
diff --git a/test/executables/puppetca.rb b/test/executables/puppetca.rb
index d21e94e7a..a6ea9aae4 100755
--- a/test/executables/puppetca.rb
+++ b/test/executables/puppetca.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server'
require 'puppet/sslcertificates'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestPuppetCA < Test::Unit::TestCase
- include ExeTest
+ include PuppetTest::ExeTest
def mkcert(hostname)
cert = nil
assert_nothing_raised {
diff --git a/test/executables/puppetd.rb b/test/executables/puppetd.rb
index 700ea5bd3..a1a886a0e 100755
--- a/test/executables/puppetd.rb
+++ b/test/executables/puppetd.rb
@@ -1,18 +1,11 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
require 'socket'
require 'facter'
class TestPuppetDExe < Test::Unit::TestCase
- include ExeTest
+ include PuppetTest::ExeTest
def test_normalstart
# start the master
file = startmasterd
diff --git a/test/executables/puppetmasterd.rb b/test/executables/puppetmasterd.rb
index 92a8c6b84..8d6d30875 100755
--- a/test/executables/puppetmasterd.rb
+++ b/test/executables/puppetmasterd.rb
@@ -1,19 +1,12 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server'
require 'puppet/daemon'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
require 'socket'
require 'facter'
class TestPuppetMasterD < Test::Unit::TestCase
- include ExeTest
+ include PuppetTest::ExeTest
def getcerts
include Puppet::Daemon
if self.readcerts
@@ -101,7 +94,7 @@ class TestPuppetMasterD < Test::Unit::TestCase
end
def disabled_test_sslconnection
- #file = File.join($puppetbase, "examples", "code", "head")
+ #file = File.join(exampledir, "code", "head")
#startmasterd("--manifest #{file}")
#assert_nothing_raised {
diff --git a/test/executables/puppetmodule.rb b/test/executables/puppetmodule.rb
index cff43a0e5..0752fed14 100755
--- a/test/executables/puppetmodule.rb
+++ b/test/executables/puppetmodule.rb
@@ -1,22 +1,19 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server'
require 'puppet/sslcertificates'
-require 'test/unit'
-require 'puppettest.rb'
-
-$module = File.join($puppetbase, "ext", "module_puppet")
+require 'puppettest'
class TestPuppetModule < Test::Unit::TestCase
- include ExeTest
+ include PuppetTest::ExeTest
+
+
+ def setup
+ super
+ @module = File.join(basedir, "ext", "module_puppet")
+ end
def test_existence
- assert(FileTest.exists?($module), "Module does not exist")
+ assert(FileTest.exists?(@module), "Module does not exist")
end
def test_execution
@@ -29,7 +26,7 @@ class TestPuppetModule < Test::Unit::TestCase
}
output = nil
- cmd = $module
+ cmd = @module
cmd += " --verbose"
#cmd += " --fqdn %s" % fqdn
cmd += " --confdir %s" % Puppet[:confdir]
diff --git a/test/language/ast.rb b/test/language/ast.rb
index 5bf0c1e4f..ab528a49d 100755
--- a/test/language/ast.rb
+++ b/test/language/ast.rb
@@ -1,20 +1,13 @@
#!/usr/bin/ruby
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/parser/interpreter'
require 'puppet/parser/parser'
require 'puppet/client'
-require 'test/unit'
require 'puppettest'
class TestAST < Test::Unit::TestCase
- include ParserTesting
+ include PuppetTest::ParserTesting
# A fake class that we can use for testing evaluation.
class FakeAST
diff --git a/test/language/functions.rb b/test/language/functions.rb
index 3ae381d83..2c3246e6a 100755
--- a/test/language/functions.rb
+++ b/test/language/functions.rb
@@ -1,20 +1,13 @@
#!/usr/bin/ruby
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/parser/interpreter'
require 'puppet/parser/parser'
require 'puppet/client'
-require 'test/unit'
require 'puppettest'
class TestLangFunctions < Test::Unit::TestCase
- include ParserTesting
+ include PuppetTest::ParserTesting
def test_functions
assert_raise(Puppet::ParseError) do
Puppet::Parser::AST::Function.new(
diff --git a/test/language/interpreter.rb b/test/language/interpreter.rb
index 36fd5922b..37b4e9022 100755
--- a/test/language/interpreter.rb
+++ b/test/language/interpreter.rb
@@ -1,11 +1,5 @@
#!/usr/bin/ruby
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'facter'
require 'puppet'
@@ -13,12 +7,11 @@ require 'puppet/parser/interpreter'
require 'puppet/parser/parser'
require 'puppet/client'
require 'puppet/rails'
-require 'test/unit'
require 'puppettest'
class TestInterpreter < Test::Unit::TestCase
- include TestPuppet
- include ServerTest
+ include PuppetTest
+ include PuppetTest::ServerTest
AST = Puppet::Parser::AST
# create a simple manifest that uses nodes to create a file
diff --git a/test/language/lexer.rb b/test/language/lexer.rb
index 8b578a3fd..496087ba2 100644
--- a/test/language/lexer.rb
+++ b/test/language/lexer.rb
@@ -1,13 +1,6 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/parser/lexer'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
#%q{service("telnet") = \{
# port => "23",
@@ -17,7 +10,7 @@ require 'puppettest.rb'
#} => [[:NAME, "service"], [:LPAREN, "("], [:DQUOTE, "\""], [:NAME, "telnet"], [:DQUOTE, "\""], [:RPAREN, ")"], [:EQUALS, "="], [:lbrace, "{"], [:NAME, "port"], [:FARROW, "=>"], [:DQUOTE, "\""], [:NAME, "23"], [:DQUOTE, "\""], [:COMMA, ","], [:NAME, "protocol"], [:FARROW, "=>"], [:DQUOTE, "\""], [:NAME, "tcp"], [:DQUOTE, "\""], [:COMMA, ","], [:NAME, "name"], [:FARROW, "=>"], [:DQUOTE, "\""], [:NAME, "telnet"], [:DQUOTE, "\""], [:COMMA, ","], [:RBRACE, "}"]]
class TestLexer < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
@lexer = Puppet::Parser::Lexer.new()
diff --git a/test/language/node.rb b/test/language/node.rb
index a1bb58a9f..791c44874 100644
--- a/test/language/node.rb
+++ b/test/language/node.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/parser/parser'
-require 'test/unit'
require 'puppettest'
class TestParser < Test::Unit::TestCase
- include ParserTesting
+ include PuppetTest::ParserTesting
def setup
super
diff --git a/test/language/parser.rb b/test/language/parser.rb
index 6dd9b4bca..d6e176870 100644
--- a/test/language/parser.rb
+++ b/test/language/parser.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/parser/parser'
-require 'test/unit'
require 'puppettest'
class TestParser < Test::Unit::TestCase
- include ParserTesting
+ include PuppetTest::ParserTesting
def setup
super
Puppet[:parseonly] = true
diff --git a/test/language/rails.rb b/test/language/rails.rb
index df76b4f20..ada4e0915 100755
--- a/test/language/rails.rb
+++ b/test/language/rails.rb
@@ -1,21 +1,14 @@
#!/usr/bin/ruby
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/rails'
require 'puppet/parser/interpreter'
require 'puppet/parser/parser'
require 'puppet/client'
-require 'test/unit'
require 'puppettest'
class TestRails < Test::Unit::TestCase
- include ParserTesting
+ include PuppetTest::ParserTesting
def test_includerails
assert_nothing_raised {
diff --git a/test/language/scope.rb b/test/language/scope.rb
index 3e5b5d24b..85189627d 100755
--- a/test/language/scope.rb
+++ b/test/language/scope.rb
@@ -1,16 +1,9 @@
#!/usr/bin/ruby
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/parser/interpreter'
require 'puppet/parser/parser'
require 'puppet/client'
-require 'test/unit'
require 'puppettest'
# so, what kind of things do we want to test?
@@ -23,7 +16,7 @@ require 'puppettest'
# and test whether we've got things in the right scopes
class TestScope < Test::Unit::TestCase
- include ParserTesting
+ include PuppetTest::ParserTesting
def to_ary(hash)
hash.collect { |key,value|
diff --git a/test/language/snippets.rb b/test/language/snippets.rb
index 2823f89ad..05ac066eb 100755
--- a/test/language/snippets.rb
+++ b/test/language/snippets.rb
@@ -1,32 +1,23 @@
#!/usr/bin/ruby -w
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/parser/interpreter'
require 'puppet/parser/parser'
require 'puppet/client'
require 'puppet/server'
-require 'test/unit'
require 'puppettest'
-# so, what kind of things do we want to test?
-
-# we don't need to test function, since we're confident in the
-# library tests. We do, however, need to test how things are actually
-# working in the language.
-
-# so really, we want to do things like test that our ast is correct
-# and test whether we've got things in the right scopes
-
class TestSnippets < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
include ObjectSpace
- $snippetbase = File.join($puppetbase, "examples", "code", "snippets")
+
+ def self.snippetdir
+ PuppetTest.exampledir "code", "snippets"
+ end
+
+ def snippet(name)
+ File.join(self.class.snippetdir, name)
+ end
def file2ast(file)
parser = Puppet::Parser::Parser.new()
@@ -492,8 +483,8 @@ class TestSnippets < Test::Unit::TestCase
}
end
- # XXX this is the answer
- Dir.entries($snippetbase).sort.each { |file|
+ # Iterate across each of the snippets and create a test.
+ Dir.entries(snippetdir).sort.each { |file|
next if file =~ /^\./
@@ -504,7 +495,7 @@ class TestSnippets < Test::Unit::TestCase
self.send(:define_method, testname) {
# first parse the file
server = Puppet::Server::Master.new(
- :Manifest => File.join($snippetbase, file),
+ :Manifest => snippet(file),
:Local => true
)
client = Puppet::Client::MasterClient.new(
@@ -557,3 +548,5 @@ class TestSnippets < Test::Unit::TestCase
end
}
end
+
+# $Id$
diff --git a/test/language/transportable.rb b/test/language/transportable.rb
index c973583cd..217bb3370 100755
--- a/test/language/transportable.rb
+++ b/test/language/transportable.rb
@@ -1,19 +1,12 @@
#!/usr/bin/ruby
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/transportable'
-require 'test/unit'
require 'puppettest'
require 'yaml'
class TestTransportable < Test::Unit::TestCase
- include ParserTesting
+ include PuppetTest::ParserTesting
def test_yamldumpobject
obj = mk_transobject
diff --git a/test/lib/puppettest.rb b/test/lib/puppettest.rb
index b08cfcfd9..bff410060 100644
--- a/test/lib/puppettest.rb
+++ b/test/lib/puppettest.rb
@@ -1,12 +1,54 @@
-require 'puppettest/support/helpers'
+require 'puppet'
+require 'test/unit'
module PuppetTest
- include PuppetTest::Support::Helpers
+ # Find the root of the Puppet tree; this is not the test directory, but
+ # the parent of that dir.
+ def basedir
+ unless defined? @@basedir
+ case $0
+ when /rake_test_loader/
+ @@basedir = File.dirname(Dir.getwd)
+ else
+ dir = nil
+ if /^#{File::SEPARATOR}.+\.rb/
+ dir = $0
+ else
+ dir = File.join(Dir.getwd, $0)
+ end
+ 3.times { dir = File.dirname(dir) }
+ @@basedir = dir
+ end
+ end
+ @@basedir
+ end
def cleanup(&block)
@@cleaners << block
end
+ def datadir
+ File.join(basedir, "test", "data")
+ end
+
+ def exampledir(*args)
+ unless defined? @@exampledir
+ @@exampledir = File.join(basedir, "examples")
+ end
+
+ if args.empty?
+ return @@exampledir
+ else
+ return File.join(@@exampledir, *args)
+ end
+ end
+
+ module_function :basedir, :datadir, :exampledir
+
+ def rake?
+ $0 =~ /rake_test_loader/
+ end
+
def setup
@memoryatstart = Puppet::Util.memory
if defined? @@testcount
@@ -38,16 +80,27 @@ module PuppetTest
@@cleaners = []
- if $0 =~ /.+\.rb/ or Puppet[:debug]
+ # If we're running under rake, then disable debugging and such.
+ if rake? and ! Puppet[:debug]
+ Puppet::Log.close
+ Puppet::Log.newdestination tempfile()
+ Puppet[:httplog] = tempfile()
+ else
Puppet::Log.newdestination :console
Puppet::Log.level = :debug
#$VERBOSE = 1
Puppet.info @method_name
- else
- Puppet::Log.close
- Puppet::Log.newdestination tempfile()
- Puppet[:httplog] = tempfile()
end
+ #if $0 =~ /.+\.rb/ or Puppet[:debug]
+ # Puppet::Log.newdestination :console
+ # Puppet::Log.level = :debug
+ # #$VERBOSE = 1
+ # Puppet.info @method_name
+ #else
+ # Puppet::Log.close
+ # Puppet::Log.newdestination tempfile()
+ # Puppet[:httplog] = tempfile()
+ #end
Puppet[:ignoreschedules] = true
end
@@ -136,4 +189,11 @@ module PuppetTest
end
end
+require 'puppettest/support'
+require 'puppettest/filetesting'
+require 'puppettest/fakes'
+require 'puppettest/exetest'
+require 'puppettest/parsertesting'
+require 'puppettest/servertest'
+
# $Id$
diff --git a/test/lib/puppettest/exetest.rb b/test/lib/puppettest/exetest.rb
index 2d2a68db1..5f155b47f 100644
--- a/test/lib/puppettest/exetest.rb
+++ b/test/lib/puppettest/exetest.rb
@@ -1,4 +1,4 @@
-require 'servertest'
+require 'puppettest/servertest'
module PuppetTest::ExeTest
include PuppetTest::ServerTest
@@ -10,7 +10,7 @@ module PuppetTest::ExeTest
end
def bindir
- File.join($puppetbase, "bin")
+ File.join(basedir, "bin")
end
def setbindir
diff --git a/test/lib/puppettest/fakes.rb b/test/lib/puppettest/fakes.rb
index 42ba0c6af..0d27faf1f 100644
--- a/test/lib/puppettest/fakes.rb
+++ b/test/lib/puppettest/fakes.rb
@@ -1,4 +1,6 @@
-module PuppetTest::Fakes
+require 'puppettest'
+
+module PuppetTest
# A baseclass for the faketypes.
class FakeModel
class << self
diff --git a/test/lib/puppettest/support/file.rb b/test/lib/puppettest/filetesting.rb
index d2810d4e0..43a2ae1a0 100644
--- a/test/lib/puppettest/support/file.rb
+++ b/test/lib/puppettest/filetesting.rb
@@ -1,4 +1,7 @@
-module PuppetTest::Support::File
+require 'puppettest'
+
+module PuppetTest::FileTesting
+ include PuppetTest
def cycle(comp)
trans = nil
assert_nothing_raised {
@@ -221,7 +224,7 @@ module PuppetTest::Support::File
end
def conffile
- File.join($puppetbase,"examples/root/etc/configfile")
+ exampledir("root/etc/configfile")
end
end
diff --git a/test/lib/puppettest/support/parser.rb b/test/lib/puppettest/parsertesting.rb
index c4db871a5..e0606c501 100644
--- a/test/lib/puppettest/support/parser.rb
+++ b/test/lib/puppettest/parsertesting.rb
@@ -1,4 +1,7 @@
-module PuppetTest::Support::Parser
+require 'puppettest'
+
+module PuppetTest::ParserTesting
+ include PuppetTest
AST = Puppet::Parser::AST
def astarray(*args)
diff --git a/test/lib/puppettest/servertest.rb b/test/lib/puppettest/servertest.rb
index 528b1a0d7..532256d74 100644
--- a/test/lib/puppettest/servertest.rb
+++ b/test/lib/puppettest/servertest.rb
@@ -1,4 +1,4 @@
-require 'scaffold'
+require 'puppettest'
module PuppetTest::ServerTest
include PuppetTest
diff --git a/test/lib/puppettest/support.rb b/test/lib/puppettest/support.rb
index 54b19ba7f..c81b5cd9d 100644
--- a/test/lib/puppettest/support.rb
+++ b/test/lib/puppettest/support.rb
@@ -1,8 +1,8 @@
+require 'puppettest'
+
module PuppetTest::Support
end
-require 'support/assertions'
-require 'support/file'
-require 'support/helpers'
-require 'support/parser'
-require 'support/utils'
+require 'puppettest/support/assertions'
+require 'puppettest/support/helpers'
+require 'puppettest/support/utils'
diff --git a/test/lib/puppettest/support/assertions.rb b/test/lib/puppettest/support/assertions.rb
index 63ce0cccb..0e272002e 100644
--- a/test/lib/puppettest/support/assertions.rb
+++ b/test/lib/puppettest/support/assertions.rb
@@ -1,4 +1,6 @@
-module PuppetTest::Support::Assertions
+require 'puppettest'
+
+module PuppetTest
def assert_rollback_events(events, trans, msg = nil)
run_events(:rollback, events, trans, msg)
end
diff --git a/test/lib/puppettest/support/helpers.rb b/test/lib/puppettest/support/helpers.rb
index 41974d331..7fae994d9 100644
--- a/test/lib/puppettest/support/helpers.rb
+++ b/test/lib/puppettest/support/helpers.rb
@@ -1,4 +1,6 @@
-module PuppetTest::Support::Helpers
+require 'puppettest'
+
+module PuppetTest
def nonrootuser
Etc.passwd { |user|
if user.uid != Process.uid and user.uid > 0
diff --git a/test/lib/puppettest/support/utils.rb b/test/lib/puppettest/support/utils.rb
index 1b22e8d6e..00ea1a1c9 100644
--- a/test/lib/puppettest/support/utils.rb
+++ b/test/lib/puppettest/support/utils.rb
@@ -1,4 +1,6 @@
-module PuppetTest::Support::Utils
+require 'puppettest'
+
+module PuppetTest
def gcdebug(type)
Puppet.warning "%s: %s" % [type, ObjectSpace.each_object(type) { |o| }]
end
@@ -15,7 +17,7 @@ module PuppetTest::Support::Utils
assert_nothing_raised {
file = transport.to_type
}
- end
+ end
# stop any services that might be hanging around
def stopservices
@@ -24,7 +26,7 @@ module PuppetTest::Support::Utils
service[:ensure] = :stopped
service.evaluate
}
- end
+ end
end
# TODO: rewrite this to use the 'etc' module.
@@ -65,7 +67,7 @@ module PuppetTest::Support::Utils
# If there are any fake data files, retrieve them
def fakedata(dir)
- ary = [$puppetbase, "test"]
+ ary = [basedir, "test"]
ary += dir.split("/")
dir = File.join(ary)
@@ -80,7 +82,7 @@ module PuppetTest::Support::Utils
end
def fakefile(name)
- ary = [$puppetbase, "test"]
+ ary = [basedir, "test"]
ary += name.split("/")
file = File.join(ary)
unless FileTest.exists?(file)
@@ -100,7 +102,7 @@ module PuppetTest::Support::Utils
# a list of files that we can parse for testing
def textfiles
- textdir = File.join($puppetbase,"examples","code", "snippets")
+ textdir = File.join(exampledir,"code", "snippets")
Dir.entries(textdir).reject { |f|
f =~ /^\./ or f =~ /fail/
}.each { |f|
@@ -109,7 +111,7 @@ module PuppetTest::Support::Utils
end
def failers
- textdir = File.join($puppetbase,"examples","code", "failers")
+ textdir = File.join(exampledir,"code", "failers")
# only parse this one file now
files = Dir.entries(textdir).reject { |file|
file =~ %r{\.swp}
diff --git a/test/other/autoload.rb b/test/other/autoload.rb
index 95fafbda2..7cbb11c1a 100644
--- a/test/other/autoload.rb
+++ b/test/other/autoload.rb
@@ -1,18 +1,11 @@
#!/usr/bin/env ruby
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/autoload'
require 'puppettest'
-require 'test/unit'
class TestAutoload < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
@things = []
def self.newthing(name)
@things << name
diff --git a/test/other/config.rb b/test/other/config.rb
index 33dad6892..3e2c125c7 100755
--- a/test/other/config.rb
+++ b/test/other/config.rb
@@ -1,18 +1,11 @@
#!/usr/bin/env ruby
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/config'
require 'puppettest'
-require 'test/unit'
class TestConfig < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def check_for_users
count = Puppet::Type.type(:user).inject(0) { |c,o|
diff --git a/test/other/events.rb b/test/other/events.rb
index 967fb9395..ab6270b2b 100755
--- a/test/other/events.rb
+++ b/test/other/events.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../../../../language/trunk"
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
# $Id$
class TestEvents < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def teardown
super
Puppet::Event::Subscription.clear
diff --git a/test/other/filetype.rb b/test/other/filetype.rb
index e16ffd86e..6cd749816 100755
--- a/test/other/filetype.rb
+++ b/test/other/filetype.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/filetype'
require 'puppettest'
-require 'test/unit'
class TestFileType < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_flat
obj = nil
diff --git a/test/other/inifile.rb b/test/other/inifile.rb
index eb2fde83d..113036505 100644
--- a/test/other/inifile.rb
+++ b/test/other/inifile.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/inifile'
require 'puppettest'
-require 'test/unit'
class TestFileType < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
diff --git a/test/other/loadedfile.rb b/test/other/loadedfile.rb
index 1089402a1..8ba45bb81 100755
--- a/test/other/loadedfile.rb
+++ b/test/other/loadedfile.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/loadedfile'
require 'puppettest'
-require 'test/unit'
class TestLoadedFile < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_file
Puppet[:filetimeout] = 0
file = nil
diff --git a/test/other/log.rb b/test/other/log.rb
index eec20b278..750014e05 100644
--- a/test/other/log.rb
+++ b/test/other/log.rb
@@ -1,18 +1,11 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/log'
require 'puppettest'
-require 'test/unit'
# $Id$
class TestLog < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
diff --git a/test/other/metrics.rb b/test/other/metrics.rb
index c6a563bb2..380ee30bd 100644
--- a/test/other/metrics.rb
+++ b/test/other/metrics.rb
@@ -1,14 +1,7 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet/metric'
require 'puppet'
require 'puppettest'
require 'puppet/type'
-require 'test/unit'
$haverrd = true
begin
@@ -19,7 +12,7 @@ end
if $haverrd
class TestMetric < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def gendata
totalmax = 1000
diff --git a/test/other/overrides.rb b/test/other/overrides.rb
index d9220264e..92f4068ef 100755
--- a/test/other/overrides.rb
+++ b/test/other/overrides.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestOverrides < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def mksubdirs(basedir, level)
@@tmpfiles << basedir
dir = basedir.dup
diff --git a/test/other/provider.rb b/test/other/provider.rb
index fc04b9926..771c54bf9 100644
--- a/test/other/provider.rb
+++ b/test/other/provider.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/provider'
require 'puppettest'
-require 'test/unit'
class TestImpl < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
diff --git a/test/other/puppet.rb b/test/other/puppet.rb
index 18600f7a0..76d978c7c 100755
--- a/test/other/puppet.rb
+++ b/test/other/puppet.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
# Test the different features of the main puppet module
class TestPuppetModule < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
include SignalObserver
def mkfakeclient
diff --git a/test/other/relationships.rb b/test/other/relationships.rb
index 83949d1ed..e2d65beb1 100755
--- a/test/other/relationships.rb
+++ b/test/other/relationships.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestRelationships < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def newfile
assert_nothing_raised() {
return Puppet.type(:file).create(
diff --git a/test/other/report.rb b/test/other/report.rb
index 2aa78172c..b98813927 100755
--- a/test/other/report.rb
+++ b/test/other/report.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/transaction/report'
require 'puppettest'
-require 'test/unit'
class TestReports < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
# Make sure we can use reports as log destinations.
def test_reports_as_log_destinations
diff --git a/test/other/storage.rb b/test/other/storage.rb
index 64fddf332..789495fee 100755
--- a/test/other/storage.rb
+++ b/test/other/storage.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestStorage < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def mkfile
path = tempfile()
diff --git a/test/other/transactions.rb b/test/other/transactions.rb
index aea593c1f..e66151979 100644
--- a/test/other/transactions.rb
+++ b/test/other/transactions.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
# $Id$
class TestTransactions < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
def test_reports
path1 = tempfile()
@@ -111,7 +104,7 @@ class TestTransactions < Test::Unit::TestCase
return Puppet.type(:service).create(
:name => "sleeper",
:type => "init",
- :path => File.join($puppetbase,"examples/root/etc/init.d"),
+ :path => exampledir("root/etc/init.d"),
:hasstatus => true,
:check => [:ensure]
)
diff --git a/test/providers/group.rb b/test/providers/group.rb
index a23dbb50c..63aafc1f7 100755
--- a/test/providers/group.rb
+++ b/test/providers/group.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'etc'
require 'puppet/type'
require 'puppettest'
-require 'test/unit'
class TestGroupProvider < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
@@tmpgroups = []
diff --git a/test/providers/nameservice.rb b/test/providers/nameservice.rb
index 0e0f8050f..dafc8dcf0 100644
--- a/test/providers/nameservice.rb
+++ b/test/providers/nameservice.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
-require 'test/unit'
require 'facter'
class TestNameServiceProvider < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
def test_option
klass = Class.new(Puppet::Type::Provider::NameService)
diff --git a/test/providers/package.rb b/test/providers/package.rb
index 210fae5c1..1c3621909 100644
--- a/test/providers/package.rb
+++ b/test/providers/package.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'etc'
require 'puppet/type'
require 'puppettest'
-require 'test/unit'
class TestPackageProvider < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
@provider = nil
diff --git a/test/providers/provider.rb b/test/providers/provider.rb
index cd9b32da2..e540f29fe 100644
--- a/test/providers/provider.rb
+++ b/test/providers/provider.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
-require 'test/unit'
require 'facter'
class TestProvider < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def echo
echo = Puppet::Util.binary("echo")
diff --git a/test/providers/user.rb b/test/providers/user.rb
index 0778a257f..15fc202f5 100644
--- a/test/providers/user.rb
+++ b/test/providers/user.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
-require 'test/unit'
require 'facter'
class TestUserProvider < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
def setup
super
diff --git a/test/puppet/conffiles.rb b/test/puppet/conffiles.rb
index 095ac9c99..9234e2dfd 100755
--- a/test/puppet/conffiles.rb
+++ b/test/puppet/conffiles.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = ".."
-end
-
require 'puppet'
require 'puppet/config'
require 'puppettest'
-require 'test/unit'
class TestConfFiles < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
@@gooddata = [
{
diff --git a/test/puppet/defaults.rb b/test/puppet/defaults.rb
index 2557140e6..46accc9c6 100755
--- a/test/puppet/defaults.rb
+++ b/test/puppet/defaults.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = ".."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
# $Id$
class TestPuppetDefaults < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
@@dirs = %w{rrddir confdir vardir logdir statedir}
@@files = %w{statefile manifest masterlog}
@@normals = %w{puppetport masterport server}
diff --git a/test/puppet/errortest.rb b/test/puppet/errortest.rb
index f27d79822..264cde857 100755
--- a/test/puppet/errortest.rb
+++ b/test/puppet/errortest.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestError < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_errorisstring
error = nil
diff --git a/test/puppettest.rb b/test/puppettest.rb
deleted file mode 100644
index 70775e0e3..000000000
--- a/test/puppettest.rb
+++ /dev/null
@@ -1,1320 +0,0 @@
-#libdir = File.join(File.dirname(__FILE__), '../lib')
-#unless $:.include?(libdir)
-# $:.unshift libdir
-#end
-
-require 'puppet'
-require 'test/unit'
-
-module TestPuppet
- include ObjectSpace
-
- # A baseclass for the faketypes.
- class FakeModel
- class << self
- attr_accessor :name
- @name = :fakemodel
- end
-
- def self.validstates
- Puppet::Type.type(@name).validstates
- end
-
- def self.validstate?(name)
- Puppet::Type.type(@name).validstate?(name)
- end
-
- def self.to_s
- "Fake%s" % @name.to_s.capitalize
- end
-
- def [](param)
- if @realmodel.attrtype(param) == :state
- @is[param]
- else
- @params[param]
- end
- end
-
- def []=(param, value)
- unless @realmodel.attrtype(param)
- raise Puppet::DevError, "Invalid attribute %s for %s" %
- [param, @realmodel.name]
- end
- if @realmodel.attrtype(param) == :state
- @should[param] = value
- else
- @params[param] = value
- end
- end
-
- def initialize(name)
- @realmodel = Puppet::Type.type(self.class.name)
- raise "Could not find type #{self.class.name}" unless @realmodel
- @is = {}
- @should = {}
- @params = {}
- self[:name] = name
- end
-
- def inspect
- "%s(%s)" % [self.class.to_s.sub(/.+::/, ''), super()]
- end
-
- def is(param)
- @is[param]
- end
-
- def should(param)
- @should[param]
- end
-
- def name
- self[:name]
- end
- end
-
- class FakeProvider
- attr_accessor :model
- class << self
- attr_accessor :name, :model, :methods
- end
-
- # A very low number, so these never show up as defaults via the standard
- # algorithms.
- def self.defaultnum
- -50
- end
-
- # Set up methods to fake things
- def self.apimethods(*ary)
- @model.validstates.each do |state|
- ary << state unless ary.include? state
- end
- attr_accessor(*ary)
-
- @methods = ary
- end
-
- def self.default?
- false
- end
-
- def self.initvars
- @calls = Hash.new do |hash, key|
- hash[key] = 0
- end
- end
-
- def self.suitable?
- true
- end
-
- def clear
- @model = nil
- end
-
- def initialize(model)
- @model = model
- end
- end
-
- @@fakemodels = {}
- @@fakeproviders = {}
-
- def fakemodel(type, name, options = {})
- type = type.intern if type.is_a? String
- unless @@fakemodels.include? type
- @@fakemodels[type] = Class.new(FakeModel)
- @@fakemodels[type].name = type
- end
-
- obj = @@fakemodels[type].new(name)
- obj[:name] = name
- options.each do |name, val|
- obj[name] = val
- end
- obj
- end
-
- def fakeprovider(type, model)
- type = type.intern if type.is_a? String
- unless @@fakeproviders.include? type
- @@fakeproviders[type] = Class.new(FakeModel) do
- @name = type
- end
- end
-
- @@fakeproviders[type].new(model)
- end
-
- def gcdebug(type)
- Puppet.warning "%s: %s" % [type, ObjectSpace.each_object(type) { |o| }]
- end
-
- def newcomp(*ary)
- name = nil
- if ary[0].is_a?(String)
- name = ary.shift
- else
- name = ary[0].title
- end
-
- comp = Puppet.type(:component).create(
- :name => name
- )
- ary.each { |item|
- comp.push item
- }
-
- return comp
- end
-
- def setup
- @memoryatstart = Puppet::Util.memory
- if defined? @@testcount
- @@testcount += 1
- else
- @@testcount = 0
- end
-
- @configpath = File.join(tmpdir,
- self.class.to_s + "configdir" + @@testcount.to_s + "/"
- )
-
- unless defined? $user and $group
- $user = nonrootuser().uid.to_s
- $group = nonrootgroup().gid.to_s
- end
- Puppet[:user] = $user
- Puppet[:group] = $group
-
- Puppet[:confdir] = @configpath
- Puppet[:vardir] = @configpath
-
- unless File.exists?(@configpath)
- Dir.mkdir(@configpath)
- end
-
- @@tmpfiles = [@configpath, tmpdir()]
- @@tmppids = []
-
- @@cleaners = []
-
- if $0 =~ /.+\.rb/ or Puppet[:debug]
- Puppet::Log.newdestination :console
- Puppet::Log.level = :debug
- #$VERBOSE = 1
- Puppet.info @method_name
- else
- Puppet::Log.close
- Puppet::Log.newdestination tempfile()
- Puppet[:httplog] = tempfile()
- end
-
- Puppet[:ignoreschedules] = true
- end
-
- def newobj(type, name, hash)
- transport = Puppet::TransObject.new(name, "file")
- transport[:path] = path
- transport[:ensure] = "file"
- assert_nothing_raised {
- file = transport.to_type
- }
- end
-
- def spin
- # Just disable spin, unless we really need it
- return
-# if Puppet[:debug]
-# return
-# end
-# @modes = %w{| / - \\}
-# unless defined? @mode
-# @mode = 0
-# end
-#
-# $stderr.print "%s" % @modes[@mode]
-# if @mode == @modes.length - 1
-# @mode = 0
-# else
-# @mode += 1
-# end
-# $stderr.flush
- end
-
- # stop any services that might be hanging around
- def stopservices
- if stype = Puppet::Type.type(:service)
- stype.each { |service|
- service[:ensure] = :stopped
- service.evaluate
- }
- end
- end
-
- def cleanup(&block)
- @@cleaners << block
- end
-
- def setme
- # retrieve the user name
- id = %x{id}.chomp
- if id =~ /uid=\d+\(([^\)]+)\)/
- @me = $1
- else
- puts id
- end
- unless defined? @me
- raise "Could not retrieve user name; 'id' did not work"
- end
- end
-
- def teardown
- stopservices
-
- @@cleaners.each { |cleaner| cleaner.call() }
-
- @@tmpfiles.each { |file|
- if FileTest.exists?(file)
- system("chmod -R 755 %s" % file)
- system("rm -rf %s" % file)
- end
- }
- @@tmpfiles.clear
-
- @@tmppids.each { |pid|
- %x{kill -INT #{pid} 2>/dev/null}
- }
-
- @@tmppids.clear
- Puppet::Type.allclear
- Puppet::Storage.clear
- Puppet::Rails.clear
- Puppet.clear
-
- @memoryatend = Puppet::Util.memory
- diff = @memoryatend - @memoryatstart
-
- if diff > 1000
- Puppet.info "%s#%s memory growth (%s to %s): %s" %
- [self.class, @method_name, @memoryatstart, @memoryatend, diff]
- end
-
- # reset all of the logs
- Puppet::Log.close
-
- # Just in case there are processes waiting to die...
- Process.waitall
- if File.stat("/dev/null").mode & 007777 != 0666
- File.open("/tmp/nullfailure", "w") { |f|
- f.puts self.class
- }
- exit(74)
- end
- end
-
- def tempfile
- if defined? @@tmpfilenum
- @@tmpfilenum += 1
- else
- @@tmpfilenum = 1
- end
-
- f = File.join(self.tmpdir(), self.class.to_s + "_" + @method_name +
- @@tmpfilenum.to_s)
- @@tmpfiles << f
- return f
- end
-
- def tstdir
- tempfile()
- end
-
- def tmpdir
- unless defined? @tmpdir and @tmpdir
- @tmpdir = case Facter["operatingsystem"].value
- when "Darwin": "/private/tmp"
- when "SunOS": "/var/tmp"
- else
- "/tmp"
- end
-
-
- @tmpdir = File.join(@tmpdir, "puppettesting")
-
- unless File.exists?(@tmpdir)
- FileUtils.mkdir_p(@tmpdir)
- File.chmod(01777, @tmpdir)
- end
- end
- @tmpdir
- end
-
- def assert_rollback_events(events, trans, msg = nil)
- run_events(:rollback, events, trans, msg)
- end
-
- def assert_events(events, *items)
- trans = nil
- comp = nil
- msg = nil
-
- unless events.is_a? Array
- raise Puppet::DevError, "Incorrect call of assert_events"
- end
- if items[-1].is_a? String
- msg = items.pop
- end
-
- remove_comp = false
- # They either passed a comp or a list of items.
- if items[0].is_a? Puppet.type(:component)
- comp = items.shift
- else
- comp = newcomp(items[0].title, *items)
- remove_comp = true
- end
- msg ||= comp.title
- assert_nothing_raised("Component %s failed" % [msg]) {
- trans = comp.evaluate
- }
-
- run_events(:evaluate, trans, events, msg)
-
- if remove_comp
- Puppet.type(:component).delete(comp)
- end
-
- return trans
- end
-
- # A simpler method that just applies what we have.
- def assert_apply(*objects)
- if objects[0].is_a?(Puppet.type(:component))
- comp = objects.shift
- unless objects.empty?
- objects.each { |o| comp.push o }
- end
- else
- comp = newcomp(*objects)
- end
- trans = nil
-
- assert_nothing_raised("Failed to create transaction") {
- trans = comp.evaluate
- }
-
- events = nil
- assert_nothing_raised("Failed to evaluate transaction") {
- events = trans.evaluate.collect { |e| e.event }
- }
- Puppet.type(:component).delete(comp)
- events
- end
-
- def run_events(type, trans, events, msg)
- case type
- when :evaluate, :rollback: # things are hunky-dory
- else
- raise Puppet::DevError, "Incorrect run_events type"
- end
-
- method = type
-
- newevents = nil
- assert_nothing_raised("Transaction %s %s failed" % [type, msg]) {
- newevents = trans.send(method).reject { |e| e.nil? }.collect { |e|
- e.event
- }
- }
-
- assert_equal(events, newevents, "Incorrect %s %s events" % [type, msg])
-
- return trans
- end
-
- def nonrootuser
- Etc.passwd { |user|
- if user.uid != Process.uid and user.uid > 0
- return user
- end
- }
- end
-
- def nonrootgroup
- Etc.group { |group|
- if group.gid != Process.gid and group.gid > 0
- return group
- end
- }
- end
-
- # If there are any fake data files, retrieve them
- def fakedata(dir)
- ary = [$puppetbase, "test"]
- ary += dir.split("/")
- dir = File.join(ary)
-
- unless FileTest.exists?(dir)
- raise Puppet::DevError, "No fakedata dir %s" % dir
- end
- files = Dir.entries(dir).reject { |f| f =~ /^\./ }.collect { |f|
- File.join(dir, f)
- }
-
- return files
- end
-
- def fakefile(name)
- ary = [$puppetbase, "test"]
- ary += name.split("/")
- file = File.join(ary)
- unless FileTest.exists?(file)
- raise Puppet::DevError, "No fakedata file %s" % file
- end
- return file
- end
-
- # wrap how to retrieve the masked mode
- def filemode(file)
- File.stat(file).mode & 007777
- end
-
- def memory
- Puppet::Util.memory
- end
-end
-
-
-module ServerTest
- include TestPuppet
- def setup
- super
-
- if defined? @@port
- @@port += 1
- else
- @@port = 20000
- end
- end
-
- # create a simple manifest that just creates a file
- def mktestmanifest
- file = File.join(Puppet[:confdir], "%ssite.pp" % (self.class.to_s + "test"))
- #@createdfile = File.join(tmpdir(), self.class.to_s + "manifesttesting" +
- # "_" + @method_name)
- @createdfile = tempfile()
-
- File.open(file, "w") { |f|
- f.puts "file { \"%s\": ensure => file, mode => 755 }\n" % @createdfile
- }
-
- @@tmpfiles << @createdfile
- @@tmpfiles << file
-
- return file
- end
-
- # create a server, forked into the background
- def mkserver(handlers = nil)
- # our default handlers
- unless handlers
- handlers = {
- :CA => {}, # so that certs autogenerate
- :Master => {
- :Manifest => mktestmanifest(),
- :UseNodes => false
- },
- }
- end
-
- # then create the actual server
- server = nil
- assert_nothing_raised {
- server = Puppet::Server.new(
- :Port => @@port,
- :Handlers => handlers
- )
- }
-
- # fork it
- spid = fork {
- trap(:INT) { server.shutdown }
- server.start
- }
-
- # and store its pid for killing
- @@tmppids << spid
-
- # give the server a chance to do its thing
- sleep 1
- return spid
- end
-
-end
-
-module ExeTest
- include ServerTest
-
- def setup
- super
- setbindir
- setlibdir
- end
-
- def bindir
- File.join($puppetbase, "bin")
- end
-
- def setbindir
- unless ENV["PATH"].split(":").include?(bindir)
- ENV["PATH"] = [bindir, ENV["PATH"]].join(":")
- end
- end
-
- def setlibdir
- ENV["RUBYLIB"] = $:.find_all { |dir|
- dir =~ /puppet/ or dir =~ /\.\./
- }.join(":")
- end
-
- # Run a ruby command. This explicitly uses ruby to run stuff, since we
- # don't necessarily know where our ruby binary is, dernit.
- # Currently unused, because I couldn't get it to work.
- def rundaemon(*cmd)
- @ruby ||= %x{which ruby}.chomp
- cmd = cmd.unshift(@ruby).join(" ")
-
- out = nil
- Dir.chdir(bindir()) {
- out = %x{#{@ruby} #{cmd}}
- }
- return out
- end
-
- def startmasterd(args = "")
- output = nil
-
- manifest = mktestmanifest()
- args += " --manifest %s" % manifest
- args += " --confdir %s" % Puppet[:confdir]
- args += " --vardir %s" % Puppet[:vardir]
- args += " --masterport %s" % @@port
- args += " --user %s" % Process.uid
- args += " --group %s" % Process.gid
- args += " --nonodes"
- args += " --autosign true"
-
- #if Puppet[:debug]
- # args += " --debug"
- #end
-
- cmd = "puppetmasterd %s" % args
-
-
- assert_nothing_raised {
- output = %x{#{cmd}}.chomp
- }
- assert_equal("", output, "Puppetmasterd produced output %s" % output)
- assert($? == 0, "Puppetmasterd exit status was %s" % $?)
- sleep(1)
-
- cleanup do
- stopmasterd
- sleep(1)
- end
-
- return manifest
- end
-
- def stopmasterd(running = true)
- ps = Facter["ps"].value || "ps -ef"
-
- pidfile = File.join(Puppet[:vardir], "run", "puppetmasterd.pid")
-
- pid = nil
- if FileTest.exists?(pidfile)
- pid = File.read(pidfile).chomp.to_i
- File.unlink(pidfile)
- end
-
- return unless running
- if running or pid
- runningpid = nil
- %x{#{ps}}.chomp.split(/\n/).each { |line|
- if line =~ /ruby.+puppetmasterd/
- next if line =~ /\.rb/ # skip the test script itself
- next if line =~ /^puppet/ # skip masters running as 'puppet'
- ary = line.sub(/^\s+/, '').split(/\s+/)
- pid = ary[1].to_i
- end
- }
-
- end
-
- # we default to mandating that it's running, but teardown
- # doesn't require that
- if pid
- if pid == $$
- raise Puppet::Error, "Tried to kill own pid"
- end
- begin
- Process.kill(:INT, pid)
- rescue
- # ignore it
- end
- end
- end
-
- def teardown
- stopmasterd(false)
- super
- end
-end
-
-module FileTesting
- include TestPuppet
- def cycle(comp)
- trans = nil
- assert_nothing_raised {
- trans = comp.evaluate
- }
- assert_nothing_raised {
- trans.evaluate
- }
- end
-
- def randlist(list)
- num = rand(4)
- if num == 0
- num = 1
- end
- set = []
-
- ret = []
- num.times { |index|
- item = list[rand(list.length)]
- if set.include?(item)
- redo
- end
-
- ret.push item
- }
- return ret
- end
-
- def mkranddirsandfiles(dirs = nil,files = nil,depth = 3)
- if depth < 0
- return
- end
-
- unless dirs
- dirs = %w{This Is A Set Of Directories}
- end
-
- unless files
- files = %w{and this is a set of files}
- end
-
- tfiles = randlist(files)
- tdirs = randlist(dirs)
-
- tfiles.each { |file|
- File.open(file, "w") { |of|
- 4.times {
- of.puts rand(100)
- }
- }
- }
-
- tdirs.each { |dir|
- # it shouldn't already exist, but...
- unless FileTest.exists?(dir)
- Dir.mkdir(dir)
- FileUtils.cd(dir) {
- mkranddirsandfiles(dirs,files,depth - 1)
- }
- end
- }
- end
-
- def file_list(dir)
- list = nil
- FileUtils.cd(dir) {
- list = %x{find . 2>/dev/null}.chomp.split(/\n/)
- }
- return list
- end
-
- def assert_trees_equal(fromdir,todir)
- assert(FileTest.directory?(fromdir))
- assert(FileTest.directory?(todir))
-
- # verify the file list is the same
- fromlist = nil
- FileUtils.cd(fromdir) {
- fromlist = %x{find . 2>/dev/null}.chomp.split(/\n/).reject { |file|
- ! FileTest.readable?(file)
- }.sort
- }
- tolist = file_list(todir).sort
-
- fromlist.sort.zip(tolist.sort).each { |a,b|
- assert_equal(a, b,
- "Fromfile %s with length %s does not match tofile %s with length %s" %
- [a, fromlist.length, b, tolist.length])
- }
- #assert_equal(fromlist,tolist)
-
- # and then do some verification that the files are actually set up
- # the same
- checked = 0
- fromlist.each_with_index { |file,i|
- fromfile = File.join(fromdir,file)
- tofile = File.join(todir,file)
- fromstat = File.stat(fromfile)
- tostat = File.stat(tofile)
- [:ftype,:gid,:mode,:uid].each { |method|
- assert_equal(
- fromstat.send(method),
- tostat.send(method)
- )
-
- next if fromstat.ftype == "directory"
- if checked < 10 and i % 3 == 0
- from = File.open(fromfile) { |f| f.read }
- to = File.open(tofile) { |f| f.read }
-
- assert_equal(from,to)
- checked += 1
- end
- }
- }
- end
-
- def random_files(dir)
- checked = 0
- list = file_list(dir)
- list.reverse.each_with_index { |file,i|
- path = File.join(dir,file)
- stat = File.stat(dir)
- if checked < 10 and (i % 3) == 2
- unless yield path
- next
- end
- checked += 1
- end
- }
- end
-
- def delete_random_files(dir)
- deleted = []
- random_files(dir) { |file|
- stat = File.stat(file)
- begin
- if stat.ftype == "directory"
- false
- else
- deleted << file
- File.unlink(file)
- true
- end
- rescue => detail
- # we probably won't be able to open our own secured files
- puts detail
- false
- end
- }
-
- return deleted
- end
-
- def add_random_files(dir)
- added = []
- random_files(dir) { |file|
- stat = File.stat(file)
- begin
- if stat.ftype == "directory"
- name = File.join(file,"file" + rand(100).to_s)
- File.open(name, "w") { |f|
- f.puts rand(10)
- }
- added << name
- else
- false
- end
- rescue => detail
- # we probably won't be able to open our own secured files
- puts detail
- false
- end
- }
- return added
- end
-
- def modify_random_files(dir)
- modded = []
- random_files(dir) { |file|
- stat = File.stat(file)
- begin
- if stat.ftype == "directory"
- false
- else
- File.open(file, "w") { |f|
- f.puts rand(10)
- }
- modded << name
- true
- end
- rescue => detail
- # we probably won't be able to open our own secured files
- puts detail
- false
- end
- }
- return modded
- end
-
- def readonly_random_files(dir)
- modded = []
- random_files(dir) { |file|
- stat = File.stat(file)
- begin
- if stat.ftype == "directory"
- File.new(file).chmod(0111)
- else
- File.new(file).chmod(0000)
- end
- modded << file
- rescue => detail
- # we probably won't be able to open our own secured files
- puts detail
- false
- end
- }
- return modded
- end
-
- def conffile
- File.join($puppetbase,"examples/root/etc/configfile")
- end
-end
-
-module ParserTesting
- include TestPuppet
- AST = Puppet::Parser::AST
-
- def astarray(*args)
- AST::ASTArray.new(
- :children => args
- )
- end
-
- def classobj(name, args = {})
- args[:type] ||= nameobj(name)
- args[:code] ||= AST::ASTArray.new(
- :file => __FILE__,
- :line => __LINE__,
- :children => [
- varobj("%svar" % name, "%svalue" % name),
- fileobj("/%s" % name)
- ]
- )
- assert_nothing_raised("Could not create class %s" % name) {
- return AST::ClassDef.new(args)
- }
- end
-
- def tagobj(*names)
- args = {}
- newnames = names.collect do |name|
- if name.is_a? AST
- name
- else
- nameobj(name)
- end
- end
- args[:type] = astarray(*newnames)
- assert_nothing_raised("Could not create tag %s" % names.inspect) {
- return AST::Tag.new(args)
- }
- end
-
- def compobj(name, args = {})
- args[:file] ||= tempfile()
- args[:line] ||= rand(100)
- args[:type] ||= nameobj(name)
- args[:args] ||= AST::ASTArray.new(
- :file => tempfile(),
- :line => rand(100),
- :children => []
- )
- args[:code] ||= AST::ASTArray.new(
- :file => tempfile(),
- :line => rand(100),
- :children => [
- varobj("%svar" % name, "%svalue" % name),
- fileobj("/%s" % name)
- ]
- )
- assert_nothing_raised("Could not create compdef %s" % name) {
- return AST::CompDef.new(args)
- }
- end
-
- def objectdef(type, name, params)
- assert_nothing_raised("Could not create %s %s" % [type, name]) {
- return AST::ObjectDef.new(
- :file => __FILE__,
- :line => __LINE__,
- :name => stringobj(name),
- :type => nameobj(type),
- :params => objectinst(params)
- )
- }
- end
-
- def fileobj(path, hash = {"owner" => "root"})
- assert_nothing_raised("Could not create file %s" % path) {
- return objectdef("file", path, hash)
-# return AST::ObjectDef.new(
-# :file => tempfile(),
-# :line => rand(100),
-# :name => stringobj(path),
-# :type => nameobj("file"),
-# :params => objectinst(hash)
-# )
- }
- end
-
- def nameobj(name)
- assert_nothing_raised("Could not create name %s" % name) {
- return AST::Name.new(
- :file => tempfile(),
- :line => rand(100),
- :value => name
- )
- }
- end
-
- def typeobj(name)
- assert_nothing_raised("Could not create type %s" % name) {
- return AST::Type.new(
- :file => tempfile(),
- :line => rand(100),
- :value => name
- )
- }
- end
-
- def nodedef(name)
- assert_nothing_raised("Could not create node %s" % name) {
- return AST::NodeDef.new(
- :file => tempfile(),
- :line => rand(100),
- :names => nameobj(name),
- :code => AST::ASTArray.new(
- :children => [
- varobj("%svar" % name, "%svalue" % name),
- fileobj("/%s" % name)
- ]
- )
- )
- }
- end
-
- def objectinst(hash)
- assert_nothing_raised("Could not create object instance") {
- params = hash.collect { |param, value|
- objectparam(param, value)
- }
- return AST::ObjectInst.new(
- :file => tempfile(),
- :line => rand(100),
- :children => params
- )
- }
- end
-
- def objectparam(param, value)
- # Allow them to pass non-strings in
- if value.is_a?(String)
- value = stringobj(value)
- end
- assert_nothing_raised("Could not create param %s" % param) {
- return AST::ObjectParam.new(
- :file => tempfile(),
- :line => rand(100),
- :param => nameobj(param),
- :value => value
- )
- }
- end
-
- def stringobj(value)
- AST::String.new(
- :file => tempfile(),
- :line => rand(100),
- :value => value
- )
- end
-
- def varobj(name, value)
- unless value.is_a? AST
- value = stringobj(value)
- end
- assert_nothing_raised("Could not create %s code" % name) {
- return AST::VarDef.new(
- :file => tempfile(),
- :line => rand(100),
- :name => nameobj(name),
- :value => value
- )
- }
- end
-
- def varref(name)
- assert_nothing_raised("Could not create %s variable" % name) {
- return AST::Variable.new(
- :file => __FILE__,
- :line => __LINE__,
- :value => name
- )
- }
- end
-
- def argobj(name, value)
- assert_nothing_raised("Could not create %s compargument" % name) {
- return AST::CompArgument.new(
- :children => [nameobj(name), stringobj(value)]
- )
- }
- end
-
- def defaultobj(type, params)
- pary = []
- params.each { |p,v|
- pary << AST::ObjectParam.new(
- :file => __FILE__,
- :line => __LINE__,
- :param => nameobj(p),
- :value => stringobj(v)
- )
- }
- past = AST::ASTArray.new(
- :file => __FILE__,
- :line => __LINE__,
- :children => pary
- )
-
- assert_nothing_raised("Could not create defaults for %s" % type) {
- return AST::TypeDefaults.new(
- :file => __FILE__,
- :line => __LINE__,
- :type => typeobj(type),
- :params => past
- )
- }
- end
-
- def taggedobj(name, ftype = :statement)
- functionobj("tagged", name, ftype)
- end
-
- def functionobj(function, name, ftype = :statement)
- func = nil
- assert_nothing_raised do
- func = Puppet::Parser::AST::Function.new(
- :name => function,
- :ftype => ftype,
- :arguments => AST::ASTArray.new(
- :children => [nameobj(name)]
- )
- )
- end
-
- return func
- end
-
- # This assumes no nodes
- def assert_creates(manifest, *files)
- interp = nil
- assert_nothing_raised {
- interp = Puppet::Parser::Interpreter.new(
- :Manifest => manifest,
- :UseNodes => false
- )
- }
-
- config = nil
- assert_nothing_raised {
- config = interp.run(Facter["hostname"].value, {})
- }
-
- comp = nil
- assert_nothing_raised {
- comp = config.to_type
- }
-
- assert_apply(comp)
-
- files.each do |file|
- assert(FileTest.exists?(file), "Did not create %s" % file)
- end
- end
-
- def mk_transobject(file = "/etc/passwd")
- obj = nil
- assert_nothing_raised {
- obj = Puppet::TransObject.new("file", file)
- obj["owner"] = "root"
- obj["mode"] = "644"
- }
-
- return obj
- end
-
- def mk_transbucket(*objects)
- bucket = nil
- assert_nothing_raised {
- bucket = Puppet::TransBucket.new
- bucket.name = "yayname"
- bucket.type = "yaytype"
- }
-
- objects.each { |o| bucket << o }
-
- return bucket
- end
-
- # Make a tree of objects, yielding if desired
- def mk_transtree(depth = 4, width = 2)
- top = nil
- assert_nothing_raised {
- top = Puppet::TransBucket.new
- top.name = "top"
- top.type = "bucket"
- }
-
- bucket = top
-
- file = tempfile()
- depth.times do |i|
- objects = []
- width.times do |j|
- path = tempfile + i.to_s
- obj = Puppet::TransObject.new("file", path)
- obj["owner"] = "root"
- obj["mode"] = "644"
-
- # Yield, if they want
- if block_given?
- yield(obj, i, j)
- end
-
- objects << obj
- end
-
- newbucket = mk_transbucket(*objects)
-
- bucket.push newbucket
- bucket = newbucket
- end
-
- return top
- end
-
- # Take a list of AST objects, evaluate them, and return the results
- def assert_evaluate(children)
- top = nil
- assert_nothing_raised("Could not create top object") {
- top = AST::ASTArray.new(
- :children => children
- )
- }
-
- trans = nil
- scope = nil
- assert_nothing_raised {
- scope = Puppet::Parser::Scope.new()
- trans = scope.evaluate(:ast => top)
- }
-
- return trans
- end
-end
-
-class PuppetTestSuite
- attr_accessor :subdir
-
- def self.basedir
- unless defined? @basedir
- @basedir = File.join($puppetbase, "test")
- end
- @basedir
- end
-
- def self.list
- Dir.entries(self.basedir).find_all { |file|
- path = File.join(@basedir, file)
- # Data is for storing test data
- FileTest.directory?(path) and file !~ /^\./ and file != "data" and
- file != "lib"
- }
- end
-
- def initialize(name)
- path = File.join(self.class.basedir, name)
- if FileTest.directory?(path)
- # load each of the files
- Dir.entries(path).collect { |file|
- File.join(path,file)
- }.find_all { |file|
- FileTest.file?(file) and file =~ /\.rb$/
- }.sort { |a,b|
- # in the order they were modified, so the last modified files
- # are loaded and thus displayed last
- File.stat(b) <=> File.stat(a)
- }.each { |file|
- require file
- }
- elsif FileTest.file?(path) && path =~ /\.rb$/
- require path
- else
- puts "TestSuites are directories or files containing test cases"
- puts "no such directory: %s" % path
- exit(65)
- end
- end
-end
-
-# a list of files that we can parse for testing
-def textfiles
- textdir = File.join($puppetbase,"examples","code", "snippets")
- Dir.entries(textdir).reject { |f|
- f =~ /^\./ or f =~ /fail/
- }.each { |f|
- yield File.join(textdir, f)
- }
-end
-
-def failers
- textdir = File.join($puppetbase,"examples","code", "failers")
- # only parse this one file now
- files = Dir.entries(textdir).reject { |file|
- file =~ %r{\.swp}
- }.reject { |file|
- file =~ %r{\.disabled}
- }.collect { |file|
- File.join(textdir,file)
- }.find_all { |file|
- FileTest.file?(file)
- }.sort.each { |file|
- Puppet.debug "Processing %s" % file
- yield file
- }
-end
-
-# $Id$
diff --git a/test/server/authconfig.rb b/test/server/authconfig.rb
index 32ae46dff..a5a0a1c00 100755
--- a/test/server/authconfig.rb
+++ b/test/server/authconfig.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server/authconfig'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestAuthConfig < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_parsingconfigfile
file = tempfile()
diff --git a/test/server/authstore.rb b/test/server/authstore.rb
index db580d68e..30eb5ea04 100755
--- a/test/server/authstore.rb
+++ b/test/server/authstore.rb
@@ -1,20 +1,9 @@
-if __FILE__ == $0
- if Dir.getwd =~ /test\/server$/
- Dir.chdir("..")
- end
-
- $:.unshift '../lib'
- $puppetbase = ".."
-
-end
-
require 'puppet'
require 'puppet/server/authstore'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestAuthStore < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def mkstore
store = nil
assert_nothing_raised {
diff --git a/test/server/bucket.rb b/test/server/bucket.rb
index af2fd0865..dcb50d27e 100644
--- a/test/server/bucket.rb
+++ b/test/server/bucket.rb
@@ -1,19 +1,9 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
- $debug = true
-else
- $debug = false
-end
-
require 'puppet'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
require 'base64'
class TestBucket < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
def out
if defined? @num
diff --git a/test/server/ca.rb b/test/server/ca.rb
index b7bad5cd6..8be0df334 100644
--- a/test/server/ca.rb
+++ b/test/server/ca.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server/ca'
require 'puppet/sslcertificates'
require 'openssl'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
# $Id$
@@ -20,7 +13,7 @@ else
end
class TestCA < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
# Verify that we're autosigning. We have to autosign a "different" machine,
# since we always autosign the CA server's certificate.
def test_autocertgeneration
diff --git a/test/server/fileserver.rb b/test/server/fileserver.rb
index b42b1712f..e7aaa6017 100755
--- a/test/server/fileserver.rb
+++ b/test/server/fileserver.rb
@@ -1,20 +1,9 @@
-if __FILE__ == $0
- if Dir.getwd =~ /test\/server$/
- Dir.chdir("..")
- end
-
- $:.unshift '../lib'
- $puppetbase = ".."
-
-end
-
require 'puppet'
require 'puppet/server/fileserver'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestFileServer < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def mkmount(path = nil)
mount = nil
@@ -53,7 +42,6 @@ class TestFileServer < Test::Unit::TestCase
def mktestfiles(testdir)
@@tmpfiles << testdir
assert_nothing_raised {
- Dir.mkdir(testdir)
files = %w{a b c d e}.collect { |l|
name = File.join(testdir, "file%s" % l)
File.open(name, "w") { |f|
diff --git a/test/server/logger.rb b/test/server/logger.rb
index e0a03417e..8ba0d0067 100644
--- a/test/server/logger.rb
+++ b/test/server/logger.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
require 'base64'
require 'cgi'
class TestLogger < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
def setup
super
diff --git a/test/server/master.rb b/test/server/master.rb
index 2f6804e56..2d1b9ec2c 100644
--- a/test/server/master.rb
+++ b/test/server/master.rb
@@ -1,21 +1,10 @@
-if __FILE__ == $0
- if Dir.getwd =~ /test\/server$/
- Dir.chdir("..")
- end
-
- $:.unshift '../lib'
- $puppetbase = ".."
-
-end
-
require 'puppet'
require 'puppet/server'
require 'puppet/client'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestMaster < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
def teardown
super
#print "\n\n\n\n" if Puppet[:debug]
diff --git a/test/server/pelement.rb b/test/server/pelement.rb
index 5d5b5ceb4..edfe89744 100644
--- a/test/server/pelement.rb
+++ b/test/server/pelement.rb
@@ -1,18 +1,11 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server/pelement'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
require 'base64'
require 'cgi'
class TestPElementServer < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
def verify_described(type, described)
described.each do |name, trans|
@@ -175,7 +168,7 @@ class TestPElementServer < Test::Unit::TestCase
def test_describe_alltypes
# Systems get pretty retarded, so I'm going to set the path to some fake
# data for ports
- #Puppet::Type::ParsedType::Port.path = File.join($puppetbase,
+ #Puppet::Type::ParsedType::Port.path = File.join(basedir,
# "test/data/types/ports/1")
#Puppet.err Puppet::Type::ParsedType::Port.path
server = nil
diff --git a/test/server/report.rb b/test/server/report.rb
index 5e74dc1da..423b8ce90 100755
--- a/test/server/report.rb
+++ b/test/server/report.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server/report'
require 'puppet/client/reporter'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestReportServer < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
Puppet::Util.logmethods(self)
def mkserver
diff --git a/test/server/rights.rb b/test/server/rights.rb
index 09cb21e56..ac0944bd0 100755
--- a/test/server/rights.rb
+++ b/test/server/rights.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server/rights'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestRights < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_rights
store = nil
diff --git a/test/server/runner.rb b/test/server/runner.rb
index 59487776f..1c2fa9cea 100755
--- a/test/server/runner.rb
+++ b/test/server/runner.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server/runner'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestServerRunner < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def mkclient(file)
master = nil
diff --git a/test/server/server.rb b/test/server/server.rb
index e279d8440..681fa1f42 100644
--- a/test/server/server.rb
+++ b/test/server/server.rb
@@ -1,13 +1,6 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
# $Id$
@@ -18,7 +11,7 @@ else
end
class TestServer < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
# test that we can connect to the server
# we have to use fork here, because we apparently can't use threads
diff --git a/test/tagging/tagging.rb b/test/tagging/tagging.rb
index 434ef6e69..42f04ff4f 100644
--- a/test/tagging/tagging.rb
+++ b/test/tagging/tagging.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestTagging < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
# Make sure the scopes are getting the right tags
def test_scopetags
@@ -62,9 +55,14 @@ class TestTagging < Test::Unit::TestCase
)
}
+ ast = Puppet::Parser::AST::ASTArray.new({})
+
+ # We have to use 'evaluate', rather than just calling to_trans directly,
+ # because scopes do some internal checking to make sure the same object
+ # is not translated multiple times.
objects = nil
assert_nothing_raised {
- objects = scope.to_trans
+ objects = scope.evaluate(:ast => ast)
}
# There's only one object, so shift it out
diff --git a/test/test b/test/test
deleted file mode 100755
index 9b3613599..000000000
--- a/test/test
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/env ruby
-
-#------------------------------------------------------------
-# run any or all test suites
-
-basedir = File.dirname(__FILE__)
-if basedir == "."
- basedir = Dir.getwd
-end
-$puppetbase = File.expand_path(File.join(basedir, ".."))
-
-$:.unshift basedir
-$:.unshift "#{$puppetbase}/lib"
-
-
-require 'puppettest.rb'
-require 'getoptlong'
-
- #[ "--size", "-s", GetoptLong::REQUIRED_ARGUMENT ],
-result = GetoptLong.new(
- [ "--debug", "-d", GetoptLong::NO_ARGUMENT ],
- [ "-n", GetoptLong::REQUIRED_ARGUMENT ],
- [ "--help", "-h", GetoptLong::NO_ARGUMENT ]
-)
-
-usage = "USAGE: %s [--help] <testsuite> <testsuite> .." % $0
-
-opts = []
-
-result.each { |opt,arg|
- case opt
- when "--debug"
- Puppet::Log.level = :debug
- when "--help"
- puts usage
- exit
- else
- opts << opt << arg
- #raise "Invalid option '#{opt}'"
- end
-}
-suites = nil
-
-if ARGV.length != 0
- suites = ARGV.dup
-else
- suites = PuppetTestSuite.list
-end
-
-ARGV.clear
-
-opts.each { |o| ARGV << o }
-
-suites.each { |suite|
- PuppetTestSuite.new(suite)
-}
-
-# This damn problem just doesn't seem to want to go away
-system("%s/etc/init.d/sleeper stop 2>/dev/null 1>/dev/null" % $puppetbase)
-
-# $Id$
diff --git a/test/types/basic.rb b/test/types/basic.rb
index f734cb5a0..e8dd38c77 100644
--- a/test/types/basic.rb
+++ b/test/types/basic.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestBasic < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
# hmmm
# this is complicated, because we store references to the created
# objects in a central store
@@ -39,7 +32,7 @@ class TestBasic < Test::Unit::TestCase
@sleeper = Puppet.type(:service).create(
:name => "sleeper",
:provider => "init",
- :path => File.join($puppetbase,"examples/root/etc/init.d"),
+ :path => exampledir("root/etc/init.d"),
:hasstatus => true,
:ensure => :running
)
diff --git a/test/types/component.rb b/test/types/component.rb
index 0754e7cdc..2ab0661d6 100755
--- a/test/types/component.rb
+++ b/test/types/component.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../../../../language/trunk"
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
# $Id$
class TestComponent < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
@@used = {}
diff --git a/test/types/cron.rb b/test/types/cron.rb
index 65d37cfa0..b802a1c77 100755
--- a/test/types/cron.rb
+++ b/test/types/cron.rb
@@ -1,18 +1,11 @@
# Test cron job creation, modification, and destruction
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
-require 'test/unit'
require 'facter'
class TestCron < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
diff --git a/test/types/exec.rb b/test/types/exec.rb
index 8f09420d1..4719e0baa 100755
--- a/test/types/exec.rb
+++ b/test/types/exec.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
require 'facter'
class TestExec < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_execution
command = nil
output = nil
diff --git a/test/types/file.rb b/test/types/file.rb
index e814b6c37..b87f1b928 100644
--- a/test/types/file.rb
+++ b/test/types/file.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
-require 'test/unit'
require 'fileutils'
require 'puppettest'
class TestFile < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
# hmmm
# this is complicated, because we store references to the created
# objects in a central store
diff --git a/test/types/filebucket.rb b/test/types/filebucket.rb
index e7e7e3e73..eb7ee59f7 100755
--- a/test/types/filebucket.rb
+++ b/test/types/filebucket.rb
@@ -1,18 +1,11 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../../../../language/trunk"
-end
-
require 'puppet'
-require 'test/unit'
require 'fileutils'
require 'puppettest'
# $Id$
class TestFileBucket < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
# hmmm
# this is complicated, because we store references to the created
# objects in a central store
diff --git a/test/types/fileignoresource.rb b/test/types/fileignoresource.rb
index 4189c50e3..1340dbbc9 100644
--- a/test/types/fileignoresource.rb
+++ b/test/types/fileignoresource.rb
@@ -1,19 +1,11 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $:.unshift "../../../../language/trunk/lib"
- $puppetbase = "../../../../language/trunk"
-end
-
require 'puppet'
require 'cgi'
-require 'test/unit'
require 'fileutils'
require 'puppettest'
class TestFileIgnoreSources < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
def setup
super
diff --git a/test/types/filesources.rb b/test/types/filesources.rb
index 009d1a35a..3cc546b40 100755
--- a/test/types/filesources.rb
+++ b/test/types/filesources.rb
@@ -1,18 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $:.unshift "../../../../language/trunk/lib"
- $puppetbase = "../../../../language/trunk"
-end
-
require 'puppet'
require 'cgi'
-require 'test/unit'
require 'fileutils'
require 'puppettest'
class TestFileSources < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
def setup
super
begin
diff --git a/test/types/group.rb b/test/types/group.rb
index 508b8436c..68893ff4d 100755
--- a/test/types/group.rb
+++ b/test/types/group.rb
@@ -1,18 +1,11 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'etc'
require 'puppet/type'
require 'puppettest'
-require 'test/unit'
class TestGroup < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
- p = Puppet::Type.type(:group).provide :fake, :parent => TestPuppet::FakeProvider do
+ p = Puppet::Type.type(:group).provide :fake, :parent => PuppetTest::FakeProvider do
@name = :fake
apimethods :ensure, :gid
diff --git a/test/types/host.rb b/test/types/host.rb
index 8af9e3e4a..db2c391bf 100755
--- a/test/types/host.rb
+++ b/test/types/host.rb
@@ -1,18 +1,11 @@
# Test host job creation, modification, and destruction
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
-require 'test/unit'
require 'facter'
class TestHost < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
# god i'm lazy
diff --git a/test/types/mount.rb b/test/types/mount.rb
index 70170289e..e0838e072 100755
--- a/test/types/mount.rb
+++ b/test/types/mount.rb
@@ -1,19 +1,12 @@
# Test host job creation, modification, and destruction
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
require 'puppet/type/parsedtype/mount'
-require 'test/unit'
require 'facter'
class TestMounts < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
@mounttype = Puppet.type(:mount)
diff --git a/test/types/package.rb b/test/types/package.rb
index 51bfc5fa3..4d04dc147 100644
--- a/test/types/package.rb
+++ b/test/types/package.rb
@@ -1,12 +1,5 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
-require 'test/unit'
require 'facter'
$platform = Facter["operatingsystem"].value
@@ -16,7 +9,7 @@ unless Puppet.type(:package).defaultprovider
else
class TestPackages < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
def setup
super
#@list = Puppet.type(:package).getpkglist
diff --git a/test/types/parameter.rb b/test/types/parameter.rb
index 902f1398e..e94fe914b 100644
--- a/test/types/parameter.rb
+++ b/test/types/parameter.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet/type'
require 'puppettest'
-require 'test/unit'
class TestParameter < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def newparam(name = :fakeparam)
assert_nothing_raised {
diff --git a/test/types/port.rb b/test/types/port.rb
index debd7ed89..ad73e7d97 100755
--- a/test/types/port.rb
+++ b/test/types/port.rb
@@ -1,19 +1,12 @@
# Test host job creation, modification, and destruction
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
require 'puppet/type/parsedtype/port'
-require 'test/unit'
require 'facter'
class TestPort < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
@porttype = Puppet.type(:port)
diff --git a/test/types/query.rb b/test/types/query.rb
index 121670012..fe5742490 100644
--- a/test/types/query.rb
+++ b/test/types/query.rb
@@ -1,23 +1,16 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = File.join(Dir.getwd(), "../..")
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
# $Id$
class TestQuery < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
# hmmm
# this is complicated, because we store references to the created
# objects in a central store
def file
assert_nothing_raised() {
- cfile = File.join($puppetbase,"examples/root/etc/configfile")
+ cfile = exampledir("root/etc/configfile")
unless Puppet.type(:file).has_key?(cfile)
Puppet.type(:file).create(
:path => cfile,
@@ -35,7 +28,7 @@ class TestQuery < Test::Unit::TestCase
Puppet.type(:service).create(
:name => "sleeper",
:provider => "init",
- :path => File.join($puppetbase,"examples/root/etc/init.d"),
+ :path => exampledir("root/etc/init.d"),
:hasstatus => true,
:check => [:ensure]
)
diff --git a/test/types/schedule.rb b/test/types/schedule.rb
index ded677fd2..b68540d84 100755
--- a/test/types/schedule.rb
+++ b/test/types/schedule.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
-require 'test/unit'
require 'puppet/type/schedule'
require 'puppettest'
class TestSchedule < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
diff --git a/test/types/service.rb b/test/types/service.rb
index e936e8f84..f9d6251ad 100644
--- a/test/types/service.rb
+++ b/test/types/service.rb
@@ -1,12 +1,5 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
$skipsvcs = false
case Facter["operatingsystem"].value
@@ -18,13 +11,13 @@ if $skipsvcs
else
#class TestInitService < Test::Unit::TestCase
class TestInitService
- include TestPuppet
+ include PuppetTest
def setup
super
sleeper = nil
- script = File.join($puppetbase,"examples/root/etc/init.d/sleeper")
- @init = File.join($puppetbase,"examples/root/etc/init.d")
+ script = exampledir("root/etc/init.d/sleeper")
+ @init = exampledir("root/etc/init.d")
@status = script + " status"
end
@@ -44,7 +37,7 @@ class TestInitService
def mksleeper(hash = {})
hash[:name] = "sleeper"
- hash[:path] = File.join($puppetbase,"examples/root/etc/init.d")
+ hash[:path] = exampledir("root/etc/init.d")
hash[:ensure] = true
hash[:hasstatus] = true
hash[:hasrestart] = true
@@ -111,7 +104,7 @@ class TestInitService
end
class TestLocalService < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def teardown
Puppet.type(:service).clear
diff --git a/test/types/sshkey.rb b/test/types/sshkey.rb
index ff9adc336..e541a0bd6 100755
--- a/test/types/sshkey.rb
+++ b/test/types/sshkey.rb
@@ -1,19 +1,12 @@
# Test key job creation, modification, and destruction
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
require 'puppet/type/parsedtype/sshkey'
-require 'test/unit'
require 'facter'
class TestSSHKey < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
# god i'm lazy
diff --git a/test/types/state.rb b/test/types/state.rb
index 638372afe..c3ea0965f 100644
--- a/test/types/state.rb
+++ b/test/types/state.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet/type'
require 'puppettest'
-require 'test/unit'
class TestState < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def newinst(state)
inst = nil
diff --git a/test/types/symlink.rb b/test/types/symlink.rb
index 408817cb7..8f3e1d598 100755
--- a/test/types/symlink.rb
+++ b/test/types/symlink.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../../../../language/trunk"
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
# $Id$
class TestSymlink < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
def mktmpfile
# because luke's home directory is on nfs, it can't be used for testing
# as root
diff --git a/test/types/tidy.rb b/test/types/tidy.rb
index dc5bc2d2d..74c6bceda 100755
--- a/test/types/tidy.rb
+++ b/test/types/tidy.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../../../../language/trunk"
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
# $Id$
class TestTidy < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
def mktmpfile
# because luke's home directory is on nfs, it can't be used for testing
# as root
diff --git a/test/types/type.rb b/test/types/type.rb
index 010102ad9..f8785fd3b 100644
--- a/test/types/type.rb
+++ b/test/types/type.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet/type'
require 'puppettest'
-require 'test/unit'
class TestType < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_typemethods
Puppet::Type.eachtype { |type|
name = nil
diff --git a/test/types/user.rb b/test/types/user.rb
index 008f39272..958cf9441 100755
--- a/test/types/user.rb
+++ b/test/types/user.rb
@@ -1,18 +1,11 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'etc'
require 'puppet/type'
require 'puppettest'
-require 'test/unit'
class TestUser < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
- p = Puppet::Type.type(:user).provide :fake, :parent => TestPuppet::FakeProvider do
+ p = Puppet::Type.type(:user).provide :fake, :parent => PuppetTest::FakeProvider do
@name = :fake
apimethods
def create
diff --git a/test/types/yumrepo.rb b/test/types/yumrepo.rb
index f88525d1e..4a377c3ed 100644
--- a/test/types/yumrepo.rb
+++ b/test/types/yumrepo.rb
@@ -1,18 +1,11 @@
# Test the yumrepo type
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
-require 'test/unit'
require 'fileutils'
class TestYumRepo < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
diff --git a/test/types/zone.rb b/test/types/zone.rb
index 4370c300d..46f411ef3 100755
--- a/test/types/zone.rb
+++ b/test/types/zone.rb
@@ -1,19 +1,12 @@
# Test host job creation, modification, and destruction
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
require 'puppet/type/zone'
-require 'test/unit'
require 'facter'
class TestZone < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_nothing
end
diff --git a/test/util/classgen.rb b/test/util/classgen.rb
index 7b1b4731c..7f3cb23ca 100755
--- a/test/util/classgen.rb
+++ b/test/util/classgen.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = ".."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestPuppetUtilClassGen < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
class FakeBase
class << self
diff --git a/test/util/execution.rb b/test/util/execution.rb
index ec56c84bb..932e03807 100755
--- a/test/util/execution.rb
+++ b/test/util/execution.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = ".."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestPuppetUtilExecution < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_withenv
ENV["testing"] = "yay"
diff --git a/test/util/package.rb b/test/util/package.rb
index 2d7f633de..bb5cd3c85 100755
--- a/test/util/package.rb
+++ b/test/util/package.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = ".."
-end
-
require 'puppet'
require 'puppet/util/package'
require 'puppettest'
-require 'test/unit'
class TestPuppetUtilPackage < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
include Puppet::Util::Package
def test_versioncmp
diff --git a/test/util/utiltest.rb b/test/util/utiltest.rb
index 481b8a9fe..b3a356429 100755
--- a/test/util/utiltest.rb
+++ b/test/util/utiltest.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = ".."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestPuppetUtil < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
# we're getting corrupt files, probably because multiple processes
# are reading or writing the file at once