puppetlabs/puppetlabs-stdlib — pull request #80 by jeffmccune (2012-07-20 01:04:55+00:00)
Title: Changes:

b20d0da (Jeff McCune, 27 minutes ago)
(Maint) Fix up the get_module_path parser function

This patch switches the spec tests for the get_module_path function to use
mock objects. The underlying Puppet::Module.find method has reasonable
test coverage inside of Puppet core so we might as well break the tight
dependency while we're fixing up the specs to use the new parser scope.

The behavior of the parser function itself should still have complete
coverage even though the tests have switched to mock the implementation
inside of Puppet.

8fb0a46 (Jeff McCune, 2 hours ago)
(Maint) use PuppetlabsSpec::PuppetSeams.parser_scope (2.3.x)

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::PuppetSeams.parser_scope }

This patch simply implements this across the board.