Working #3139 - removing obsolete checking in Storage

We were type-checking the use of Storage for no good reason.

I've removed all of that, so we can use either resources
or their Refs for caching.

Signed-off-by: Luke Kanies <luke@puppetlabs.com>
This commit is contained in:
Luke Kanies 2010-06-10 20:54:15 -07:00 коммит произвёл test branch
Родитель 0b95a8528e
Коммит d6407f46f1
3 изменённых файлов: 7 добавлений и 49 удалений

Просмотреть файл

@ -22,18 +22,10 @@ class Puppet::Util::Storage
# types like exec, but it also means that if an object changes locations
# in the configuration it will lose its cache.
def self.cache(object)
if object.is_a? Puppet::Type
# We used to store things by path, now we store them by ref.
# In oscar(0.20.0) this changed to using the ref.
if @@state.include?(object.path)
@@state[object.ref] = @@state[object.path]
@@state.delete(object.path)
end
name = object.ref
elsif object.is_a?(Symbol)
if object.is_a?(Symbol)
name = object
else
raise ArgumentError, "You can only cache information for Types and symbols"
name = object.to_s
end
return @@state[name] ||= {}

Просмотреть файл

@ -61,25 +61,11 @@ describe Puppet::Util::Storage do
end
end
describe "when caching invalid objects" do
before(:all) do
@bogus_objects = [ {}, [], "foo", 42, nil, Tempfile.new('storage_test') ]
end
it "should raise an ArgumentError" do
@bogus_objects.each do |object|
proc { Puppet::Util::Storage.cache(object) }.should raise_error()
end
end
it "should not add anything to its internal state" do
@bogus_objects.each do |object|
begin
Puppet::Util::Storage.cache(object)
rescue
Puppet::Util::Storage.state().should == {}
end
end
describe "when caching something other than a resource or symbol" do
it "should cache by converting to a string" do
data = Puppet::Util::Storage.cache(42)
data[:yay] = true
Puppet::Util::Storage.cache("42")[:yay].should be_true
end
end

Просмотреть файл

@ -74,25 +74,5 @@ class TestStorage < Test::Unit::TestCase
assert_same Hash, state.class
assert_equal 0, state.size
end
def test_caching
hash = nil
one = Puppet::Type.type(:exec).new :title => "/bin/echo one"
[one, :yayness].each do |object|
assert_nothing_raised do
hash = Puppet::Util::Storage.cache(object)
end
assert_equal({}, hash, "Did not get empty hash back for %s" % object)
hash[:testing] = true
assert_nothing_raised do
hash = Puppet::Util::Storage.cache(object)
end
assert_equal({:testing => true}, hash, "Did not get hash back for %s" % object)
end
assert_raise(ArgumentError, "was able to cache from string") do
Puppet::Util::Storage.cache("somethingelse")
end
end
end