puppetmodule-stdlib 4.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +253 -0
- data/CONTRIBUTING.md +65 -0
- data/Gemfile +33 -0
- data/LICENSE +19 -0
- data/Modulefile +11 -0
- data/README.markdown +1173 -0
- data/README_DEVELOPER.markdown +35 -0
- data/RELEASE_PROCESS.markdown +24 -0
- data/Rakefile +2 -0
- data/lib/facter/pe_version.rb +53 -0
- data/lib/facter/puppet_vardir.rb +26 -0
- data/lib/facter/root_home.rb +19 -0
- data/lib/facter/util/puppet_settings.rb +21 -0
- data/lib/puppet/parser/functions/abs.rb +36 -0
- data/lib/puppet/parser/functions/any2array.rb +33 -0
- data/lib/puppet/parser/functions/bool2num.rb +49 -0
- data/lib/puppet/parser/functions/capitalize.rb +34 -0
- data/lib/puppet/parser/functions/chomp.rb +35 -0
- data/lib/puppet/parser/functions/chop.rb +37 -0
- data/lib/puppet/parser/functions/concat.rb +37 -0
- data/lib/puppet/parser/functions/count.rb +22 -0
- data/lib/puppet/parser/functions/defined_with_params.rb +35 -0
- data/lib/puppet/parser/functions/delete.rb +46 -0
- data/lib/puppet/parser/functions/delete_at.rb +49 -0
- data/lib/puppet/parser/functions/downcase.rb +33 -0
- data/lib/puppet/parser/functions/empty.rb +28 -0
- data/lib/puppet/parser/functions/ensure_packages.rb +24 -0
- data/lib/puppet/parser/functions/ensure_resource.rb +35 -0
- data/lib/puppet/parser/functions/flatten.rb +33 -0
- data/lib/puppet/parser/functions/floor.rb +20 -0
- data/lib/puppet/parser/functions/fqdn_rotate.rb +46 -0
- data/lib/puppet/parser/functions/get_module_path.rb +17 -0
- data/lib/puppet/parser/functions/getparam.rb +35 -0
- data/lib/puppet/parser/functions/getvar.rb +26 -0
- data/lib/puppet/parser/functions/grep.rb +33 -0
- data/lib/puppet/parser/functions/has_interface_with.rb +52 -0
- data/lib/puppet/parser/functions/has_ip_address.rb +25 -0
- data/lib/puppet/parser/functions/has_ip_network.rb +25 -0
- data/lib/puppet/parser/functions/has_key.rb +28 -0
- data/lib/puppet/parser/functions/hash.rb +41 -0
- data/lib/puppet/parser/functions/is_array.rb +22 -0
- data/lib/puppet/parser/functions/is_domain_name.rb +47 -0
- data/lib/puppet/parser/functions/is_float.rb +27 -0
- data/lib/puppet/parser/functions/is_function_available.rb +23 -0
- data/lib/puppet/parser/functions/is_hash.rb +22 -0
- data/lib/puppet/parser/functions/is_integer.rb +27 -0
- data/lib/puppet/parser/functions/is_ip_address.rb +32 -0
- data/lib/puppet/parser/functions/is_mac_address.rb +27 -0
- data/lib/puppet/parser/functions/is_numeric.rb +27 -0
- data/lib/puppet/parser/functions/is_string.rb +26 -0
- data/lib/puppet/parser/functions/join.rb +41 -0
- data/lib/puppet/parser/functions/join_keys_to_values.rb +47 -0
- data/lib/puppet/parser/functions/keys.rb +26 -0
- data/lib/puppet/parser/functions/loadyaml.rb +20 -0
- data/lib/puppet/parser/functions/lstrip.rb +33 -0
- data/lib/puppet/parser/functions/max.rb +21 -0
- data/lib/puppet/parser/functions/member.rb +44 -0
- data/lib/puppet/parser/functions/merge.rb +33 -0
- data/lib/puppet/parser/functions/min.rb +21 -0
- data/lib/puppet/parser/functions/num2bool.rb +43 -0
- data/lib/puppet/parser/functions/parsejson.rb +24 -0
- data/lib/puppet/parser/functions/parseyaml.rb +24 -0
- data/lib/puppet/parser/functions/pick.rb +29 -0
- data/lib/puppet/parser/functions/prefix.rb +45 -0
- data/lib/puppet/parser/functions/range.rb +80 -0
- data/lib/puppet/parser/functions/reject.rb +31 -0
- data/lib/puppet/parser/functions/reverse.rb +28 -0
- data/lib/puppet/parser/functions/rstrip.rb +32 -0
- data/lib/puppet/parser/functions/shuffle.rb +46 -0
- data/lib/puppet/parser/functions/size.rb +48 -0
- data/lib/puppet/parser/functions/sort.rb +27 -0
- data/lib/puppet/parser/functions/squeeze.rb +36 -0
- data/lib/puppet/parser/functions/str2bool.rb +46 -0
- data/lib/puppet/parser/functions/str2saltedsha512.rb +32 -0
- data/lib/puppet/parser/functions/strftime.rb +107 -0
- data/lib/puppet/parser/functions/strip.rb +39 -0
- data/lib/puppet/parser/functions/suffix.rb +45 -0
- data/lib/puppet/parser/functions/swapcase.rb +39 -0
- data/lib/puppet/parser/functions/time.rb +49 -0
- data/lib/puppet/parser/functions/to_bytes.rb +28 -0
- data/lib/puppet/parser/functions/type.rb +50 -0
- data/lib/puppet/parser/functions/unique.rb +51 -0
- data/lib/puppet/parser/functions/upcase.rb +41 -0
- data/lib/puppet/parser/functions/uriescape.rb +36 -0
- data/lib/puppet/parser/functions/validate_absolute_path.rb +56 -0
- data/lib/puppet/parser/functions/validate_array.rb +33 -0
- data/lib/puppet/parser/functions/validate_augeas.rb +81 -0
- data/lib/puppet/parser/functions/validate_bool.rb +34 -0
- data/lib/puppet/parser/functions/validate_cmd.rb +47 -0
- data/lib/puppet/parser/functions/validate_hash.rb +33 -0
- data/lib/puppet/parser/functions/validate_re.rb +40 -0
- data/lib/puppet/parser/functions/validate_slength.rb +52 -0
- data/lib/puppet/parser/functions/validate_string.rb +33 -0
- data/lib/puppet/parser/functions/values.rb +39 -0
- data/lib/puppet/parser/functions/values_at.rb +98 -0
- data/lib/puppet/parser/functions/zip.rb +65 -0
- data/lib/puppet/provider/file_line/ruby.rb +59 -0
- data/lib/puppet/type/anchor.rb +41 -0
- data/lib/puppet/type/file_line.rb +70 -0
- data/manifests/init.pp +20 -0
- data/manifests/stages.pp +43 -0
- data/spec/functions/defined_with_params_spec.rb +37 -0
- data/spec/functions/ensure_packages_spec.rb +42 -0
- data/spec/functions/ensure_resource_spec.rb +40 -0
- data/spec/functions/getparam_spec.rb +34 -0
- data/spec/monkey_patches/alias_should_to_must.rb +8 -0
- data/spec/monkey_patches/publicize_methods.rb +10 -0
- data/spec/spec.opts +6 -0
- data/spec/spec_helper.rb +28 -0
- data/spec/unit/facter/pe_version_spec.rb +76 -0
- data/spec/unit/facter/root_home_spec.rb +40 -0
- data/spec/unit/facter/util/puppet_settings_spec.rb +35 -0
- data/spec/unit/puppet/parser/functions/abs_spec.rb +25 -0
- data/spec/unit/puppet/parser/functions/any2array_spec.rb +55 -0
- data/spec/unit/puppet/parser/functions/bool2num_spec.rb +24 -0
- data/spec/unit/puppet/parser/functions/capitalize_spec.rb +19 -0
- data/spec/unit/puppet/parser/functions/chomp_spec.rb +19 -0
- data/spec/unit/puppet/parser/functions/chop_spec.rb +19 -0
- data/spec/unit/puppet/parser/functions/concat_spec.rb +15 -0
- data/spec/unit/puppet/parser/functions/count_spec.rb +31 -0
- data/spec/unit/puppet/parser/functions/delete_at_spec.rb +19 -0
- data/spec/unit/puppet/parser/functions/delete_spec.rb +38 -0
- data/spec/unit/puppet/parser/functions/downcase_spec.rb +24 -0
- data/spec/unit/puppet/parser/functions/empty_spec.rb +23 -0
- data/spec/unit/puppet/parser/functions/flatten_spec.rb +27 -0
- data/spec/unit/puppet/parser/functions/floor_spec.rb +39 -0
- data/spec/unit/puppet/parser/functions/fqdn_rotate_spec.rb +33 -0
- data/spec/unit/puppet/parser/functions/get_module_path_spec.rb +46 -0
- data/spec/unit/puppet/parser/functions/getvar_spec.rb +37 -0
- data/spec/unit/puppet/parser/functions/grep_spec.rb +19 -0
- data/spec/unit/puppet/parser/functions/has_interface_with_spec.rb +64 -0
- data/spec/unit/puppet/parser/functions/has_ip_address_spec.rb +39 -0
- data/spec/unit/puppet/parser/functions/has_ip_network_spec.rb +36 -0
- data/spec/unit/puppet/parser/functions/has_key_spec.rb +42 -0
- data/spec/unit/puppet/parser/functions/hash_spec.rb +19 -0
- data/spec/unit/puppet/parser/functions/is_array_spec.rb +29 -0
- data/spec/unit/puppet/parser/functions/is_domain_name_spec.rb +64 -0
- data/spec/unit/puppet/parser/functions/is_float_spec.rb +33 -0
- data/spec/unit/puppet/parser/functions/is_function_available.rb +31 -0
- data/spec/unit/puppet/parser/functions/is_hash_spec.rb +29 -0
- data/spec/unit/puppet/parser/functions/is_integer_spec.rb +34 -0
- data/spec/unit/puppet/parser/functions/is_ip_address_spec.rb +39 -0
- data/spec/unit/puppet/parser/functions/is_mac_address_spec.rb +29 -0
- data/spec/unit/puppet/parser/functions/is_numeric_spec.rb +39 -0
- data/spec/unit/puppet/parser/functions/is_string_spec.rb +34 -0
- data/spec/unit/puppet/parser/functions/join_keys_to_values_spec.rb +40 -0
- data/spec/unit/puppet/parser/functions/join_spec.rb +19 -0
- data/spec/unit/puppet/parser/functions/keys_spec.rb +21 -0
- data/spec/unit/puppet/parser/functions/lstrip_spec.rb +19 -0
- data/spec/unit/puppet/parser/functions/max_spec.rb +27 -0
- data/spec/unit/puppet/parser/functions/member_spec.rb +24 -0
- data/spec/unit/puppet/parser/functions/merge_spec.rb +47 -0
- data/spec/unit/puppet/parser/functions/min_spec.rb +27 -0
- data/spec/unit/puppet/parser/functions/num2bool_spec.rb +67 -0
- data/spec/unit/puppet/parser/functions/parsejson_spec.rb +22 -0
- data/spec/unit/puppet/parser/functions/parseyaml_spec.rb +24 -0
- data/spec/unit/puppet/parser/functions/pick_spec.rb +34 -0
- data/spec/unit/puppet/parser/functions/prefix_spec.rb +19 -0
- data/spec/unit/puppet/parser/functions/range_spec.rb +34 -0
- data/spec/unit/puppet/parser/functions/reject_spec.rb +20 -0
- data/spec/unit/puppet/parser/functions/reverse_spec.rb +19 -0
- data/spec/unit/puppet/parser/functions/rstrip_spec.rb +24 -0
- data/spec/unit/puppet/parser/functions/shuffle_spec.rb +24 -0
- data/spec/unit/puppet/parser/functions/size_spec.rb +24 -0
- data/spec/unit/puppet/parser/functions/sort_spec.rb +24 -0
- data/spec/unit/puppet/parser/functions/squeeze_spec.rb +24 -0
- data/spec/unit/puppet/parser/functions/str2bool_spec.rb +31 -0
- data/spec/unit/puppet/parser/functions/str2saltedsha512_spec.rb +45 -0
- data/spec/unit/puppet/parser/functions/strftime_spec.rb +29 -0
- data/spec/unit/puppet/parser/functions/strip_spec.rb +18 -0
- data/spec/unit/puppet/parser/functions/suffix_spec.rb +19 -0
- data/spec/unit/puppet/parser/functions/swapcase_spec.rb +19 -0
- data/spec/unit/puppet/parser/functions/time_spec.rb +29 -0
- data/spec/unit/puppet/parser/functions/to_bytes_spec.rb +58 -0
- data/spec/unit/puppet/parser/functions/type_spec.rb +43 -0
- data/spec/unit/puppet/parser/functions/unique_spec.rb +24 -0
- data/spec/unit/puppet/parser/functions/upcase_spec.rb +24 -0
- data/spec/unit/puppet/parser/functions/uriescape_spec.rb +24 -0
- data/spec/unit/puppet/parser/functions/validate_absolute_path_spec.rb +83 -0
- data/spec/unit/puppet/parser/functions/validate_array_spec.rb +38 -0
- data/spec/unit/puppet/parser/functions/validate_augeas_spec.rb +102 -0
- data/spec/unit/puppet/parser/functions/validate_bool_spec.rb +51 -0
- data/spec/unit/puppet/parser/functions/validate_cmd_spec.rb +81 -0
- data/spec/unit/puppet/parser/functions/validate_hash_spec.rb +43 -0
- data/spec/unit/puppet/parser/functions/validate_re_spec.rb +76 -0
- data/spec/unit/puppet/parser/functions/validate_slength_spec.rb +48 -0
- data/spec/unit/puppet/parser/functions/validate_string_spec.rb +60 -0
- data/spec/unit/puppet/parser/functions/values_at_spec.rb +38 -0
- data/spec/unit/puppet/parser/functions/values_spec.rb +31 -0
- data/spec/unit/puppet/parser/functions/zip_spec.rb +15 -0
- data/spec/unit/puppet/provider/file_line/ruby_spec.rb +127 -0
- data/spec/unit/puppet/type/anchor_spec.rb +11 -0
- data/spec/unit/puppet/type/file_line_spec.rb +69 -0
- data/spec/watchr.rb +86 -0
- data/tests/file_line.pp +9 -0
- data/tests/has_interface_with.pp +10 -0
- data/tests/has_ip_address.pp +3 -0
- data/tests/has_ip_network.pp +4 -0
- data/tests/init.pp +1 -0
- metadata +252 -0
@@ -0,0 +1,34 @@
|
|
1
|
+
#!/usr/bin/env ruby -S rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "the pick function" do
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
6
|
+
|
7
|
+
it "should exist" do
|
8
|
+
Puppet::Parser::Functions.function("pick").should == "function_pick"
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should return the correct value' do
|
12
|
+
scope.function_pick(['first', 'second']).should == 'first'
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should return the correct value if the first value is empty' do
|
16
|
+
scope.function_pick(['', 'second']).should == 'second'
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should remove empty string values' do
|
20
|
+
scope.function_pick(['', 'first']).should == 'first'
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should remove :undef values' do
|
24
|
+
scope.function_pick([:undef, 'first']).should == 'first'
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should remove :undefined values' do
|
28
|
+
scope.function_pick([:undefined, 'first']).should == 'first'
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should error if no values are passed' do
|
32
|
+
expect { scope.function_pick([]) }.to raise_error(Puppet::Error, /Must provide non empty value./)
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "the prefix function" do
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
6
|
+
|
7
|
+
it "should exist" do
|
8
|
+
Puppet::Parser::Functions.function("prefix").should == "function_prefix"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
12
|
+
lambda { scope.function_prefix([]) }.should( raise_error(Puppet::ParseError))
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should return a prefixed array" do
|
16
|
+
result = scope.function_prefix([['a','b','c'], 'p'])
|
17
|
+
result.should(eq(['pa','pb','pc']))
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "the range function" do
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
6
|
+
|
7
|
+
it "should exist" do
|
8
|
+
Puppet::Parser::Functions.function("range").should == "function_range"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
12
|
+
lambda { scope.function_range([]) }.should( raise_error(Puppet::ParseError))
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should return a letter range" do
|
16
|
+
result = scope.function_range(["a","d"])
|
17
|
+
result.should(eq(['a','b','c','d']))
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should return a number range" do
|
21
|
+
result = scope.function_range(["1","4"])
|
22
|
+
result.should(eq([1,2,3,4]))
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should work with padded hostname like strings" do
|
26
|
+
expected = ("host01".."host10").to_a
|
27
|
+
scope.function_range(["host01","host10"]).should eq expected
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should coerce zero padded digits to integers" do
|
31
|
+
expected = (0..10).to_a
|
32
|
+
scope.function_range(["00", "10"]).should eq expected
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe "the reject function" do
|
6
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
7
|
+
|
8
|
+
it "should exist" do
|
9
|
+
Puppet::Parser::Functions.function("reject").should == "function_reject"
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
13
|
+
lambda { scope.function_reject([]) }.should( raise_error(Puppet::ParseError))
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should reject contents from an array" do
|
17
|
+
result = scope.function_reject([["1111", "aaabbb","bbbccc","dddeee"], "bbb"])
|
18
|
+
result.should(eq(["1111", "dddeee"]))
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "the reverse function" do
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
6
|
+
|
7
|
+
it "should exist" do
|
8
|
+
Puppet::Parser::Functions.function("reverse").should == "function_reverse"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
12
|
+
lambda { scope.function_reverse([]) }.should( raise_error(Puppet::ParseError))
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should reverse a string" do
|
16
|
+
result = scope.function_reverse(["asdfghijkl"])
|
17
|
+
result.should(eq('lkjihgfdsa'))
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "the rstrip function" do
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
6
|
+
|
7
|
+
it "should exist" do
|
8
|
+
Puppet::Parser::Functions.function("rstrip").should == "function_rstrip"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
12
|
+
lambda { scope.function_rstrip([]) }.should( raise_error(Puppet::ParseError))
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should rstrip a string" do
|
16
|
+
result = scope.function_rstrip(["asdf "])
|
17
|
+
result.should(eq('asdf'))
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should rstrip each element in an array" do
|
21
|
+
result = scope.function_rstrip([["a ","b ", "c "]])
|
22
|
+
result.should(eq(['a','b','c']))
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "the shuffle function" do
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
6
|
+
|
7
|
+
it "should exist" do
|
8
|
+
Puppet::Parser::Functions.function("shuffle").should == "function_shuffle"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
12
|
+
lambda { scope.function_shuffle([]) }.should( raise_error(Puppet::ParseError))
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should shuffle a string and the result should be the same size" do
|
16
|
+
result = scope.function_shuffle(["asdf"])
|
17
|
+
result.size.should(eq(4))
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should shuffle a string but the sorted contents should still be the same" do
|
21
|
+
result = scope.function_shuffle(["adfs"])
|
22
|
+
result.split("").sort.join("").should(eq("adfs"))
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "the size function" do
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
6
|
+
|
7
|
+
it "should exist" do
|
8
|
+
Puppet::Parser::Functions.function("size").should == "function_size"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
12
|
+
lambda { scope.function_size([]) }.should( raise_error(Puppet::ParseError))
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should return the size of a string" do
|
16
|
+
result = scope.function_size(["asdf"])
|
17
|
+
result.should(eq(4))
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should return the size of an array" do
|
21
|
+
result = scope.function_size([["a","b","c"]])
|
22
|
+
result.should(eq(3))
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "the sort function" do
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
6
|
+
|
7
|
+
it "should exist" do
|
8
|
+
Puppet::Parser::Functions.function("sort").should == "function_sort"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should raise a ParseError if there is not 1 arguments" do
|
12
|
+
lambda { scope.function_sort(['','']) }.should( raise_error(Puppet::ParseError))
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should sort an array" do
|
16
|
+
result = scope.function_sort([["a","c","b"]])
|
17
|
+
result.should(eq(['a','b','c']))
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should sort a string" do
|
21
|
+
result = scope.function_sort(["acb"])
|
22
|
+
result.should(eq('abc'))
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "the squeeze function" do
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
6
|
+
|
7
|
+
it "should exist" do
|
8
|
+
Puppet::Parser::Functions.function("squeeze").should == "function_squeeze"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should raise a ParseError if there is less than 2 arguments" do
|
12
|
+
lambda { scope.function_squeeze([]) }.should( raise_error(Puppet::ParseError))
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should squeeze a string" do
|
16
|
+
result = scope.function_squeeze(["aaabbbbcccc"])
|
17
|
+
result.should(eq('abc'))
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should squeeze all elements in an array" do
|
21
|
+
result = scope.function_squeeze([["aaabbbbcccc","dddfff"]])
|
22
|
+
result.should(eq(['abc','df']))
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "the str2bool function" do
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
6
|
+
|
7
|
+
it "should exist" do
|
8
|
+
Puppet::Parser::Functions.function("str2bool").should == "function_str2bool"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
12
|
+
lambda { scope.function_str2bool([]) }.should( raise_error(Puppet::ParseError))
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should convert string 'true' to true" do
|
16
|
+
result = scope.function_str2bool(["true"])
|
17
|
+
result.should(eq(true))
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should convert string 'undef' to false" do
|
21
|
+
result = scope.function_str2bool(["undef"])
|
22
|
+
result.should(eq(false))
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should return the boolean it was called with" do
|
26
|
+
result = scope.function_str2bool([true])
|
27
|
+
result.should(eq(true))
|
28
|
+
result = scope.function_str2bool([false])
|
29
|
+
result.should(eq(false))
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "the str2saltedsha512 function" do
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
6
|
+
|
7
|
+
it "should exist" do
|
8
|
+
Puppet::Parser::Functions.function("str2saltedsha512").should == "function_str2saltedsha512"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should raise a ParseError if there is less than 1 argument" do
|
12
|
+
expect { scope.function_str2saltedsha512([]) }.to( raise_error(Puppet::ParseError) )
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should raise a ParseError if there is more than 1 argument" do
|
16
|
+
expect { scope.function_str2saltedsha512(['foo', 'bar', 'baz']) }.to( raise_error(Puppet::ParseError) )
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return a salted-sha512 password hash 136 characters in length" do
|
20
|
+
result = scope.function_str2saltedsha512(["password"])
|
21
|
+
result.length.should(eq(136))
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should raise an error if you pass a non-string password" do
|
25
|
+
expect { scope.function_str2saltedsha512([1234]) }.to( raise_error(Puppet::ParseError) )
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should generate a valid password" do
|
29
|
+
# Allow the function to generate a password based on the string 'password'
|
30
|
+
password_hash = scope.function_str2saltedsha512(["password"])
|
31
|
+
|
32
|
+
# Separate the Salt and Password from the Password Hash
|
33
|
+
salt = password_hash[0..7]
|
34
|
+
password = password_hash[8..-1]
|
35
|
+
|
36
|
+
# Convert the Salt and Password from Hex to Binary Data
|
37
|
+
str_salt = Array(salt.lines).pack('H*')
|
38
|
+
str_password = Array(password.lines).pack('H*')
|
39
|
+
|
40
|
+
# Combine the Binary Salt with 'password' and compare the end result
|
41
|
+
saltedpass = Digest::SHA512.digest(str_salt + 'password')
|
42
|
+
result = (str_salt + saltedpass).unpack('H*')[0]
|
43
|
+
result.should == password_hash
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "the strftime function" do
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
6
|
+
|
7
|
+
it "should exist" do
|
8
|
+
Puppet::Parser::Functions.function("strftime").should == "function_strftime"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
12
|
+
lambda { scope.function_strftime([]) }.should( raise_error(Puppet::ParseError))
|
13
|
+
end
|
14
|
+
|
15
|
+
it "using %s should be higher then when I wrote this test" do
|
16
|
+
result = scope.function_strftime(["%s"])
|
17
|
+
result.to_i.should(be > 1311953157)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "using %s should be lower then 1.5 trillion" do
|
21
|
+
result = scope.function_strftime(["%s"])
|
22
|
+
result.to_i.should(be < 1500000000)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should return a date when given %Y-%m-%d" do
|
26
|
+
result = scope.function_strftime(["%Y-%m-%d"])
|
27
|
+
result.should =~ /^\d{4}-\d{2}-\d{2}$/
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "the strip function" do
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
6
|
+
it "should exist" do
|
7
|
+
Puppet::Parser::Functions.function("strip").should == "function_strip"
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
11
|
+
lambda { scope.function_strip([]) }.should( raise_error(Puppet::ParseError))
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should strip a string" do
|
15
|
+
result = scope.function_strip([" ab cd "])
|
16
|
+
result.should(eq('ab cd'))
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "the suffix function" do
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
6
|
+
|
7
|
+
it "should exist" do
|
8
|
+
Puppet::Parser::Functions.function("suffix").should == "function_suffix"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
12
|
+
lambda { scope.function_suffix([]) }.should( raise_error(Puppet::ParseError))
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should return a suffixed array" do
|
16
|
+
result = scope.function_suffix([['a','b','c'], 'p'])
|
17
|
+
result.should(eq(['ap','bp','cp']))
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "the swapcase function" do
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
6
|
+
|
7
|
+
it "should exist" do
|
8
|
+
Puppet::Parser::Functions.function("swapcase").should == "function_swapcase"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
12
|
+
lambda { scope.function_swapcase([]) }.should( raise_error(Puppet::ParseError))
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should swapcase a string" do
|
16
|
+
result = scope.function_swapcase(["aaBBccDD"])
|
17
|
+
result.should(eq('AAbbCCdd'))
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "the time function" do
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
6
|
+
|
7
|
+
it "should exist" do
|
8
|
+
Puppet::Parser::Functions.function("time").should == "function_time"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should raise a ParseError if there is more than 2 arguments" do
|
12
|
+
lambda { scope.function_time(['','']) }.should( raise_error(Puppet::ParseError))
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should return a number" do
|
16
|
+
result = scope.function_time([])
|
17
|
+
result.should be_an(Integer)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should be higher then when I wrote this test" do
|
21
|
+
result = scope.function_time([])
|
22
|
+
result.should(be > 1311953157)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should be lower then 1.5 trillion" do
|
26
|
+
result = scope.function_time([])
|
27
|
+
result.should(be < 1500000000)
|
28
|
+
end
|
29
|
+
end
|