diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec/classes/couchdb_spec.rb | 35 | ||||
-rw-r--r-- | spec/fixtures/manifests/site.pp | 8 | ||||
-rw-r--r-- | spec/spec_helper.rb | 9 | ||||
-rw-r--r-- | spec/unit/data/map+reduce.txt | 3 | ||||
-rw-r--r-- | spec/unit/data/map.txt | 4 | ||||
-rw-r--r-- | spec/unit/data/missing.txt | 1 | ||||
-rw-r--r-- | spec/unit/data/one-document.txt | 1 | ||||
-rw-r--r-- | spec/unit/data/proxy-failure.txt | 1 | ||||
-rwxr-xr-x | spec/unit/puppet/parser/functions/couchdblookup_spec.rb | 89 |
9 files changed, 52 insertions, 99 deletions
diff --git a/spec/classes/couchdb_spec.rb b/spec/classes/couchdb_spec.rb new file mode 100644 index 0000000..0dd069a --- /dev/null +++ b/spec/classes/couchdb_spec.rb @@ -0,0 +1,35 @@ +require 'spec_helper' + +describe 'couchdb' do + context 'given it is a wheezy system' do + let(:params) { {:admin_pw => 'foo'} } + let(:facts) do + { + :operatingsystemmajrelease => '7', + :operatingsystem => 'Debian', + :lsbdistcodename => 'wheezy', + } + end + it "should install couchrest 1.2" do + should contain_package('couchrest').with({ + 'ensure'=> '1.2', + }) + end + end + context 'given it is a jessie system' do + let(:params) { {:admin_pw => 'foo'} } + let(:facts) do + { + :operatingsystemmajrelease => '8', + :operatingsystem => 'Debian', + :lsbdistcodename => 'jessie', + } + end + it "should install latest couchrest version" do + should contain_package('couchrest').with({ + 'ensure'=> 'latest', + }) + end + end +end + diff --git a/spec/fixtures/manifests/site.pp b/spec/fixtures/manifests/site.pp new file mode 100644 index 0000000..a959fb7 --- /dev/null +++ b/spec/fixtures/manifests/site.pp @@ -0,0 +1,8 @@ +# set a default exec path +# the logoutput exec parameter defaults to "on_error" in puppet 3, +# but to "false" in puppet 2.7, so we need to set this globally here +Exec { + logoutput => on_failure, + path => '/usr/bin:/usr/sbin/:/bin:/sbin:/usr/local/bin:/usr/local/sbin' +} + diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb new file mode 100644 index 0000000..b55ede8 --- /dev/null +++ b/spec/spec_helper.rb @@ -0,0 +1,9 @@ +require 'rspec-puppet' + +fixture_path = File.expand_path(File.join(__FILE__, '..', 'fixtures')) + +RSpec.configure do |c| + c.module_path = File.join(fixture_path, 'modules') + c.manifest_dir = File.join(fixture_path, 'manifests') + c.environmentpath = File.join(Dir.pwd, 'spec') +end diff --git a/spec/unit/data/map+reduce.txt b/spec/unit/data/map+reduce.txt deleted file mode 100644 index 71e1836..0000000 --- a/spec/unit/data/map+reduce.txt +++ /dev/null @@ -1,3 +0,0 @@ -{"rows":[ -{"key":1,"value":["foo","bar","baz"]} -]} diff --git a/spec/unit/data/map.txt b/spec/unit/data/map.txt deleted file mode 100644 index 4335913..0000000 --- a/spec/unit/data/map.txt +++ /dev/null @@ -1,4 +0,0 @@ -{"total_rows":2,"offset":0,"rows":[ -{"id":"foo","key":1,"value":"foo"}, -{"id":"bar","key":2,"value":"bar"} -]} diff --git a/spec/unit/data/missing.txt b/spec/unit/data/missing.txt deleted file mode 100644 index 4e6d97e..0000000 --- a/spec/unit/data/missing.txt +++ /dev/null @@ -1 +0,0 @@ -{"error":"not_found","reason":"missing"} diff --git a/spec/unit/data/one-document.txt b/spec/unit/data/one-document.txt deleted file mode 100644 index 071cd7e..0000000 --- a/spec/unit/data/one-document.txt +++ /dev/null @@ -1 +0,0 @@ -{"_id":"foobar","_rev":"1-1750d8614a19943f36b545e7c5549503","wiki":true,"rt":true,"svn":true,"dav":null} diff --git a/spec/unit/data/proxy-failure.txt b/spec/unit/data/proxy-failure.txt deleted file mode 100644 index f5f1c37..0000000 --- a/spec/unit/data/proxy-failure.txt +++ /dev/null @@ -1 +0,0 @@ -<html><body><h1>It works!</h1></body></html> diff --git a/spec/unit/puppet/parser/functions/couchdblookup_spec.rb b/spec/unit/puppet/parser/functions/couchdblookup_spec.rb deleted file mode 100755 index 8777d71..0000000 --- a/spec/unit/puppet/parser/functions/couchdblookup_spec.rb +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env rspec - -require 'puppet' - -describe "the couchdblookup function" do - before :all do - Puppet::Parser::Functions.autoloader.loadall - @datapath = File.dirname(__FILE__) + '/../../../data/' - end - - before :each do - @scope = Puppet::Parser::Scope.new - end - - it "should exist" do - Puppet::Parser::Functions.function("couchdblookup").should == "function_couchdblookup" - end - - it "should raise a ParseError unless there is exactly 2 arguments" do - lambda { @scope.function_couchdblookup([]) }.should raise_error(Puppet::ParseError) - lambda { @scope.function_couchdblookup([1]) }.should raise_error(Puppet::ParseError) - lambda { @scope.function_couchdblookup([1,2,3]) }.should raise_error(Puppet::ParseError) - end - - it "should return the value of a key from a single couchdb document" do - sample_json = File.open(@datapath + 'one-document.txt') - OpenURI.stub!(:open_uri).and_return(sample_json) - - result = @scope.function_couchdblookup(["http://fake/uri", "wiki"]) - result.should eq(true) - end - - it "should raise a ParseError if a key can't be found in a couchdb document" do - sample_json = File.open(@datapath + 'one-document.txt') - OpenURI.stub!(:open_uri).and_return(sample_json) - - result = lambda { @scope.function_couchdblookup(["http://fake/uri", "fake-key"]) } - result.should raise_error(Puppet::ParseError) - end - - it "should return an array from the values of a couchdb view" do - sample_json = File.open(@datapath + 'map.txt') - OpenURI.stub!(:open_uri).and_return(sample_json) - - result = @scope.function_couchdblookup(["http://fake/uri", "value"]) - result.should eq(["foo", "bar"]) - end - - it "should raise a ParseError if a key can't be found in the rows of a couchdb view" do - sample_json = File.open(@datapath + 'map.txt') - OpenURI.stub!(:open_uri).and_return(sample_json) - - result = lambda { @scope.function_couchdblookup(["http://fake/uri", "fake-key"]) } - result.should raise_error(Puppet::ParseError) - end - - it "should return an array the values from a couchdb reduced view" do - sample_json = File.open(@datapath + 'map+reduce.txt') - OpenURI.stub!(:open_uri).and_return(sample_json) - - result = @scope.function_couchdblookup(["http://fake/uri", "value"]) - result.should eq(["foo", "bar", "baz"]) - end - - it "should raise a ParseError if a key can't be found in the rows of a couchdb reduced view" do - sample_json = File.open(@datapath + 'map+reduce.txt') - OpenURI.stub!(:open_uri).and_return(sample_json) - - result = lambda { @scope.function_couchdblookup(["http://fake/uri", "fake-key"]) } - result.should raise_error(Puppet::ParseError) - end - - it "should raise a ParseError if couchdb can't find the requested document" do - sample_json = File.open(@datapath + 'missing.txt') - OpenURI.stub!(:open_uri).and_return(sample_json) - - result = lambda { @scope.function_couchdblookup(["http://fake/uri", "a-key"]) } - result.should raise_error(Puppet::ParseError) - end - - it "should raise a ParseError if input in not valid JSON" do - sample_json = File.open(@datapath + 'proxy-failure.txt') - OpenURI.stub!(:open_uri).and_return(sample_json) - - result = lambda { @scope.function_couchdblookup(["http://fake/uri", "a-key"]) } - result.should raise_error(Puppet::ParseError) - end - -end |