]> gitweb.fluxo.info Git - puppet-stdlib.git/commitdiff
(Maint) use PuppetlabsSpec::PuppetSeams.parser_scope (2.3.x)
authorJeff McCune <jeff@puppetlabs.com>
Thu, 19 Jul 2012 23:14:37 +0000 (16:14 -0700)
committerJeff McCune <jeff@puppetlabs.com>
Mon, 23 Jul 2012 16:13:08 +0000 (09:13 -0700)
This patch is the same approach as the one that want into 2.2.x.  It
covers the functions in 2.3.x that do not exist in 2.2.x.

Without this patch all of the spec tests for parser functions in stdlib
would instantiate their own scope instances.  This is a problem because
the standard library is tightly coupled with the internal behavior of
Puppet.  Tight coupling like this creates failures when we change the
internal behavior of Puppet.  This is exactly what happened recently
when we changed the method signature for the initializer of
Puppet::Parser::Scope instances.

This patch fixes the problem by creating scope instances using the
puppet labs spec helper.  The specific method that provides scope
instances in Puppet-version-independent way is something like this:

    let(:scope) { PuppetlabsSpec::PuppetInternals.scope }

This patch simply implements this across the board.

spec/unit/puppet/parser/functions/str2saltedsha512_spec.rb
spec/unit/puppet/parser/functions/validate_absolute_path_spec.rb
spec/unit/puppet/parser/functions/validate_re_spec.rb
spec/unit/puppet/parser/functions/validate_slength_spec.rb

index 11485aa0a8136aa5767f2fd303ddf95fd0095ce6..a692c31331facc61a85f419d35c8581385103b5a 100644 (file)
@@ -1,39 +1,33 @@
-#!/usr/bin/env rspec
+#! /usr/bin/env ruby -S rspec
 require 'spec_helper'
 
 describe "the str2saltedsha512 function" do
-  before :all do
-    Puppet::Parser::Functions.autoloader.loadall
-  end
-
-  before :each do
-    @scope = Puppet::Parser::Scope.new
-  end
+  let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
 
   it "should exist" do
     Puppet::Parser::Functions.function("str2saltedsha512").should == "function_str2saltedsha512"
   end
 
   it "should raise a ParseError if there is less than 1 argument" do
-    expect { @scope.function_str2saltedsha512([]) }.should( raise_error(Puppet::ParseError) )
+    expect { scope.function_str2saltedsha512([]) }.should( raise_error(Puppet::ParseError) )
   end
 
   it "should raise a ParseError if there is more than 1 argument" do
-    expect { @scope.function_str2saltedsha512(['foo', 'bar', 'baz']) }.should( raise_error(Puppet::ParseError) )
+    expect { scope.function_str2saltedsha512(['foo', 'bar', 'baz']) }.should( raise_error(Puppet::ParseError) )
   end
 
   it "should return a salted-sha512 password hash 136 characters in length" do
-    result = @scope.function_str2saltedsha512(["password"])
+    result = scope.function_str2saltedsha512(["password"])
     result.length.should(eq(136))
   end
 
   it "should raise an error if you pass a non-string password" do
-    expect { @scope.function_str2saltedsha512([1234]) }.should( raise_error(Puppet::ParseError) )
+    expect { scope.function_str2saltedsha512([1234]) }.should( raise_error(Puppet::ParseError) )
   end
 
   it "should generate a valid password" do
     # Allow the function to generate a password based on the string 'password'
-    password_hash = @scope.function_str2saltedsha512(["password"])
+    password_hash = scope.function_str2saltedsha512(["password"])
 
     # Separate the Salt and Password from the Password Hash
     salt     = password_hash[0..7]
index 1e0b5ace124b66ae4fb2853fe8d3643ce549850b..9d66fcb3be492a84becfbdaa362a60ce9b74f24f 100644 (file)
@@ -1,14 +1,10 @@
 require 'spec_helper'
 
 describe Puppet::Parser::Functions.function(:validate_absolute_path) do
-  before :all do
-    Puppet::Parser::Functions.autoloader.loadall
-  end
+  let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
 
   # The subject of these examplres is the method itself.
-  subject do
-    Puppet::Parser::Scope.new.method :function_validate_absolute_path
-  end
+  subject() { scope.method(:function_validate_absolute_path) }
 
   describe "Valid Paths" do
     def self.valid_paths
index c35ae14b87c0d5baea11267a3dc5e4fdb725428d..a07ad47f2b8ab857563d2f5e4a74d23be2546a4e 100644 (file)
@@ -1,13 +1,7 @@
 require 'spec_helper'
 
 describe Puppet::Parser::Functions.function(:validate_re) do
-  before :all do
-    Puppet::Parser::Functions.autoloader.loadall
-  end
-
-  let(:scope) do
-    scope = Puppet::Parser::Scope.new
-  end
+  let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
 
   # The subject of these examplres is the method itself.
   subject do
index d2d4ca0b8459263fdc231d20cd6c9a54b8ae13b2..eccf908de07202e8a1f6a0fc58adc0ab588c2baa 100755 (executable)
@@ -1,13 +1,9 @@
-#!/usr/bin/env rspec
+#! /usr/bin/env ruby -S rspec
 
 require 'spec_helper'
 
 describe "the validate_slength function" do
-  before :all do
-    Puppet::Parser::Functions.autoloader.loadall
-  end
-
-  let(:scope) { Puppet::Parser::Scope.new }
+  let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
 
   it "should exist" do
     Puppet::Parser::Functions.function("validate_slength").should == "function_validate_slength"