diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-10-17 03:06:45 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-10-17 03:06:45 +0000 |
| commit | b4ebe76e6aa14efee6c5c56a61c4ee7f5784997e (patch) | |
| tree | c8869ec0a67a5471ef7d5f9e074509fd09115a85 /test | |
| parent | 9e5ea8c2c52f3d4b48fa01eb56264b323a2c4581 (diff) | |
| download | puppet-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-x | test/types/tidy.rb | 156 |
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$ |
