spec/errand_spec.rb in errand-0.7.4 vs spec/errand_spec.rb in errand-0.8.0

- old
+ new

@@ -1,99 +1,122 @@ -#!/usr/bin/env ruby +#!/usr/bin/env ruby $: << File.expand_path(File.join(File.dirname(__FILE__), '..')) require 'lib/errand' require 'tmpdir' -describe Errand do +describe Errand do before(:all) do @tmpdir = Dir.mktmpdir end - before(:each) do + before(:each) do @rrd = Errand.new(:filename => File.join(@tmpdir, 'test.rrd')) end - it "should create data" do + it "should create data" do - @rrd.create(:start => Time.now.to_i - 1, :step => 300, - :sources => [ + @rrd.create(:start => Time.now.to_i - 1, :step => 300, + :sources => [ {:name => "Counter", :type => :counter, :heartbeat => 1800, :min => 0, :max => 4294967295}, {:name => "Total", :type => :derive, :heartbeat => 1800, :min => 0, :max => 'U'} ], :archives => [ {:function => :average, :xff => 0.5, :steps => 1, :rows => 2400}]).should be_true - + sources = @rrd.info.keys.grep(/^ds\[/).map { |ds| ds[3..-1].split(']').first}.uniq sources.size.should == 2 end it "should dump data" do - @rrd.create(:start => Time.now.to_i - 1, :step => 300, - :sources => [ + @rrd.create(:start => Time.now.to_i - 1, :step => 300, + :sources => [ {:name => "Counter", :type => :counter, :heartbeat => 1800, :min => 0, :max => 4294967295}, {:name => "Total", :type => :derive, :heartbeat => 1800, :min => 0, :max => 'U'} ], :archives => [ {:function => :average, :xff => 0.5, :steps => 1, :rows => 2400}]).should be_true - + tmpfile = File.join(@tmpdir, 'test.out') lambda { @rrd.dump(:filename => tmpfile) - @rrd.dump # <= no args + @rrd.dump # <= no args }.should_not raise_error end - it "should update rrds" do - @rrd.create(:start => Time.now.to_i - 1, :step => 1, - :sources => [ - {:name => "Sum", :type => :gauge, :heartbeat => 1800, :min => 0, :max => 4294967295}, - {:name => "Total", :type => :gauge, :heartbeat => 1800, :min => 0, :max => 'U'} ], - :archives => [ - {:function => :average, :xff => 0.5, :steps => 1, :rows => 2400}]).should be_true + it "should update rrds" do + attrs = { + :start => Time.now.to_i - 1, + :step => 1, + :sources => [ + { + :name => "Sum", + :type => :gauge, + :heartbeat => 1800, + :min => 0, + :max => 4294967295 + }, + { + :name => "Total", + :type => :gauge, + :heartbeat => 1800, + :min => 0, + :max => 'U' + } + ], + :archives => [ + { + :function => :average, + :xff => 0.5, + :steps => 1, + :rows => 2400 + } + ] + } + @rrd.create(attrs).should be_true - @rrd.update(:sources => [ + @rrd.update(:sources => [ {:name => "Sum", :value => 1}, {:name => "Total", :value => 30}]).should be_true @rrd.fetch[:data].each_pair do |source, values| values.compact.size.should > 0 end end - it "should update with weird data" do + it "should update with weird data" do time = Time.now.to_i - 300 - @rrd.create(:start => time - 1, :step => 1, - :sources => [ + @rrd.create(:start => time - 1, :step => 1, + :sources => [ {:name => "Sum", :type => :gauge, :heartbeat => 1800, :min => 0, :max => 4294967295}, {:name => "Total", :type => :gauge, :heartbeat => 1800, :min => 0, :max => 'U'} ], :archives => [ {:function => :average, :xff => 0.5, :steps => 1, :rows => 2400}]).should be_true updates = [] 100.times do |i| updates << {:name => "Sum", :time => time + i , :value => 1} updates << {:name => "Total", :time => time + i * 4, :value => 30} end - + @rrd.update(:sources => updates) - + @rrd.fetch[:data].each_pair do |source, values| values.compact.size.should > 0 end end it "should fetch data" do time = Time.now.to_i - 300 - @rrd.create(:start => time - 1, :step => 1, - :sources => [ + @rrd.create(:start => time - 1, :step => 1, + :sources => [ {:name => "Sum", :type => :gauge, :heartbeat => 1800, :min => 0, :max => 4294967295}, {:name => "Total", :type => :gauge, :heartbeat => 1800, :min => 0, :max => 'U'} ], :archives => [ {:function => :average, :xff => 0.5, :steps => 1, :rows => 2400}]).should be_true 100.times do |i| - @rrd.update(:sources => [ + @rrd.update(:sources => [ {:name => "Sum", :time => time + i, :value => 1}, {:name => "Total", :time => time + i, :value => 30}]).should be_true end @rrd.fetch[:data].each_pair do |source, values|