puppetmodule-stdlib 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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,64 @@
|
|
|
1
|
+
#!/usr/bin/env ruby -S rspec
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe Puppet::Parser::Functions.function(:has_interface_with) do
|
|
5
|
+
|
|
6
|
+
let(:scope) do
|
|
7
|
+
PuppetlabsSpec::PuppetInternals.scope
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# The subject of these examples is the method itself.
|
|
11
|
+
subject do
|
|
12
|
+
function_name = Puppet::Parser::Functions.function(:has_interface_with)
|
|
13
|
+
scope.method(function_name)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# We need to mock out the Facts so we can specify how we expect this function
|
|
17
|
+
# to behave on different platforms.
|
|
18
|
+
context "On Mac OS X Systems" do
|
|
19
|
+
before :each do
|
|
20
|
+
scope.stubs(:lookupvar).with("interfaces").returns('lo0,gif0,stf0,en1,p2p0,fw0,en0,vmnet1,vmnet8,utun0')
|
|
21
|
+
end
|
|
22
|
+
it 'should have loopback (lo0)' do
|
|
23
|
+
subject.call(['lo0']).should be_true
|
|
24
|
+
end
|
|
25
|
+
it 'should not have loopback (lo)' do
|
|
26
|
+
subject.call(['lo']).should be_false
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
context "On Linux Systems" do
|
|
30
|
+
before :each do
|
|
31
|
+
scope.stubs(:lookupvar).with("interfaces").returns('eth0,lo')
|
|
32
|
+
scope.stubs(:lookupvar).with("ipaddress").returns('10.0.0.1')
|
|
33
|
+
scope.stubs(:lookupvar).with("ipaddress_lo").returns('127.0.0.1')
|
|
34
|
+
scope.stubs(:lookupvar).with("ipaddress_eth0").returns('10.0.0.1')
|
|
35
|
+
scope.stubs(:lookupvar).with('muppet').returns('kermit')
|
|
36
|
+
scope.stubs(:lookupvar).with('muppet_lo').returns('mspiggy')
|
|
37
|
+
scope.stubs(:lookupvar).with('muppet_eth0').returns('kermit')
|
|
38
|
+
end
|
|
39
|
+
it 'should have loopback (lo)' do
|
|
40
|
+
subject.call(['lo']).should be_true
|
|
41
|
+
end
|
|
42
|
+
it 'should not have loopback (lo0)' do
|
|
43
|
+
subject.call(['lo0']).should be_false
|
|
44
|
+
end
|
|
45
|
+
it 'should have ipaddress with 127.0.0.1' do
|
|
46
|
+
subject.call(['ipaddress', '127.0.0.1']).should be_true
|
|
47
|
+
end
|
|
48
|
+
it 'should have ipaddress with 10.0.0.1' do
|
|
49
|
+
subject.call(['ipaddress', '10.0.0.1']).should be_true
|
|
50
|
+
end
|
|
51
|
+
it 'should not have ipaddress with 10.0.0.2' do
|
|
52
|
+
subject.call(['ipaddress', '10.0.0.2']).should be_false
|
|
53
|
+
end
|
|
54
|
+
it 'should have muppet named kermit' do
|
|
55
|
+
subject.call(['muppet', 'kermit']).should be_true
|
|
56
|
+
end
|
|
57
|
+
it 'should have muppet named mspiggy' do
|
|
58
|
+
subject.call(['muppet', 'mspiggy']).should be_true
|
|
59
|
+
end
|
|
60
|
+
it 'should not have muppet named bigbird' do
|
|
61
|
+
subject.call(['muppet', 'bigbird']).should be_false
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#!/usr/bin/env ruby -S rspec
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe Puppet::Parser::Functions.function(:has_ip_address) do
|
|
5
|
+
|
|
6
|
+
let(:scope) do
|
|
7
|
+
PuppetlabsSpec::PuppetInternals.scope
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
subject do
|
|
11
|
+
function_name = Puppet::Parser::Functions.function(:has_ip_address)
|
|
12
|
+
scope.method(function_name)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
context "On Linux Systems" do
|
|
16
|
+
before :each do
|
|
17
|
+
scope.stubs(:lookupvar).with('interfaces').returns('eth0,lo')
|
|
18
|
+
scope.stubs(:lookupvar).with('ipaddress').returns('10.0.2.15')
|
|
19
|
+
scope.stubs(:lookupvar).with('ipaddress_eth0').returns('10.0.2.15')
|
|
20
|
+
scope.stubs(:lookupvar).with('ipaddress_lo').returns('127.0.0.1')
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it 'should have primary address (10.0.2.15)' do
|
|
24
|
+
subject.call(['10.0.2.15']).should be_true
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it 'should have lookupback address (127.0.0.1)' do
|
|
28
|
+
subject.call(['127.0.0.1']).should be_true
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it 'should not have other address' do
|
|
32
|
+
subject.call(['192.1681.1.1']).should be_false
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it 'should not have "mspiggy" on an interface' do
|
|
36
|
+
subject.call(['mspiggy']).should be_false
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#!/usr/bin/env ruby -S rspec
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe Puppet::Parser::Functions.function(:has_ip_network) do
|
|
5
|
+
|
|
6
|
+
let(:scope) do
|
|
7
|
+
PuppetlabsSpec::PuppetInternals.scope
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
subject do
|
|
11
|
+
function_name = Puppet::Parser::Functions.function(:has_ip_network)
|
|
12
|
+
scope.method(function_name)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
context "On Linux Systems" do
|
|
16
|
+
before :each do
|
|
17
|
+
scope.stubs(:lookupvar).with('interfaces').returns('eth0,lo')
|
|
18
|
+
scope.stubs(:lookupvar).with('network').returns(:undefined)
|
|
19
|
+
scope.stubs(:lookupvar).with('network_eth0').returns('10.0.2.0')
|
|
20
|
+
scope.stubs(:lookupvar).with('network_lo').returns('127.0.0.1')
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it 'should have primary network (10.0.2.0)' do
|
|
24
|
+
subject.call(['10.0.2.0']).should be_true
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it 'should have loopback network (127.0.0.0)' do
|
|
28
|
+
subject.call(['127.0.0.1']).should be_true
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it 'should not have other network' do
|
|
32
|
+
subject.call(['192.168.1.0']).should be_false
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe Puppet::Parser::Functions.function(:has_key) do
|
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
|
6
|
+
|
|
7
|
+
describe 'when calling has_key from puppet' do
|
|
8
|
+
it "should not compile when no arguments are passed" do
|
|
9
|
+
pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
|
|
10
|
+
Puppet[:code] = '$x = has_key()'
|
|
11
|
+
expect {
|
|
12
|
+
scope.compiler.compile
|
|
13
|
+
}.to raise_error(Puppet::ParseError, /wrong number of arguments/)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should not compile when 1 argument is passed" do
|
|
17
|
+
pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
|
|
18
|
+
Puppet[:code] = "$x = has_key('foo')"
|
|
19
|
+
expect {
|
|
20
|
+
scope.compiler.compile
|
|
21
|
+
}.to raise_error(Puppet::ParseError, /wrong number of arguments/)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "should require the first value to be a Hash" do
|
|
25
|
+
pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
|
|
26
|
+
Puppet[:code] = "$x = has_key('foo', 'bar')"
|
|
27
|
+
expect {
|
|
28
|
+
scope.compiler.compile
|
|
29
|
+
}.to raise_error(Puppet::ParseError, /expects the first argument to be a hash/)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
describe 'when calling the function has_key from a scope instance' do
|
|
34
|
+
it 'should detect existing keys' do
|
|
35
|
+
scope.function_has_key([{'one' => 1}, 'one']).should be_true
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it 'should detect existing keys' do
|
|
39
|
+
scope.function_has_key([{'one' => 1}, 'two']).should be_false
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe "the hash function" do
|
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
|
6
|
+
|
|
7
|
+
it "should exist" do
|
|
8
|
+
Puppet::Parser::Functions.function("hash").should == "function_hash"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
|
12
|
+
lambda { scope.function_hash([]) }.should( raise_error(Puppet::ParseError))
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should convert an array to a hash" do
|
|
16
|
+
result = scope.function_hash([['a',1,'b',2,'c',3]])
|
|
17
|
+
result.should(eq({'a'=>1,'b'=>2,'c'=>3}))
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe "the is_array function" do
|
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
|
6
|
+
|
|
7
|
+
it "should exist" do
|
|
8
|
+
Puppet::Parser::Functions.function("is_array").should == "function_is_array"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
|
12
|
+
lambda { scope.function_is_array([]) }.should( raise_error(Puppet::ParseError))
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should return true if passed an array" do
|
|
16
|
+
result = scope.function_is_array([[1,2,3]])
|
|
17
|
+
result.should(eq(true))
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "should return false if passed a hash" do
|
|
21
|
+
result = scope.function_is_array([{'a'=>1}])
|
|
22
|
+
result.should(eq(false))
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should return false if passed a string" do
|
|
26
|
+
result = scope.function_is_array(["asdf"])
|
|
27
|
+
result.should(eq(false))
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe "the is_domain_name function" do
|
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
|
6
|
+
|
|
7
|
+
it "should exist" do
|
|
8
|
+
Puppet::Parser::Functions.function("is_domain_name").should == "function_is_domain_name"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
|
12
|
+
lambda { scope.function_is_domain_name([]) }.should( raise_error(Puppet::ParseError))
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should return true if a valid short domain name" do
|
|
16
|
+
result = scope.function_is_domain_name(["x.com"])
|
|
17
|
+
result.should(be_true)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "should return true if the domain is ." do
|
|
21
|
+
result = scope.function_is_domain_name(["."])
|
|
22
|
+
result.should(be_true)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should return true if the domain is x.com." do
|
|
26
|
+
result = scope.function_is_domain_name(["x.com."])
|
|
27
|
+
result.should(be_true)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "should return true if a valid domain name" do
|
|
31
|
+
result = scope.function_is_domain_name(["foo.bar.com"])
|
|
32
|
+
result.should(be_true)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "should allow domain parts to start with numbers" do
|
|
36
|
+
result = scope.function_is_domain_name(["3foo.2bar.com"])
|
|
37
|
+
result.should(be_true)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it "should allow domain to end with a dot" do
|
|
41
|
+
result = scope.function_is_domain_name(["3foo.2bar.com."])
|
|
42
|
+
result.should(be_true)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it "should allow a single part domain" do
|
|
46
|
+
result = scope.function_is_domain_name(["orange"])
|
|
47
|
+
result.should(be_true)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it "should return false if domain parts start with hyphens" do
|
|
51
|
+
result = scope.function_is_domain_name(["-3foo.2bar.com"])
|
|
52
|
+
result.should(be_false)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it "should return true if domain contains hyphens" do
|
|
56
|
+
result = scope.function_is_domain_name(["3foo-bar.2bar-fuzz.com"])
|
|
57
|
+
result.should(be_true)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
it "should return false if domain name contains spaces" do
|
|
61
|
+
result = scope.function_is_domain_name(["not valid"])
|
|
62
|
+
result.should(be_false)
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe "the is_float function" do
|
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
|
6
|
+
|
|
7
|
+
it "should exist" do
|
|
8
|
+
Puppet::Parser::Functions.function("is_float").should == "function_is_float"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
|
12
|
+
lambda { scope.function_is_float([]) }.should( raise_error(Puppet::ParseError))
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should return true if a float" do
|
|
16
|
+
result = scope.function_is_float(["0.12"])
|
|
17
|
+
result.should(eq(true))
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "should return false if a string" do
|
|
21
|
+
result = scope.function_is_float(["asdf"])
|
|
22
|
+
result.should(eq(false))
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should return false if an integer" do
|
|
26
|
+
result = scope.function_is_float(["3"])
|
|
27
|
+
result.should(eq(false))
|
|
28
|
+
end
|
|
29
|
+
it "should return true if a float is created from an arithmetical operation" do
|
|
30
|
+
result = scope.function_is_float([3.2*2])
|
|
31
|
+
result.should(eq(true))
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env rspec
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe "the is_function_available function" do
|
|
5
|
+
before :all do
|
|
6
|
+
Puppet::Parser::Functions.autoloader.loadall
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
before :each do
|
|
10
|
+
@scope = Puppet::Parser::Scope.new
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it "should exist" do
|
|
14
|
+
Puppet::Parser::Functions.function("is_function_available").should == "function_is_function_available"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
|
18
|
+
lambda { @scope.function_is_function_available([]) }.should( raise_error(Puppet::ParseError))
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "should return false if a nonexistent function is passed" do
|
|
22
|
+
result = @scope.function_is_function_available(['jeff_mccunes_left_sock'])
|
|
23
|
+
result.should(eq(false))
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "should return true if an available function is passed" do
|
|
27
|
+
result = @scope.function_is_function_available(['require'])
|
|
28
|
+
result.should(eq(true))
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe "the is_hash function" do
|
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
|
6
|
+
|
|
7
|
+
it "should exist" do
|
|
8
|
+
Puppet::Parser::Functions.function("is_hash").should == "function_is_hash"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
|
12
|
+
lambda { scope.function_is_hash([]) }.should( raise_error(Puppet::ParseError))
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should return true if passed a hash" do
|
|
16
|
+
result = scope.function_is_hash([{"a"=>1,"b"=>2}])
|
|
17
|
+
result.should(eq(true))
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "should return false if passed an array" do
|
|
21
|
+
result = scope.function_is_hash([["a","b"]])
|
|
22
|
+
result.should(eq(false))
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should return false if passed a string" do
|
|
26
|
+
result = scope.function_is_hash(["asdf"])
|
|
27
|
+
result.should(eq(false))
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe "the is_integer function" do
|
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
|
6
|
+
|
|
7
|
+
it "should exist" do
|
|
8
|
+
Puppet::Parser::Functions.function("is_integer").should == "function_is_integer"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
|
12
|
+
lambda { scope.function_is_integer([]) }.should( raise_error(Puppet::ParseError))
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should return true if an integer" do
|
|
16
|
+
result = scope.function_is_integer(["3"])
|
|
17
|
+
result.should(eq(true))
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "should return false if a float" do
|
|
21
|
+
result = scope.function_is_integer(["3.2"])
|
|
22
|
+
result.should(eq(false))
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should return false if a string" do
|
|
26
|
+
result = scope.function_is_integer(["asdf"])
|
|
27
|
+
result.should(eq(false))
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "should return true if an integer is created from an arithmetical operation" do
|
|
31
|
+
result = scope.function_is_integer([3*2])
|
|
32
|
+
result.should(eq(true))
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe "the is_ip_address function" do
|
|
5
|
+
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
|
6
|
+
|
|
7
|
+
it "should exist" do
|
|
8
|
+
Puppet::Parser::Functions.function("is_ip_address").should == "function_is_ip_address"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should raise a ParseError if there is less than 1 arguments" do
|
|
12
|
+
lambda { scope.function_is_ip_address([]) }.should( raise_error(Puppet::ParseError))
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should return true if an IPv4 address" do
|
|
16
|
+
result = scope.function_is_ip_address(["1.2.3.4"])
|
|
17
|
+
result.should(eq(true))
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "should return true if a full IPv6 address" do
|
|
21
|
+
result = scope.function_is_ip_address(["fe80:0000:cd12:d123:e2f8:47ff:fe09:dd74"])
|
|
22
|
+
result.should(eq(true))
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should return true if a compressed IPv6 address" do
|
|
26
|
+
result = scope.function_is_ip_address(["fe00::1"])
|
|
27
|
+
result.should(eq(true))
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "should return false if not valid" do
|
|
31
|
+
result = scope.function_is_ip_address(["asdf"])
|
|
32
|
+
result.should(eq(false))
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "should return false if IP octets out of range" do
|
|
36
|
+
result = scope.function_is_ip_address(["1.1.1.300"])
|
|
37
|
+
result.should(eq(false))
|
|
38
|
+
end
|
|
39
|
+
end
|