summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-10-17 03:06:45 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-10-17 03:06:45 +0000
commitb4ebe76e6aa14efee6c5c56a61c4ee7f5784997e (patch)
treec8869ec0a67a5471ef7d5f9e074509fd09115a85 /test
parent9e5ea8c2c52f3d4b48fa01eb56264b323a2c4581 (diff)
downloadpuppet-b4ebe76e6aa14efee6c5c56a61c4ee7f5784997e.tar.gz
puppet-b4ebe76e6aa14efee6c5c56a61c4ee7f5784997e.tar.xz
puppet-b4ebe76e6aa14efee6c5c56a61c4ee7f5784997e.zip
Rewriting nearly all of the tests for the tidy type, and redoing the internals of the testing.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1794 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'test')
-rwxr-xr-xtest/types/tidy.rb156
1 files changed, 134 insertions, 22 deletions
diff --git a/test/types/tidy.rb b/test/types/tidy.rb
index 7bbc657cc..20694762f 100755
--- a/test/types/tidy.rb
+++ b/test/types/tidy.rb
@@ -5,8 +5,6 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
require 'puppet'
require 'puppettest'
-# $Id$
-
class TestTidy < Test::Unit::TestCase
include PuppetTest::FileTesting
def mktmpfile
@@ -27,26 +25,6 @@ class TestTidy < Test::Unit::TestCase
return dir
end
- def test_simpletidy
- dir = mktmpdir
- file = File.join(dir, "tidytesting")
- File.open(file, "w") { |f|
- f.puts rand(100)
- }
-
- tidy = Puppet.type(:tidy).create(
- :name => dir,
- :size => "1b",
- :recurse => true
- )
- comp = newcomp("tidytesting", tidy)
- comp.finalize
-
- trans = nil
- assert_events([:file_tidied], comp)
- assert(!FileTest.exists?(file), "Tidied file still exists")
- end
-
def test_tidydirs
dir = mktmpdir
file = File.join(dir, "tidytesting")
@@ -96,4 +74,138 @@ class TestTidy < Test::Unit::TestCase
}
}
end
+
+ # Test the different age iterations.
+ def test_age_conversions
+ tidy = Puppet::Type.newtidy :path => tempfile(), :age => "1m"
+
+ convertors = {
+ :second => 1,
+ :minute => 60
+ }
+
+ convertors[:hour] = convertors[:minute] * 60
+ convertors[:day] = convertors[:hour] * 24
+ convertors[:week] = convertors[:day] * 7
+
+ # First make sure we default to days
+ assert_nothing_raised do
+ tidy[:age] = "2"
+ end
+
+ assert_equal(2 * convertors[:day], tidy[:age],
+ "Converted 2 wrong")
+
+ convertors.each do |name, number|
+ init = name.to_s[0..0] # The first letter
+ [0, 1, 5].each do |multi|
+ [init, init.upcase].each do |letter|
+ age = multi.to_s + letter.to_s
+ assert_nothing_raised do
+ tidy[:age] = age
+ end
+
+ assert_equal(multi * convertors[name], tidy[:age],
+ "Converted %s wrong" % age)
+ end
+ end
+ end
+ end
+
+ def test_size_conversions
+ convertors = {
+ :b => 0,
+ :kb => 1,
+ :mb => 2,
+ :gb => 3
+ }
+
+ tidy = Puppet::Type.newtidy :path => tempfile(), :age => "1m"
+
+ # First make sure we default to kb
+ assert_nothing_raised do
+ tidy[:size] = "2"
+ end
+
+ assert_equal(2048, tidy[:size],
+ "Converted 2 wrong")
+
+ convertors.each do |name, number|
+ init = name.to_s[0..0] # The first letter
+ [0, 1, 5].each do |multi|
+ [init, init.upcase].each do |letter|
+ size = multi.to_s + letter.to_s
+ assert_nothing_raised do
+ tidy[:size] = size
+ end
+
+ total = multi
+ number.times do total *= 1024 end
+
+ assert_equal(total, tidy[:size],
+ "Converted %s wrong" % size)
+ end
+ end
+ end
+ end
+
+ def test_agetest
+ tidy = Puppet::Type.newtidy :path => tempfile(), :age => "1m"
+
+ state = tidy.state(:tidyup)
+
+ # Set it to something that should be fine
+ state.is = [Time.now.to_i - 5, 50]
+
+ assert(state.insync?, "Tried to tidy a low age")
+
+ # Now to something that should fail
+ state.is = [Time.now.to_i - 120, 50]
+
+ assert(! state.insync?, "Incorrectly skipped tidy")
+ end
+
+ def test_sizetest
+ tidy = Puppet::Type.newtidy :path => tempfile(), :size => "1k"
+
+ state = tidy.state(:tidyup)
+
+ # Set it to something that should be fine
+ state.is = [5, 50]
+
+ assert(state.insync?, "Tried to tidy a low size")
+
+ # Now to something that should fail
+ state.is = [120, 2048]
+
+ assert(! state.insync?, "Incorrectly skipped tidy")
+ end
+
+ # Make sure we can remove different types of files
+ def test_tidytypes
+ path = tempfile()
+ tidy = Puppet::Type.newtidy :path => path, :size => "1b", :age => "1s"
+
+ # Start with a file
+ File.open(path, "w") { |f| f.puts "this is a test" }
+ assert_events([:file_tidied], tidy)
+ assert(! FileTest.exists?(path), "File was not removed")
+
+ # Then a link
+ dest = tempfile
+ File.open(dest, "w") { |f| f.puts "this is a test" }
+ File.symlink(dest, path)
+ assert_events([:file_tidied], tidy)
+ assert(! FileTest.exists?(path), "Link was not removed")
+ assert(FileTest.exists?(dest), "Destination was removed")
+
+ # And a directory
+ Dir.mkdir(path)
+ tidy.is = [:tidyup, [Time.now - 1024, 1]]
+ tidy[:rmdirs] = true
+ assert_events([:file_tidied], tidy)
+ assert(! FileTest.exists?(path), "File was not removed")
+ end
end
+
+# $Id$