(#13595) initialize_everything_for_tests couples modules Puppet ver

Replace regex used in spec_helper.rb to disallow both Puppet 2.6 and any
2.7 prior to 13.
Merge remote-tracking branch 'eshamow/tickets/bug/13595_restrict_initialize_everything_for_tests' into 2.2.x

* eshamow/tickets/bug/13595_restrict_initialize_everything_for_tests:
  (#13595) initialize_everything_for_tests couples modules Puppet ver
Revert "Merge remote-tracking branch 'eshamow/tickets/bug/13595_restrict_initialize_everything_for_tests' into 2.2.x"

This reverts commit 40da421c0480f940638d0db9aabf180500d6ae5c, reversing
changes made to 69465b0f3e0c0c5284812bfa76ab8d3c254d10a9.
Merge branch '2.2.x' into 2.3.x

* 2.2.x:
  Revert "Merge remote-tracking branch 'eshamow/tickets/bug/13595_restrict_initialize_everything_for_tests' into 2.2.x"
  (#13595) initialize_everything_for_tests couples modules Puppet ver
Fix spec tests using the new spec_helper

This patch back ports the file from the master branch.  The spec tests
fail without this patch applied.  This should make it easier to setup
Puppet settings using the puppet_spec_helper project.
Memoize file_line spec instance variables

This just changes the instance variables to a memoized let block and
gets ride of the before :each block.

The patch has no change in behavior.
Make file_line default to ensure => present

The examples in the file_line resource documentation state the following
resource should work:

    file_line { 'sudo_rule':
      path => '/etc/sudoers',
      line => '%sudo ALL=(ALL) ALL',
    }

Without this patch the example does not work because ensure is not set
to present.

This patch fixes the problem by setting the default value of ensure to
present.
Merge branch 'fix/2.3.x/file_line_ensure' into 2.3.x

* fix/2.3.x/file_line_ensure:
  Make file_line default to ensure => present
  Memoize file_line spec instance variables
  Fix spec tests using the new spec_helper
Update CHANGELOG for 2.3.2 release
Fix spec tests using the new spec_helper

This patch back ports the file from the master branch.  The spec tests
fail without this patch applied.  This should make it easier to setup
Puppet settings using the puppet_spec_helper project.
Merge branch '2.2.x' into 2.3.x

* 2.2.x:
  Fix spec tests using the new spec_helper
fix regression in #11017 properly

We need the defaultvalues for that.
Merge pull request #70 from duritong/2.3.x

fix regression in #11017 properly
Update CHANGELOG, Modulefile for 2.3.3
(Maint) Fix interpreter lines

This time around I actually know why I'm doing this thanks to the
reminder from Nick Lewis.

Ruby will replace itself in memory with the executable listed in the
interpreter line if the string "ruby" is not in there.

Since /usr/bin/env rspec doesn't contain the substring "ruby", you can't
actually run ruby -W1 or whatever on the file.

This patch fixes the problem by making sure "ruby" is present,
preventing ruby from replacing itself in memory.
(Maint) use PuppetlabsSpec::PuppetSeams.parser_scope

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.
Merge branch 'fix/2.2.x/make_it_green' into 2.2.x

* fix/2.2.x/make_it_green:
  (Maint) use PuppetlabsSpec::PuppetSeams.parser_scope
  (Maint) Fix interpreter lines
(Maint) Rename PuppetlabsSpec::Puppet{Seams,Internals}

The module PuppetlabsSpec::PuppetSeams has been renamed in the
puppetlabs_spec_helper gem to PuppetlabsSpec::PuppetInternals.

The method to obtain a scope object has also changed slightly.  Without
this patch the spec tests will fail because the stdlib module is not
aligned with the spec helper gem.  This patch fixes the problem by
matching up messages with their receivers in the spec helper library.

Paired-with: Andrew Parker <andy@puppetlabs.com>
Merge pull request #81 from jeffmccune/maint/2.2.x/rename_seams_to_internals

(Maint) Rename PuppetlabsSpec::Puppet{Seams,Internals}
Merge branch '2.2.x' into maint/2.3.x/merge_up_2.2.x

* 2.2.x:
  (Maint) Rename PuppetlabsSpec::Puppet{Seams,Internals}
  (Maint) use PuppetlabsSpec::PuppetSeams.parser_scope
  (Maint) Fix interpreter lines