summaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2007-10-15 19:36:32 -0500
committerLuke Kanies <luke@madstop.com>2007-10-15 19:36:32 -0500
commita815f7888b021a46332c23450795f057533d0093 (patch)
treea2f8081e47750c7782db9c3751ec4091f3f7424f /spec
parent694f98b4d9e7172cec58d407bc5aeae7861e1a06 (diff)
downloadpuppet-a815f7888b021a46332c23450795f057533d0093.tar.gz
puppet-a815f7888b021a46332c23450795f057533d0093.tar.xz
puppet-a815f7888b021a46332c23450795f057533d0093.zip
Reorganizing the file structure for indirection terminus types.
Previously, for example, the configuration terminus that was a subclass of 'code' would have been stored at lib/puppet/indirector/code/configuration and would have had to have been named 'configuration'. Now, the subclass can be named however the author prefers, and it must be stored at lib/puppet/indirector/configuration/<name>.rb, where <name> is the name you've chosen for the terminus type. The name only matters insomuch as it is used to load the file from disk and find the appropriate class when asked. The additional restriction is that the class constant for the terminus type must have its name as the last word, and the indirection must be the second to last word. Thus, in our example, we can choose any class constant that ends with Configuration::Code; given that there's only one Configuration class at this point, it makes the most sense to define the class as Puppet::Node::Configuration::Code. This is somewhat awkward, because of the class's location on disk, but the only other real option is to autogenerate a Puppet::Indirector::Configuration class constant, which is, I think, uglier.
Diffstat (limited to 'spec')
-rwxr-xr-xspec/unit/indirector/checksum/file.rb (renamed from spec/unit/indirector/file/checksum.rb)22
-rwxr-xr-xspec/unit/indirector/code.rb2
-rwxr-xr-xspec/unit/indirector/configuration/compiler.rb (renamed from spec/unit/indirector/code/configuration.rb)30
-rwxr-xr-xspec/unit/indirector/configuration/yaml.rb25
-rwxr-xr-xspec/unit/indirector/exec.rb4
-rwxr-xr-xspec/unit/indirector/facts/facter.rb (renamed from spec/unit/indirector/code/facts.rb)22
-rwxr-xr-xspec/unit/indirector/facts/yaml.rb (renamed from spec/unit/indirector/yaml/facts.rb)12
-rwxr-xr-xspec/unit/indirector/file.rb2
-rwxr-xr-xspec/unit/indirector/indirection.rb16
-rwxr-xr-xspec/unit/indirector/indirector.rb2
-rwxr-xr-xspec/unit/indirector/ldap.rb4
-rwxr-xr-xspec/unit/indirector/memory.rb2
-rwxr-xr-xspec/unit/indirector/node/exec.rb (renamed from spec/unit/indirector/exec/node.rb)10
-rwxr-xr-xspec/unit/indirector/node/ldap.rb (renamed from spec/unit/indirector/ldap/node.rb)16
-rwxr-xr-xspec/unit/indirector/node/memory.rb (renamed from spec/unit/indirector/memory/node.rb)6
-rwxr-xr-xspec/unit/indirector/node/null.rb (renamed from spec/unit/indirector/null/node.rb)6
-rwxr-xr-xspec/unit/indirector/node/rest.rb13
-rwxr-xr-xspec/unit/indirector/node/yaml.rb (renamed from spec/unit/indirector/yaml/node.rb)12
-rwxr-xr-xspec/unit/indirector/null.rb2
-rwxr-xr-xspec/unit/indirector/report/processor.rb (renamed from spec/unit/indirector/code/report.rb)14
-rwxr-xr-xspec/unit/indirector/rest/node.rb13
-rwxr-xr-xspec/unit/indirector/terminus.rb143
-rwxr-xr-xspec/unit/indirector/yaml.rb2
-rwxr-xr-xspec/unit/indirector/yaml/configuration.rb25
-rwxr-xr-xspec/unit/node/configuration.rb4
-rwxr-xr-xspec/unit/node/facts.rb4
-rwxr-xr-xspec/unit/transaction/report.rb4
27 files changed, 210 insertions, 207 deletions
diff --git a/spec/unit/indirector/file/checksum.rb b/spec/unit/indirector/checksum/file.rb
index 539bb973c..82319fa40 100755
--- a/spec/unit/indirector/file/checksum.rb
+++ b/spec/unit/indirector/checksum/file.rb
@@ -5,12 +5,12 @@
require File.dirname(__FILE__) + '/../../../spec_helper'
-require 'puppet/indirector/file/checksum'
+require 'puppet/indirector/checksum/file'
module FileChecksumTesting
def setup
Puppet.settings.stubs(:use)
- @store = Puppet::Indirector::File::Checksum.new
+ @store = Puppet::Checksum::File.new
@value = "70924d6fa4b2d745185fa4660703a5c0"
@sum = stub 'sum', :name => @value
@@ -23,24 +23,24 @@ module FileChecksumTesting
end
end
-describe Puppet::Indirector::File::Checksum do
+describe Puppet::Checksum::File do
it "should be a subclass of the File terminus class" do
- Puppet::Indirector::File::Checksum.superclass.should equal(Puppet::Indirector::File)
+ Puppet::Checksum::File.superclass.should equal(Puppet::Indirector::File)
end
it "should have documentation" do
- Puppet::Indirector::File::Checksum.doc.should be_instance_of(String)
+ Puppet::Checksum::File.doc.should be_instance_of(String)
end
end
-describe Puppet::Indirector::File::Checksum, " when initializing" do
+describe Puppet::Checksum::File, " when initializing" do
it "should use the filebucket settings section" do
Puppet.settings.expects(:use).with(:filebucket)
- Puppet::Indirector::File::Checksum.new
+ Puppet::Checksum::File.new
end
end
-describe Puppet::Indirector::File::Checksum, " when determining file paths" do
+describe Puppet::Checksum::File, " when determining file paths" do
include FileChecksumTesting
# I was previously passing the object in.
@@ -71,7 +71,7 @@ describe Puppet::Indirector::File::Checksum, " when determining file paths" do
end
end
-describe Puppet::Indirector::File::Checksum, " when retrieving files" do
+describe Puppet::Checksum::File, " when retrieving files" do
include FileChecksumTesting
# The smallest test that will use the calculated path
@@ -103,7 +103,7 @@ describe Puppet::Indirector::File::Checksum, " when retrieving files" do
end
end
-describe Puppet::Indirector::File::Checksum, " when saving files" do
+describe Puppet::Checksum::File, " when saving files" do
include FileChecksumTesting
# LAK:FIXME I don't know how to include in the spec the fact that we're
@@ -129,7 +129,7 @@ describe Puppet::Indirector::File::Checksum, " when saving files" do
end
end
-describe Puppet::Indirector::File::Checksum, " when deleting files" do
+describe Puppet::Checksum::File, " when deleting files" do
include FileChecksumTesting
it "should remove the file at the calculated path" do
diff --git a/spec/unit/indirector/code.rb b/spec/unit/indirector/code.rb
index f34dcf402..3eb7540ef 100755
--- a/spec/unit/indirector/code.rb
+++ b/spec/unit/indirector/code.rb
@@ -12,7 +12,7 @@ describe Puppet::Indirector::Code do
@code_class = Class.new(Puppet::Indirector::Code) do
def self.to_s
- "Testing"
+ "Mystuff::Testing"
end
end
diff --git a/spec/unit/indirector/code/configuration.rb b/spec/unit/indirector/configuration/compiler.rb
index b2a23ac19..cb9dc7162 100755
--- a/spec/unit/indirector/code/configuration.rb
+++ b/spec/unit/indirector/configuration/compiler.rb
@@ -5,9 +5,9 @@
require File.dirname(__FILE__) + '/../../../spec_helper'
-require 'puppet/indirector/code/configuration'
+require 'puppet/indirector/configuration/compiler'
-describe Puppet::Indirector::Code::Configuration do
+describe Puppet::Node::Configuration::Compiler do
before do
Puppet.expects(:version).returns(1)
Facter.expects(:value).with('fqdn').returns("my.server.com")
@@ -15,11 +15,11 @@ describe Puppet::Indirector::Code::Configuration do
end
it "should gather data about itself" do
- Puppet::Indirector::Code::Configuration.new
+ Puppet::Node::Configuration::Compiler.new
end
it "should cache the server metadata and reuse it" do
- compiler = Puppet::Indirector::Code::Configuration.new
+ compiler = Puppet::Node::Configuration::Compiler.new
node1 = stub 'node1', :merge => nil
node2 = stub 'node2', :merge => nil
compiler.stubs(:compile)
@@ -31,16 +31,16 @@ describe Puppet::Indirector::Code::Configuration do
end
it "should provide a method for determining if the configuration is networked" do
- compiler = Puppet::Indirector::Code::Configuration.new
+ compiler = Puppet::Node::Configuration::Compiler.new
compiler.should respond_to(:networked?)
end
end
-describe Puppet::Indirector::Code::Configuration, " when creating the interpreter" do
+describe Puppet::Node::Configuration::Compiler, " when creating the interpreter" do
before do
# This gets pretty annoying on a plane where we have no IP address
Facter.stubs(:value).returns("whatever")
- @compiler = Puppet::Indirector::Code::Configuration.new
+ @compiler = Puppet::Node::Configuration::Compiler.new
end
it "should not create the interpreter until it is asked for the first time" do
@@ -57,10 +57,10 @@ describe Puppet::Indirector::Code::Configuration, " when creating the interprete
end
end
-describe Puppet::Indirector::Code::Configuration, " when finding nodes" do
+describe Puppet::Node::Configuration::Compiler, " when finding nodes" do
before do
Facter.stubs(:value).returns("whatever")
- @compiler = Puppet::Indirector::Code::Configuration.new
+ @compiler = Puppet::Node::Configuration::Compiler.new
@name = "me"
@node = mock 'node'
@compiler.stubs(:compile)
@@ -79,13 +79,13 @@ describe Puppet::Indirector::Code::Configuration, " when finding nodes" do
end
end
-describe Puppet::Indirector::Code::Configuration, " after finding nodes" do
+describe Puppet::Node::Configuration::Compiler, " after finding nodes" do
before do
Puppet.expects(:version).returns(1)
Puppet.settings.stubs(:value).with(:node_name).returns("cert")
Facter.expects(:value).with('fqdn').returns("my.server.com")
Facter.expects(:value).with('ipaddress').returns("my.ip.address")
- @compiler = Puppet::Indirector::Code::Configuration.new
+ @compiler = Puppet::Node::Configuration::Compiler.new
@name = "me"
@node = mock 'node'
@compiler.stubs(:compile)
@@ -115,10 +115,10 @@ describe Puppet::Indirector::Code::Configuration, " after finding nodes" do
end
end
-describe Puppet::Indirector::Code::Configuration, " when creating configurations" do
+describe Puppet::Node::Configuration::Compiler, " when creating configurations" do
before do
Facter.stubs(:value).returns("whatever")
- @compiler = Puppet::Indirector::Code::Configuration.new
+ @compiler = Puppet::Node::Configuration::Compiler.new
@name = "me"
@node = Puppet::Node.new @name, :environment => "yay"
@node.stubs(:merge)
@@ -155,11 +155,11 @@ describe Puppet::Indirector::Code::Configuration, " when creating configurations
end
end
-describe Puppet::Indirector::Code::Configuration, " when determining a client's available configuration version" do
+describe Puppet::Node::Configuration::Compiler, " when determining a client's available configuration version" do
before do
Puppet::Node::Facts.stubs(:find).returns(nil)
Facter.stubs(:value).returns("whatever")
- @configuration = Puppet::Indirector::Code::Configuration.new
+ @configuration = Puppet::Node::Configuration::Compiler.new
@name = "johnny"
end
diff --git a/spec/unit/indirector/configuration/yaml.rb b/spec/unit/indirector/configuration/yaml.rb
new file mode 100755
index 000000000..b9f3f40d1
--- /dev/null
+++ b/spec/unit/indirector/configuration/yaml.rb
@@ -0,0 +1,25 @@
+#!/usr/bin/env ruby
+
+require File.dirname(__FILE__) + '/../../../spec_helper'
+
+require 'puppet/node/configuration'
+require 'puppet/indirector/configuration/yaml'
+
+describe Puppet::Node::Configuration::Yaml do
+ it "should be a subclass of the Yaml terminus" do
+ Puppet::Node::Configuration::Yaml.superclass.should equal(Puppet::Indirector::Yaml)
+ end
+
+ it "should have documentation" do
+ Puppet::Node::Configuration::Yaml.doc.should_not be_nil
+ end
+
+ it "should be registered with the configuration store indirection" do
+ indirection = Puppet::Indirector::Indirection.instance(:configuration)
+ Puppet::Node::Configuration::Yaml.indirection.should equal(indirection)
+ end
+
+ it "should have its name set to :yaml" do
+ Puppet::Node::Configuration::Yaml.name.should == :yaml
+ end
+end
diff --git a/spec/unit/indirector/exec.rb b/spec/unit/indirector/exec.rb
index 42fbe0955..3baf06629 100755
--- a/spec/unit/indirector/exec.rb
+++ b/spec/unit/indirector/exec.rb
@@ -6,11 +6,11 @@ require 'puppet/indirector/exec'
describe Puppet::Indirector::Exec do
before do
- @indirection = mock 'indirection'
+ @indirection = stub 'indirection', :name => :testing
Puppet::Indirector::Indirection.expects(:instance).with(:testing).returns(@indirection)
@exec_class = Class.new(Puppet::Indirector::Exec) do
def self.to_s
- "Testing"
+ "Testing::Mytype"
end
attr_accessor :command
diff --git a/spec/unit/indirector/code/facts.rb b/spec/unit/indirector/facts/facter.rb
index 9b645617f..e8ea721d3 100755
--- a/spec/unit/indirector/code/facts.rb
+++ b/spec/unit/indirector/facts/facter.rb
@@ -5,37 +5,37 @@
require File.dirname(__FILE__) + '/../../../spec_helper'
-require 'puppet/indirector/code/facts'
+require 'puppet/indirector/facts/facter'
-describe Puppet::Indirector::Code::Facts do
+describe Puppet::Node::Facts::Facter do
it "should be a subclass of the Code terminus" do
- Puppet::Indirector::Code::Facts.superclass.should equal(Puppet::Indirector::Code)
+ Puppet::Node::Facts::Facter.superclass.should equal(Puppet::Indirector::Code)
end
it "should have documentation" do
- Puppet::Indirector::Code::Facts.doc.should_not be_nil
+ Puppet::Node::Facts::Facter.doc.should_not be_nil
end
it "should be registered with the configuration store indirection" do
indirection = Puppet::Indirector::Indirection.instance(:facts)
- Puppet::Indirector::Code::Facts.indirection.should equal(indirection)
+ Puppet::Node::Facts::Facter.indirection.should equal(indirection)
end
- it "should have its name set to :facts" do
- Puppet::Indirector::Code::Facts.name.should == :facts
+ it "should have its name set to :facter" do
+ Puppet::Node::Facts::Facter.name.should == :facter
end
end
module TestingCodeFacts
def setup
- @facter = Puppet::Indirector::Code::Facts.new
+ @facter = Puppet::Node::Facts::Facter.new
Facter.stubs(:to_hash).returns({})
@name = "me"
@facts = @facter.find(@name)
end
end
-describe Puppet::Indirector::Code::Facts, " when finding facts" do
+describe Puppet::Node::Facts::Facter, " when finding facts" do
include TestingCodeFacts
it "should return a Facts instance" do
@@ -53,7 +53,7 @@ describe Puppet::Indirector::Code::Facts, " when finding facts" do
end
end
-describe Puppet::Indirector::Code::Facts, " when saving facts" do
+describe Puppet::Node::Facts::Facter, " when saving facts" do
include TestingCodeFacts
it "should fail" do
@@ -61,7 +61,7 @@ describe Puppet::Indirector::Code::Facts, " when saving facts" do
end
end
-describe Puppet::Indirector::Code::Facts, " when destroying facts" do
+describe Puppet::Node::Facts::Facter, " when destroying facts" do
include TestingCodeFacts
it "should fail" do
diff --git a/spec/unit/indirector/yaml/facts.rb b/spec/unit/indirector/facts/yaml.rb
index f1256cfa4..8b49fa3b5 100755
--- a/spec/unit/indirector/yaml/facts.rb
+++ b/spec/unit/indirector/facts/yaml.rb
@@ -3,24 +3,24 @@
require File.dirname(__FILE__) + '/../../../spec_helper'
require 'puppet/node/facts'
-require 'puppet/indirector/yaml/facts'
+require 'puppet/indirector/facts/yaml'
-describe Puppet::Indirector::Yaml::Facts do
+describe Puppet::Node::Facts::Yaml do
it "should be a subclass of the Yaml terminus" do
- Puppet::Indirector::Yaml::Facts.superclass.should equal(Puppet::Indirector::Yaml)
+ Puppet::Node::Facts::Yaml.superclass.should equal(Puppet::Indirector::Yaml)
end
it "should have documentation" do
- Puppet::Indirector::Yaml::Facts.doc.should_not be_nil
+ Puppet::Node::Facts::Yaml.doc.should_not be_nil
end
it "should be registered with the facts indirection" do
indirection = Puppet::Indirector::Indirection.instance(:facts)
- Puppet::Indirector::Yaml::Facts.indirection.should equal(indirection)
+ Puppet::Node::Facts::Yaml.indirection.should equal(indirection)
end
it "should have its name set to :facts" do
- Puppet::Indirector::Yaml::Facts.name.should == :facts
+ Puppet::Node::Facts::Yaml.name.should == :yaml
end
end
diff --git a/spec/unit/indirector/file.rb b/spec/unit/indirector/file.rb
index cc86f9fa9..216c9bfe1 100755
--- a/spec/unit/indirector/file.rb
+++ b/spec/unit/indirector/file.rb
@@ -12,7 +12,7 @@ module FileTerminusTesting
@file_class = Class.new(Puppet::Indirector::File) do
def self.to_s
- "Testing"
+ "Testing::Mytype"
end
end
diff --git a/spec/unit/indirector/indirection.rb b/spec/unit/indirector/indirection.rb
index 25152d123..455b5dc67 100755
--- a/spec/unit/indirector/indirection.rb
+++ b/spec/unit/indirector/indirection.rb
@@ -137,17 +137,17 @@ describe Puppet::Indirector::Indirection, " when specifying terminus types" do
end
it "should fail when the specified terminus class cannot be found" do
- Puppet::Indirector::Terminus.expects(:terminus_class).with(:foo, :test).returns(nil)
+ Puppet::Indirector::Terminus.expects(:terminus_class).with(:test, :foo).returns(nil)
proc { @indirection.terminus_class = :foo }.should raise_error(ArgumentError)
end
it "should select the specified terminus class if a terminus class name is provided" do
- Puppet::Indirector::Terminus.expects(:terminus_class).with(:foo, :test).returns(@terminus_class)
+ Puppet::Indirector::Terminus.expects(:terminus_class).with(:test, :foo).returns(@terminus_class)
@indirection.terminus(:foo).should equal(@terminus)
end
it "should use the configured terminus class if no terminus name is specified" do
- Puppet::Indirector::Terminus.stubs(:terminus_class).with(:foo, :test).returns(@terminus_class)
+ Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :foo).returns(@terminus_class)
@indirection.terminus_class = :foo
@indirection.terminus().should equal(@terminus)
end
@@ -162,7 +162,7 @@ describe Puppet::Indirector::Indirection, " when managing terminus instances" do
@indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
@terminus = mock 'terminus'
@terminus_class = mock 'terminus class'
- Puppet::Indirector::Terminus.stubs(:terminus_class).with(:foo, :test).returns(@terminus_class)
+ Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :foo).returns(@terminus_class)
end
it "should create an instance of the chosen terminus class" do
@@ -203,7 +203,7 @@ describe Puppet::Indirector::Indirection, " when deciding whether to cache" do
@terminus = mock 'terminus'
@terminus_class = mock 'terminus class'
@terminus_class.stubs(:new).returns(@terminus)
- Puppet::Indirector::Terminus.stubs(:terminus_class).with(:foo, :test).returns(@terminus_class)
+ Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :foo).returns(@terminus_class)
@indirection.terminus_class = :foo
end
@@ -224,7 +224,7 @@ describe Puppet::Indirector::Indirection, " when deciding whether to cache" do
end
it "should fail to set the cache class when the specified cache class cannot be found" do
- Puppet::Indirector::Terminus.expects(:terminus_class).with(:foo, :test).returns(nil)
+ Puppet::Indirector::Terminus.expects(:terminus_class).with(:test, :foo).returns(nil)
proc { @indirection.cache_class = :foo }.should raise_error(ArgumentError)
end
@@ -242,8 +242,8 @@ module IndirectionCaching
@terminus_class.stubs(:new).returns(@terminus)
@cache = mock 'cache'
@cache_class = mock 'cache_class'
- Puppet::Indirector::Terminus.stubs(:terminus_class).with(:cache_terminus, :test).returns(@cache_class)
- Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test_terminus, :test).returns(@terminus_class)
+ Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :cache_terminus).returns(@cache_class)
+ Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :test_terminus).returns(@terminus_class)
@indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
@indirection.terminus_class = :test_terminus
end
diff --git a/spec/unit/indirector/indirector.rb b/spec/unit/indirector/indirector.rb
index 1f63da30d..64c7bdfca 100755
--- a/spec/unit/indirector/indirector.rb
+++ b/spec/unit/indirector/indirector.rb
@@ -46,7 +46,7 @@ describe Puppet::Indirector, "when registering an indirection" do
it "should allow specification of a default terminus" do
klass = mock 'terminus class'
- Puppet::Indirector::Terminus.stubs(:terminus_class).with(:foo, :first).returns(klass)
+ Puppet::Indirector::Terminus.stubs(:terminus_class).with(:first, :foo).returns(klass)
@indirection = @thingie.indirects :first, :terminus_class => :foo
@indirection.terminus_class.should == :foo
end
diff --git a/spec/unit/indirector/ldap.rb b/spec/unit/indirector/ldap.rb
index fe9408986..6712ccb4f 100755
--- a/spec/unit/indirector/ldap.rb
+++ b/spec/unit/indirector/ldap.rb
@@ -6,11 +6,11 @@ require 'puppet/indirector/ldap'
describe Puppet::Indirector::Ldap, " when searching ldap" do
before do
- @indirection = mock 'indirection'
+ @indirection = stub 'indirection', :name => :testing
Puppet::Indirector::Indirection.stubs(:instance).returns(@indirection)
@ldap_class = Class.new(Puppet::Indirector::Ldap) do
def self.to_s
- "Testing"
+ "Testing::Mytype"
end
end
diff --git a/spec/unit/indirector/memory.rb b/spec/unit/indirector/memory.rb
index ac6f055ce..c0fca6bd9 100755
--- a/spec/unit/indirector/memory.rb
+++ b/spec/unit/indirector/memory.rb
@@ -42,7 +42,7 @@ describe Puppet::Indirector::Memory do
@memory_class = Class.new(Puppet::Indirector::Memory) do
def self.to_s
- "Testing"
+ "Mystuff::Testing"
end
end
diff --git a/spec/unit/indirector/exec/node.rb b/spec/unit/indirector/node/exec.rb
index 47f4ce7a5..744a32b0a 100755
--- a/spec/unit/indirector/exec/node.rb
+++ b/spec/unit/indirector/node/exec.rb
@@ -2,13 +2,13 @@
require File.dirname(__FILE__) + '/../../../spec_helper'
-require 'puppet/indirector/exec/node'
+require 'puppet/indirector/node/exec'
-describe Puppet::Indirector::Exec::Node, " when constructing the command to run" do
+describe Puppet::Node::Exec, " when constructing the command to run" do
before do
@indirection = mock 'indirection'
Puppet.settings.stubs(:value).with(:external_nodes).returns("/echo")
- @searcher = Puppet::Indirector::Exec::Node.new
+ @searcher = Puppet::Node::Exec.new
end
it "should use the external_node script as the command" do
@@ -22,11 +22,11 @@ describe Puppet::Indirector::Exec::Node, " when constructing the command to run"
end
end
-describe Puppet::Indirector::Exec::Node, " when handling the results of the command" do
+describe Puppet::Node::Exec, " when handling the results of the command" do
before do
@indirection = mock 'indirection'
Puppet.settings.stubs(:value).with(:external_nodes).returns("/echo")
- @searcher = Puppet::Indirector::Exec::Node.new
+ @searcher = Puppet::Node::Exec.new
@node = stub 'node', :fact_merge => nil
@name = "yay"
Puppet::Node.expects(:new).with(@name).returns(@node)
diff --git a/spec/unit/indirector/ldap/node.rb b/spec/unit/indirector/node/ldap.rb
index 6667efdd5..8c6888357 100755
--- a/spec/unit/indirector/ldap/node.rb
+++ b/spec/unit/indirector/node/ldap.rb
@@ -2,11 +2,11 @@
require File.dirname(__FILE__) + '/../../../spec_helper'
-require 'puppet/indirector/ldap/node'
+require 'puppet/indirector/node/ldap'
module LdapNodeSearching
def setup
- @searcher = Puppet::Indirector::Ldap::Node.new
+ @searcher = Puppet::Node::Ldap.new
@entries = {}
entries = @entries
@@ -26,7 +26,7 @@ module LdapNodeSearching
end
end
-describe Puppet::Indirector::Ldap::Node, " when searching for nodes" do
+describe Puppet::Node::Ldap, " when searching for nodes" do
include LdapNodeSearching
it "should return nil if no results are found in ldap" do
@@ -82,7 +82,7 @@ describe Puppet::Indirector::Ldap::Node, " when searching for nodes" do
end
end
-describe Puppet::Indirector::Ldap::Node, " when a parent node is specified" do
+describe Puppet::Node::Ldap, " when a parent node is specified" do
include LdapNodeSearching
before do
@@ -169,9 +169,9 @@ describe Puppet::Indirector::Ldap::Node, " when a parent node is specified" do
end
end
-describe Puppet::Indirector::Ldap::Node, " when developing the search query" do
+describe Puppet::Node::Ldap, " when developing the search query" do
before do
- @searcher = Puppet::Indirector::Ldap::Node.new
+ @searcher = Puppet::Node::Ldap.new
end
it "should return the value of the :ldapclassattrs split on commas as the class attributes" do
@@ -208,9 +208,9 @@ describe Puppet::Indirector::Ldap::Node, " when developing the search query" do
end
end
-describe Puppet::Indirector::Ldap::Node, " when deciding attributes to search for" do
+describe Puppet::Node::Ldap, " when deciding attributes to search for" do
before do
- @searcher = Puppet::Indirector::Ldap::Node.new
+ @searcher = Puppet::Node::Ldap.new
end
it "should use 'nil' if the :ldapattrs setting is 'all'" do
diff --git a/spec/unit/indirector/memory/node.rb b/spec/unit/indirector/node/memory.rb
index cba4af53a..f57cae818 100755
--- a/spec/unit/indirector/memory/node.rb
+++ b/spec/unit/indirector/node/memory.rb
@@ -2,16 +2,16 @@
require File.dirname(__FILE__) + '/../../../spec_helper'
-require 'puppet/indirector/memory/node'
+require 'puppet/indirector/node/memory'
# All of our behaviour is described here, so we always have to
# include it.
require 'unit/indirector/memory'
-describe Puppet::Indirector::Memory::Node do
+describe Puppet::Node::Memory do
before do
@name = "me"
- @searcher = Puppet::Indirector::Memory::Node.new
+ @searcher = Puppet::Node::Memory.new
@instance = stub 'instance', :name => @name
end
diff --git a/spec/unit/indirector/null/node.rb b/spec/unit/indirector/node/null.rb
index c589e5820..8125e59a1 100755
--- a/spec/unit/indirector/null/node.rb
+++ b/spec/unit/indirector/node/null.rb
@@ -2,11 +2,11 @@
require File.dirname(__FILE__) + '/../../../spec_helper'
-require 'puppet/indirector/null/node'
+require 'puppet/indirector/node/null'
-describe Puppet::Indirector::Null::Node do
+describe Puppet::Node::Null do
before do
- @searcher = Puppet::Indirector::Null::Node.new
+ @searcher = Puppet::Node::Null.new
end
it "should call node_merge() on the returned node" do
diff --git a/spec/unit/indirector/node/rest.rb b/spec/unit/indirector/node/rest.rb
new file mode 100755
index 000000000..33cfda426
--- /dev/null
+++ b/spec/unit/indirector/node/rest.rb
@@ -0,0 +1,13 @@
+#!/usr/bin/env ruby
+
+require File.dirname(__FILE__) + '/../../../spec_helper'
+
+require 'puppet/indirector/node/rest'
+
+describe Puppet::Node::REST do
+ before do
+ @searcher = Puppet::Node::REST.new
+ end
+
+
+end
diff --git a/spec/unit/indirector/yaml/node.rb b/spec/unit/indirector/node/yaml.rb
index a14171b05..2e6c14c71 100755
--- a/spec/unit/indirector/yaml/node.rb
+++ b/spec/unit/indirector/node/yaml.rb
@@ -3,23 +3,23 @@
require File.dirname(__FILE__) + '/../../../spec_helper'
require 'puppet/node'
-require 'puppet/indirector/yaml/node'
+require 'puppet/indirector/node/yaml'
-describe Puppet::Indirector::Yaml::Node do
+describe Puppet::Node::Yaml do
it "should be a subclass of the Yaml terminus" do
- Puppet::Indirector::Yaml::Node.superclass.should equal(Puppet::Indirector::Yaml)
+ Puppet::Node::Yaml.superclass.should equal(Puppet::Indirector::Yaml)
end
it "should have documentation" do
- Puppet::Indirector::Yaml::Node.doc.should_not be_nil
+ Puppet::Node::Yaml.doc.should_not be_nil
end
it "should be registered with the configuration store indirection" do
indirection = Puppet::Indirector::Indirection.instance(:node)
- Puppet::Indirector::Yaml::Node.indirection.should equal(indirection)
+ Puppet::Node::Yaml.indirection.should equal(indirection)
end
it "should have its name set to :node" do
- Puppet::Indirector::Yaml::Node.name.should == :node
+ Puppet::Node::Yaml.name.should == :yaml
end
end
diff --git a/spec/unit/indirector/null.rb b/spec/unit/indirector/null.rb
index 9e1dcb07c..fe3a382dc 100755
--- a/spec/unit/indirector/null.rb
+++ b/spec/unit/indirector/null.rb
@@ -12,7 +12,7 @@ describe Puppet::Indirector::Null do
@null_class = Class.new(Puppet::Indirector::Null) do
def self.to_s
- "Testing"
+ "Mystuff::Testing"
end
end
diff --git a/spec/unit/indirector/code/report.rb b/spec/unit/indirector/report/processor.rb
index a27eaa297..587f512ee 100755
--- a/spec/unit/indirector/code/report.rb
+++ b/spec/unit/indirector/report/processor.rb
@@ -5,19 +5,19 @@
require File.dirname(__FILE__) + '/../../../spec_helper'
-require 'puppet/indirector/code/report'
+require 'puppet/indirector/report/processor'
-describe Puppet::Indirector::Code::Report do
+describe Puppet::Transaction::Report::Processor do
it "should provide a method for saving reports" do
- Puppet::Indirector::Code::Report.new.should respond_to(:save)
+ Puppet::Transaction::Report::Processor.new.should respond_to(:save)
end
end
-describe Puppet::Indirector::Code::Report, " when saving a report" do
+describe Puppet::Transaction::Report::Processor, " when saving a report" do
before do
Puppet.settings.stubs(:use)
- @reporter = Puppet::Indirector::Code::Report.new
+ @reporter = Puppet::Transaction::Report::Processor.new
end
it "should not process the report if reports are set to 'none'" do
@@ -33,11 +33,11 @@ describe Puppet::Indirector::Code::Report, " when saving a report" do
end
end
-describe Puppet::Indirector::Code::Report, " when processing a report" do
+describe Puppet::Transaction::Report::Processor, " when processing a report" do
before do
Puppet.settings.stubs(:value).with(:reports).returns("one")
Puppet.settings.stubs(:use)
- @reporter = Puppet::Indirector::Code::Report.new
+ @reporter = Puppet::Transaction::Report::Processor.new
@report_type = mock 'one'
@dup_report = mock 'dupe report'
diff --git a/spec/unit/indirector/rest/node.rb b/spec/unit/indirector/rest/node.rb
deleted file mode 100755
index c78556ada..000000000
--- a/spec/unit/indirector/rest/node.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/usr/bin/env ruby
-
-require File.dirname(__FILE__) + '/../../../spec_helper'
-
-require 'puppet/indirector/rest/node'
-
-describe Puppet::Indirector::REST::Node do
- before do
- @searcher = Puppet::Indirector::REST::Node.new
- end
-
-
-end
diff --git a/spec/unit/indirector/terminus.rb b/spec/unit/indirector/terminus.rb
index 3361bfeeb..99193dbc3 100755
--- a/spec/unit/indirector/terminus.rb
+++ b/spec/unit/indirector/terminus.rb
@@ -3,65 +3,70 @@
require File.dirname(__FILE__) + '/../../spec_helper'
require 'puppet/defaults'
require 'puppet/indirector'
+require 'puppet/indirector/file'
-describe Puppet::Indirector::Terminus do
- before do
+module TerminusInstanceTesting
+ def setup
Puppet::Indirector::Terminus.stubs(:register_terminus_class)
-
@indirection = stub 'indirection', :name => :my_stuff, :register_terminus_type => nil
Puppet::Indirector::Indirection.stubs(:instance).with(:my_stuff).returns(@indirection)
@abstract_terminus = Class.new(Puppet::Indirector::Terminus) do
def self.to_s
- "Abstract"
+ "Testing::Abstract"
end
end
- @terminus = Class.new(@abstract_terminus) do
+ @terminus_class = Class.new(@abstract_terminus) do
def self.to_s
- "Terminus::Type::MyStuff"
+ "MyStuff::TermType"
end
end
+ @terminus = @terminus_class.new
end
+end
+
+describe Puppet::Indirector::Terminus do
+ include TerminusInstanceTesting
it "should provide a method for setting terminus class documentation" do
- @terminus.should respond_to(:desc)
+ @terminus_class.should respond_to(:desc)
end
it "should support a class-level name attribute" do
- @terminus.should respond_to(:name)
+ @terminus_class.should respond_to(:name)
end
it "should support a class-level indirection attribute" do
- @terminus.should respond_to(:indirection)
+ @terminus_class.should respond_to(:indirection)
end
it "should support a class-level terminus-type attribute" do
- @terminus.should respond_to(:terminus_type)
+ @terminus_class.should respond_to(:terminus_type)
end
it "should support a class-level model attribute" do
- @terminus.should respond_to(:model)
+ @terminus_class.should respond_to(:model)
end
it "should accept indirection instances as its indirection" do
indirection = stub 'indirection', :is_a? => true, :register_terminus_type => nil
- proc { @terminus.indirection = indirection }.should_not raise_error
- @terminus.indirection.should equal(indirection)
+ proc { @terminus_class.indirection = indirection }.should_not raise_error
+ @terminus_class.indirection.should equal(indirection)
end
it "should look up indirection instances when only a name has been provided" do
indirection = mock 'indirection'
Puppet::Indirector::Indirection.expects(:instance).with(:myind).returns(indirection)
- @terminus.indirection = :myind
- @terminus.indirection.should equal(indirection)
+ @terminus_class.indirection = :myind
+ @terminus_class.indirection.should equal(indirection)
end
it "should fail when provided a name that does not resolve to an indirection" do
Puppet::Indirector::Indirection.expects(:instance).with(:myind).returns(nil)
- proc { @terminus.indirection = :myind }.should raise_error(ArgumentError)
+ proc { @terminus_class.indirection = :myind }.should raise_error(ArgumentError)
# It shouldn't overwrite our existing one (or, more normally, it shouldn't set
# anything).
- @terminus.indirection.should equal(@indirection)
+ @terminus_class.indirection.should equal(@indirection)
end
end
@@ -75,9 +80,9 @@ describe Puppet::Indirector::Terminus, " when managing terminus classes" do
end
it "should provide a method for returning terminus classes by name and type" do
- terminus = stub 'terminus_type', :terminus_type => :abstract, :name => :whatever
+ terminus = stub 'terminus_type', :name => :abstract, :indirection_name => :whatever
Puppet::Indirector::Terminus.register_terminus_class(terminus)
- Puppet::Indirector::Terminus.terminus_class(:abstract, :whatever).should equal(terminus)
+ Puppet::Indirector::Terminus.terminus_class(:whatever, :abstract).should equal(terminus)
end
it "should set up autoloading for any terminus class types requested" do
@@ -88,6 +93,7 @@ describe Puppet::Indirector::Terminus, " when managing terminus classes" do
it "should load terminus classes that are not found" do
# Set up instance loading; it would normally happen automatically
Puppet::Indirector::Terminus.instance_load :test1, "puppet/indirector/test1"
+
Puppet::Indirector::Terminus.instance_loader(:test1).expects(:load).with(:yay)
Puppet::Indirector::Terminus.terminus_class(:test1, :yay)
end
@@ -103,7 +109,7 @@ describe Puppet::Indirector::Terminus, " when managing terminus classes" do
proc {
@terminus = Class.new(@abstract_terminus) do
def self.to_s
- "MyIndirection"
+ "MyIndirection::TestType"
end
end
}.should raise_error(ArgumentError)
@@ -111,9 +117,9 @@ describe Puppet::Indirector::Terminus, " when managing terminus classes" do
it "should register the terminus class with the terminus base class" do
Puppet::Indirector::Terminus.expects(:register_terminus_class).with do |type|
- type.terminus_type == :abstract and type.name == :my_indirection
+ type.indirection_name == :my_indirection and type.name == :test_terminus
end
- @indirection = stub 'indirection', :name => :myind, :register_terminus_type => nil
+ @indirection = stub 'indirection', :name => :my_indirection, :register_terminus_type => nil
Puppet::Indirector::Indirection.expects(:instance).with(:my_indirection).returns(@indirection)
@abstract_terminus = Class.new(Puppet::Indirector::Terminus) do
@@ -124,21 +130,55 @@ describe Puppet::Indirector::Terminus, " when managing terminus classes" do
@terminus = Class.new(@abstract_terminus) do
def self.to_s
- "MyIndirection"
+ "MyIndirection::TestTerminus"
end
end
end
end
-describe Puppet::Indirector::Terminus, " when converting class constants to indirection names" do
- it "should convert camel case to lower case with underscores as word separators" do
- subclass = mock 'subclass'
- subclass.stubs(:to_s).returns("OneTwo")
- subclass.stubs(:mark_as_abstract_terminus)
+describe Puppet::Indirector::Terminus, " when parsing class constants for indirection and terminus names" do
+ before do
+ @subclass = mock 'subclass'
+ @subclass.stubs(:to_s).returns("TestInd::OneTwo")
+ @subclass.stubs(:mark_as_abstract_terminus)
+ Puppet::Indirector::Terminus.stubs(:register_terminus_class)
+ end
+
+ it "should fail when anonymous classes are used" do
+ proc { Puppet::Indirector::Terminus.inherited(Class.new) }.should raise_error(Puppet::DevError)
+ end
+
+ it "should use the last term in the constant for the terminus class name" do
+ @subclass.expects(:name=).with(:one_two)
+ @subclass.stubs(:indirection=)
+ Puppet::Indirector::Terminus.inherited(@subclass)
+ end
+
+ it "should convert the terminus name to a downcased symbol" do
+ @subclass.expects(:name=).with(:one_two)
+ @subclass.stubs(:indirection=)
+ Puppet::Indirector::Terminus.inherited(@subclass)
+ end
+
+ it "should use the second to last term in the constant for the indirection name" do
+ @subclass.expects(:indirection=).with(:test_ind)
+ @subclass.stubs(:name=)
+ @subclass.stubs(:terminus_type=)
+ Puppet::Indirector::File.inherited(@subclass)
+ end
+
+ it "should convert the indirection name to a downcased symbol" do
+ @subclass.expects(:indirection=).with(:test_ind)
+ @subclass.stubs(:name=)
+ @subclass.stubs(:terminus_type=)
+ Puppet::Indirector::File.inherited(@subclass)
+ end
- subclass.expects(:name=).with(:one_two)
+ it "should convert camel case to lower case with underscores as word separators" do
+ @subclass.expects(:name=).with(:one_two)
+ @subclass.stubs(:indirection=)
- Puppet::Indirector::Terminus.inherited(subclass)
+ Puppet::Indirector::Terminus.inherited(@subclass)
end
end
@@ -166,24 +206,7 @@ describe Puppet::Indirector::Terminus, " when creating terminus class types" do
end
describe Puppet::Indirector::Terminus, " when creating terminus classes" do
- before do
- Puppet::Indirector::Terminus.stubs(:register_terminus_class)
-
- @indirection = stub 'indirection', :name => :myind, :register_terminus_type => nil
- Puppet::Indirector::Indirection.expects(:instance).with(:my_indirection).returns(@indirection)
-
- @abstract_terminus = Class.new(Puppet::Indirector::Terminus) do
- def self.to_s
- "Abstract"
- end
- end
- @terminus = Class.new(@abstract_terminus) do
- def self.to_s
- "MyIndirection"
- end
- end
- end
-
+ include TerminusInstanceTesting
it "should associate the subclass with an indirection based on the subclass constant" do
@terminus.indirection.should equal(@indirection)
end
@@ -193,7 +216,7 @@ describe Puppet::Indirector::Terminus, " when creating terminus classes" do
end
it "should set the subclass's name to the indirection name" do
- @terminus.name.should == :my_indirection
+ @terminus.name.should == :term_type
end
it "should set the subclass's model to the indirection model" do
@@ -202,31 +225,11 @@ describe Puppet::Indirector::Terminus, " when creating terminus classes" do
end
end
-module TerminusInstanceTesting
- def setup
- Puppet::Indirector::Terminus.stubs(:register_terminus_class)
- @indirection = stub 'indirection', :name => :myyaml, :register_terminus_type => nil
- Puppet::Indirector::Indirection.stubs(:instance).with(:my_stuff).returns(@indirection)
- @abstract_terminus = Class.new(Puppet::Indirector::Terminus) do
- def self.to_s
- "Abstract"
- end
- end
- @terminus_class = Class.new(@abstract_terminus) do
- def self.to_s
- "MyStuff"
- end
- end
- @terminus_class.name = :test
- @terminus = @terminus_class.new
- end
-end
-
describe Puppet::Indirector::Terminus, " when a terminus instance" do
include TerminusInstanceTesting
it "should return the class's name as its name" do
- @terminus.name.should == :test
+ @terminus.name.should == :term_type
end
it "should return the class's indirection as its indirection" do
diff --git a/spec/unit/indirector/yaml.rb b/spec/unit/indirector/yaml.rb
index 453b703a1..f217a31b5 100755
--- a/spec/unit/indirector/yaml.rb
+++ b/spec/unit/indirector/yaml.rb
@@ -10,7 +10,7 @@ module YamlTesting
Puppet::Indirector::Indirection.stubs(:instance).with(:my_yaml).returns(@indirection)
@store_class = Class.new(Puppet::Indirector::Yaml) do
def self.to_s
- "MyYaml"
+ "MyYaml::MyType"
end
end
@store = @store_class.new
diff --git a/spec/unit/indirector/yaml/configuration.rb b/spec/unit/indirector/yaml/configuration.rb
deleted file mode 100755
index 3f0bc6f30..000000000
--- a/spec/unit/indirector/yaml/configuration.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env ruby
-
-require File.dirname(__FILE__) + '/../../../spec_helper'
-
-require 'puppet/node/configuration'
-require 'puppet/indirector/yaml/configuration'
-
-describe Puppet::Indirector::Yaml::Configuration do
- it "should be a subclass of the Yaml terminus" do
- Puppet::Indirector::Yaml::Configuration.superclass.should equal(Puppet::Indirector::Yaml)
- end
-
- it "should have documentation" do
- Puppet::Indirector::Yaml::Configuration.doc.should_not be_nil
- end
-
- it "should be registered with the configuration store indirection" do
- indirection = Puppet::Indirector::Indirection.instance(:configuration)
- Puppet::Indirector::Yaml::Configuration.indirection.should equal(indirection)
- end
-
- it "should have its name set to :configuration" do
- Puppet::Indirector::Yaml::Configuration.name.should == :configuration
- end
-end
diff --git a/spec/unit/node/configuration.rb b/spec/unit/node/configuration.rb
index 62d8e343d..5f807b9b6 100755
--- a/spec/unit/node/configuration.rb
+++ b/spec/unit/node/configuration.rb
@@ -651,8 +651,8 @@ describe Puppet::Node::Configuration, " when indirecting" do
Puppet::Node::Configuration.find(:myconfig)
end
- it "should default to the code terminus" do
- Puppet::Node::Configuration.indirection.terminus_class.should == :code
+ it "should default to the 'compiler' terminus" do
+ Puppet::Node::Configuration.indirection.terminus_class.should == :compiler
end
after do
diff --git a/spec/unit/node/facts.rb b/spec/unit/node/facts.rb
index ef5c91071..743a7082e 100755
--- a/spec/unit/node/facts.rb
+++ b/spec/unit/node/facts.rb
@@ -26,8 +26,8 @@ describe Puppet::Node::Facts, " when indirecting" do
@facts.save
end
- it "should default to the code terminus" do
- Puppet::Node::Facts.indirection.terminus_class.should == :code
+ it "should default to the 'facter' terminus" do
+ Puppet::Node::Facts.indirection.terminus_class.should == :facter
end
after do
diff --git a/spec/unit/transaction/report.rb b/spec/unit/transaction/report.rb
index ce8c4038d..8fc3f0794 100755
--- a/spec/unit/transaction/report.rb
+++ b/spec/unit/transaction/report.rb
@@ -24,8 +24,8 @@ describe Puppet::Transaction::Report, " when being indirect" do
report.save
end
- it "should default to the 'code' terminus" do
- Puppet::Transaction::Report.indirection.terminus_class.should == :code
+ it "should default to the 'processor' terminus" do
+ Puppet::Transaction::Report.indirection.terminus_class.should == :processor
end
after do