| Age | Commit message (Collapse) | Author | 
 | 
 | 
 | 
Previously, the random number generator was seeded with the array or
string to be rotated in addition to any values specifically provided for
seeding. This behavior is potentially insecure in that it allows an
attacker who can modify the source data to choose the post-shuffle
order.
 | 
 | 
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
 | 
 | 
As per puppetlabs/puppet@292233c, this leaves the global seed in a
deterministic state, which is bad. Puppet::Util.deterministic_rand()
exists to avoid running into this issue, but is only present starting in
Puppet 3.2.0.
 | 
 | 
We need to use
  unless value.is_a?(String) || value.is_a?(Array)
rather than
  klass = value.class
  unless [String, Array].include?(klass)
because the klass version enforces type checking which is too strict, and does
not allow us to accept objects wich have extended String (or Array).
For example, generate() function now returns Puppet::Util::Execution::ProcessOutput
which is just a very simple extension of String.  While this in it's self was
not intentional (PUP-2306) it is not unreasonable to cope with objects which
extend Strings
 | 
 | 
This conversion is done by Transpec 2.2.1 with the following command:
    transpec spec/functions
* 345 conversions
    from: obj.should
      to: expect(obj).to
* 122 conversions
    from: == expected
      to: eq(expected)
* 85 conversions
    from: lambda { }.should
      to: expect { }.to
* 22 conversions
    from: be_true
      to: be_truthy
* 16 conversions
    from: be_false
      to: be_falsey
* 11 conversions
    from: pending
      to: skip
* 9 conversions
    from: it { should ... }
      to: it { is_expected.to ... }
* 5 conversions
    from: =~ [1, 2]
      to: match_array([1, 2])
* 2 conversions
    from: =~ /pattern/
      to: match(/pattern/)
* 2 conversions
    from: obj.should_not
      to: expect(obj).not_to
For more details: https://github.com/yujinakayama/transpec#supported-conversions
 | 
 | 
rspec-puppet matchers are defined for tests which exist in
spec/functions, but the function unit tests lived in
spec/unit/puppet/parser/functions. This moves them to the correct place
for using rspec-puppet
 |