Commit graph

26 commits

Author SHA1 Message Date
David Schmitt
18d4c21418 Remove unused puppet_spec code
This is copied and changed code from an older version of puppet's internal
test setup code. It does not work with puppet4.
2015-06-01 18:02:22 +01:00
David Schmitt
f3e79ddcd5 Convert tests to use plain rspec-puppet
Tests in the new style produces the following documentation output:

abs
  should not eq nil
  should run abs() and raise an Puppet::ParseError
  should run abs(-34) and return 34
  should run abs("-34") and return 34
  should run abs(34) and return 34
  should run abs("34") and return 34
2015-06-01 18:02:22 +01:00
David Schmitt
b62dff0c6e spec_helper: implement an easy way for specs to confine to puppet version
Usage:

    describe 'puppet3 behaviour', :unless => RSpec.configuration.puppet_future do
    describe 'puppet4 behaviour', :if => RSpec.configuration.puppet_future do
2015-06-01 12:21:59 +01:00
David Schmitt
65b56c711d Workaround the broken rspec-mocks support in rspec-puppet 2015-06-01 12:21:59 +01:00
David Schmitt
6a0a6153d5 spec_helper: Remove unneccesary stubbing
This only roots all Facter instances into memory, while something already
creates a new Facter instance each run.
2015-05-05 13:30:57 +01:00
David Schmitt
24680aceec spec_helper: use proper mocha import to avoid warning 2015-05-05 13:30:54 +01:00
David Schmitt
29f09e2181 spec_helper: set parser config if requested 2015-05-05 13:27:46 +01:00
Hunter Haugen
a7c129b22d Remove simplecov
simplecov 0.9 dropped ruby 1.8 support, and stdlib is one of the oddball
modules that uses it. So we could probably just remove it and be okay.
2014-08-05 11:28:18 -07:00
Hunter Haugen
c66a2e4f49 Add mode +x to spec .rb files 2014-05-07 15:00:30 -07:00
Andrea Veri
09f892023c Add the missing shebangs and fix the wrong ones for rpmlint to stop complaining loudly 2014-05-07 11:49:25 +02:00
Ashley Penney
3854e076cc Numerous changes to update testing gems.
This work updates a number of Gems to the latest versions (rspec,
rspec-puppet), and updates and tweaks a bunch of tests to work
with the updated gems.
2014-03-08 00:42:51 +00:00
Jeff McCune
ee05c32e49 Revert "Revert "Merge branch 'haus-add_pe_facts_to_stdlib' into 2.4.x""
This reverts commit d6d23b495c.

Why?  Because this change set should actually be in master and our
merge-up process reverted the change set in master when I reverted from
2.4.x.

This patch reverts the revert, restoring the original change set.
2012-10-25 10:43:51 -07:00
Jeff McCune
d6d23b495c Revert "Merge branch 'haus-add_pe_facts_to_stdlib' into 2.4.x"
This reverts commit 74e6411157, reversing
changes made to 417d219aa6.

Here's why:

Actually... I just screwed this up.

I merged this new fact into 2.4.x but it's not fixing any bug. It's adding a
new fact, so this should go into master and we should release 2.5 since this is
new, backwards-compatible functionality.
2012-10-25 10:41:52 -07:00
Jeff McCune
ba70a3885a (maint) Clear all facts before each example
Without this patch example groups must explicitly call `Facter.clear` to
clear any cached values between examples.  This is a problem because
this behavior is not the concern of the example groups, the behavior is
the concern of the spec_helper or whatever facility we have in place to
initialize the system for testing.

This patch fixes the problem by duplicating the logic in the Facter
spec_helper to ensure facts are cleared out before each example.

This patch requires the example groups to explicitly load the facts they
require if the fact name does not match the filename.
2012-10-24 17:23:42 -07:00
Jeff McCune
8a4e115ccb (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.
2012-07-19 16:24:57 -07:00
Jeff McCune
7d3433345e 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.
2012-05-11 00:01:32 -07:00
Jeff McCune
98aa06468a Revert "Merge remote-tracking branch 'eshamow/tickets/bug/13595_restrict_initialize_everything_for_tests' into 2.2.x"
This reverts commit 40da421c04, reversing
changes made to 69465b0f3e.
2012-04-04 08:56:35 -04:00
Eric Shamow
3222f35de8 (#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.
2012-04-03 23:26:36 -04:00
Jeff McCune
15c5fd1f41 (#13439) Fix MRI 1.9 issue with spec_helper
When using MRI 1.9.x the stdlib spec helper does not invoke because
Puppet.settings.private_methods returns symbols instead of strings.

This is a problem because we need to set default configuration settings
like Puppet[:vardir] when using the compiler.

This patch fixes the issue by simply checking the Puppet version.  This
seems a better choice than rescuing NoMethodError since the method might
be renamed or removed in the future.
2012-03-29 23:18:15 -07:00
Jeff McCune
665610baaf (#13439) Fix test failures with Puppet 2.6.x
Without this patch the spec_helper sends a message named
initialize_everything_for_tests to Puppet.settings.  This is a problem
because Puppet 2.6.x does not have this method, only Puppet 2.7.x and
Puppet master have this method at this time and we're getting false
positive test failures.

This patch fixes the problem by looking before we leap.  We test if the
private method exists before calling it.  This works with Ruby 1.8.5 and
onwards and Puppet 2.6, 2.7 and master.

This should fix all of the failures I've caused in Jenkins today.
2012-03-29 16:52:15 -07:00
cprice
82194ca7e7 (#13439) refactor spec helper for compatibility with both puppet 2.7 and
master
2012-03-29 16:25:09 -07:00
Jeff McCune
cc001095b3 (Maint) Make rspec tests work with Puppet 2.6.4
The behavior without this patch applied is that the rspec tests do not
function with Puppet 2.6.4.  This patch back-ports some fixes introduced
in Puppet 2.7.x to the spec_helper to make the tests work as expected on
Puppet 2.6.4.

The specific patches back ported from Puppet are:

 * 2ae88067 (Puppet::Util::ExecutionStub.reset)
 * cf183534 (Switched spec tests to use a class rather than Array as the
             log destination.)
2011-10-10 11:58:48 -07:00
Jeff McCune
11c1837745 (#9859) Add root_home fact and tests
Without this patch applied, the stdlib module does not provide a
root_home fact.  This fact is necessary to easily determine the root
account home directory on platforms Puppet is supported on.

The major variations this fact address are:
---
solaris: /
linux: /root
macosx: /var/root

Spec tests using rspec have been provided as well to cover these three
general cases.  Windows tests are marked as pending.
2011-10-03 11:51:05 -07:00
Ken Barber
aa27fc76c7 (#8797) Merge puppetlabs-functions into puppetlabs-stdlib
It was decided that maintaining puppetlabs-functions and
puppetlabs-stdlib was duplication as both are trying to
achieve the same goal.

This patch provides a merge of the puppetlabs-functions
into the puppetlabs-stdlib repository, with history
preservation.

The following conflicts were found and resolved:

* LICENSE file from functions was used as it aligns with
  ASL usage instructions and contains relevant copyright
  information:
  http://www.apache.org/licenses/LICENSE-2.0.html
* Used spec_helper.rb from functions - this is what
  Puppet core uses and doesn't break tests.
* Merged .gitignore and spec.opts options.
2011-08-05 10:31:46 +01:00
Ken Barber
157531cd29 Copied function test scaffolding from puppet. 2011-06-29 12:25:43 +01:00
Jeff McCune
6e9d0465bc Initial commit 2011-05-24 11:06:30 -07:00