summaryrefslogtreecommitdiff
path: root/spec/unit
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2015-01-27 15:14:18 -0500
committerMicah Anderson <micah@riseup.net>2015-01-27 15:14:18 -0500
commit71123634744b9fe2ec7d6a3e38e9789fd84801e3 (patch)
tree1794e812d83facd93b3007c42632c63ddf1eb2fc /spec/unit
parent71cb0f4c2c3bf95f62c9f189f5cef155b09a9682 (diff)
parent5863ab3901368310186790980aea2b0bf7cecb06 (diff)
Merge branch 'master' into leap
Diffstat (limited to 'spec/unit')
-rwxr-xr-xspec/unit/facter/facter_dot_d_spec.rb32
-rw-r--r--spec/unit/facter/pe_required_facts_spec.rb69
-rwxr-xr-x[-rw-r--r--]spec/unit/facter/pe_version_spec.rb20
-rwxr-xr-x[-rw-r--r--]spec/unit/facter/root_home_spec.rb36
-rwxr-xr-x[-rw-r--r--]spec/unit/facter/util/puppet_settings_spec.rb7
-rw-r--r--spec/unit/puppet/functions/type_of_spec.rb33
-rwxr-xr-xspec/unit/puppet/parser/functions/abs_spec.rb25
-rw-r--r--spec/unit/puppet/parser/functions/any2array_spec.rb55
-rwxr-xr-xspec/unit/puppet/parser/functions/base64_spec.rb34
-rwxr-xr-xspec/unit/puppet/parser/functions/basename_spec.rb46
-rwxr-xr-xspec/unit/puppet/parser/functions/bool2num_spec.rb24
-rwxr-xr-xspec/unit/puppet/parser/functions/bool2str_spec.rb46
-rwxr-xr-xspec/unit/puppet/parser/functions/camelcase_spec.rb24
-rwxr-xr-xspec/unit/puppet/parser/functions/capitalize_spec.rb19
-rwxr-xr-xspec/unit/puppet/parser/functions/chomp_spec.rb19
-rwxr-xr-xspec/unit/puppet/parser/functions/chop_spec.rb19
-rw-r--r--spec/unit/puppet/parser/functions/concat_spec.rb15
-rw-r--r--spec/unit/puppet/parser/functions/count_spec.rb31
-rwxr-xr-xspec/unit/puppet/parser/functions/delete_at_spec.rb19
-rwxr-xr-xspec/unit/puppet/parser/functions/delete_spec.rb38
-rw-r--r--spec/unit/puppet/parser/functions/delete_undef_values_spec.rb29
-rw-r--r--spec/unit/puppet/parser/functions/delete_values_spec.rb30
-rw-r--r--spec/unit/puppet/parser/functions/difference_spec.rb19
-rwxr-xr-xspec/unit/puppet/parser/functions/dirname_spec.rb24
-rwxr-xr-xspec/unit/puppet/parser/functions/downcase_spec.rb24
-rwxr-xr-xspec/unit/puppet/parser/functions/empty_spec.rb23
-rwxr-xr-xspec/unit/puppet/parser/functions/flatten_spec.rb27
-rw-r--r--spec/unit/puppet/parser/functions/floor_spec.rb39
-rw-r--r--spec/unit/puppet/parser/functions/fqdn_rotate_spec.rb33
-rw-r--r--spec/unit/puppet/parser/functions/get_module_path_spec.rb46
-rw-r--r--spec/unit/puppet/parser/functions/getvar_spec.rb37
-rwxr-xr-xspec/unit/puppet/parser/functions/grep_spec.rb19
-rwxr-xr-xspec/unit/puppet/parser/functions/has_interface_with_spec.rb64
-rwxr-xr-xspec/unit/puppet/parser/functions/has_ip_address_spec.rb39
-rwxr-xr-xspec/unit/puppet/parser/functions/has_ip_network_spec.rb36
-rw-r--r--spec/unit/puppet/parser/functions/has_key_spec.rb42
-rw-r--r--spec/unit/puppet/parser/functions/hash_spec.rb19
-rw-r--r--spec/unit/puppet/parser/functions/intersection_spec.rb19
-rw-r--r--spec/unit/puppet/parser/functions/is_array_spec.rb29
-rw-r--r--spec/unit/puppet/parser/functions/is_domain_name_spec.rb64
-rw-r--r--spec/unit/puppet/parser/functions/is_float_spec.rb33
-rw-r--r--spec/unit/puppet/parser/functions/is_function_available.rb31
-rw-r--r--spec/unit/puppet/parser/functions/is_hash_spec.rb29
-rw-r--r--spec/unit/puppet/parser/functions/is_integer_spec.rb34
-rw-r--r--spec/unit/puppet/parser/functions/is_ip_address_spec.rb39
-rw-r--r--spec/unit/puppet/parser/functions/is_mac_address_spec.rb29
-rw-r--r--spec/unit/puppet/parser/functions/is_numeric_spec.rb39
-rw-r--r--spec/unit/puppet/parser/functions/is_string_spec.rb34
-rw-r--r--spec/unit/puppet/parser/functions/join_keys_to_values_spec.rb40
-rw-r--r--spec/unit/puppet/parser/functions/join_spec.rb19
-rw-r--r--spec/unit/puppet/parser/functions/keys_spec.rb21
-rw-r--r--spec/unit/puppet/parser/functions/lstrip_spec.rb19
-rwxr-xr-xspec/unit/puppet/parser/functions/max_spec.rb27
-rw-r--r--spec/unit/puppet/parser/functions/member_spec.rb24
-rw-r--r--spec/unit/puppet/parser/functions/merge_spec.rb52
-rwxr-xr-xspec/unit/puppet/parser/functions/min_spec.rb27
-rw-r--r--spec/unit/puppet/parser/functions/num2bool_spec.rb67
-rw-r--r--spec/unit/puppet/parser/functions/parsejson_spec.rb22
-rw-r--r--spec/unit/puppet/parser/functions/parseyaml_spec.rb24
-rw-r--r--spec/unit/puppet/parser/functions/pick_spec.rb34
-rw-r--r--spec/unit/puppet/parser/functions/prefix_spec.rb19
-rw-r--r--spec/unit/puppet/parser/functions/range_spec.rb70
-rwxr-xr-xspec/unit/puppet/parser/functions/reject_spec.rb20
-rw-r--r--spec/unit/puppet/parser/functions/reverse_spec.rb19
-rw-r--r--spec/unit/puppet/parser/functions/rstrip_spec.rb24
-rw-r--r--spec/unit/puppet/parser/functions/shuffle_spec.rb24
-rw-r--r--spec/unit/puppet/parser/functions/size_spec.rb24
-rw-r--r--spec/unit/puppet/parser/functions/sort_spec.rb24
-rw-r--r--spec/unit/puppet/parser/functions/squeeze_spec.rb24
-rw-r--r--spec/unit/puppet/parser/functions/str2bool_spec.rb31
-rw-r--r--spec/unit/puppet/parser/functions/str2saltedsha512_spec.rb45
-rw-r--r--spec/unit/puppet/parser/functions/strftime_spec.rb29
-rw-r--r--spec/unit/puppet/parser/functions/strip_spec.rb18
-rw-r--r--spec/unit/puppet/parser/functions/suffix_spec.rb19
-rw-r--r--spec/unit/puppet/parser/functions/swapcase_spec.rb19
-rw-r--r--spec/unit/puppet/parser/functions/time_spec.rb29
-rwxr-xr-xspec/unit/puppet/parser/functions/to_bytes_spec.rb58
-rw-r--r--spec/unit/puppet/parser/functions/type_spec.rb43
-rw-r--r--spec/unit/puppet/parser/functions/union_spec.rb19
-rw-r--r--spec/unit/puppet/parser/functions/unique_spec.rb24
-rw-r--r--spec/unit/puppet/parser/functions/upcase_spec.rb24
-rw-r--r--spec/unit/puppet/parser/functions/uriescape_spec.rb24
-rw-r--r--spec/unit/puppet/parser/functions/validate_absolute_path_spec.rb83
-rw-r--r--spec/unit/puppet/parser/functions/validate_array_spec.rb38
-rw-r--r--spec/unit/puppet/parser/functions/validate_augeas_spec.rb102
-rw-r--r--spec/unit/puppet/parser/functions/validate_bool_spec.rb51
-rw-r--r--spec/unit/puppet/parser/functions/validate_cmd_spec.rb81
-rw-r--r--spec/unit/puppet/parser/functions/validate_hash_spec.rb43
-rw-r--r--spec/unit/puppet/parser/functions/validate_ipv4_address_spec.rb64
-rw-r--r--spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb67
-rw-r--r--spec/unit/puppet/parser/functions/validate_re_spec.rb76
-rwxr-xr-xspec/unit/puppet/parser/functions/validate_slength_spec.rb67
-rw-r--r--spec/unit/puppet/parser/functions/validate_string_spec.rb60
-rw-r--r--spec/unit/puppet/parser/functions/values_at_spec.rb38
-rw-r--r--spec/unit/puppet/parser/functions/values_spec.rb31
-rw-r--r--spec/unit/puppet/parser/functions/zip_spec.rb15
-rwxr-xr-x[-rw-r--r--]spec/unit/puppet/provider/file_line/ruby_spec.rb203
-rwxr-xr-x[-rw-r--r--]spec/unit/puppet/type/anchor_spec.rb4
-rwxr-xr-x[-rw-r--r--]spec/unit/puppet/type/file_line_spec.rb21
99 files changed, 366 insertions, 3225 deletions
diff --git a/spec/unit/facter/facter_dot_d_spec.rb b/spec/unit/facter/facter_dot_d_spec.rb
new file mode 100755
index 0000000..0afadb2
--- /dev/null
+++ b/spec/unit/facter/facter_dot_d_spec.rb
@@ -0,0 +1,32 @@
+#! /usr/bin/env ruby -S rspec
+require 'spec_helper'
+require 'facter/facter_dot_d'
+
+describe Facter::Util::DotD do
+
+ context 'returns a simple fact' do
+ before :each do
+ Facter.stubs(:version).returns('1.6.1')
+ subject.stubs(:entries).returns(['/etc/facter/facts.d/fake_fact.txt'])
+ File.stubs(:readlines).with('/etc/facter/facts.d/fake_fact.txt').returns(['fake_fact=fake fact'])
+ subject.create
+ end
+
+ it 'should return successfully' do
+ expect(Facter.fact(:fake_fact).value).to eq('fake fact')
+ end
+ end
+
+ context 'returns a fact with equals signs' do
+ before :each do
+ Facter.stubs(:version).returns('1.6.1')
+ subject.stubs(:entries).returns(['/etc/facter/facts.d/foo.txt'])
+ File.stubs(:readlines).with('/etc/facter/facts.d/foo.txt').returns(['foo=1+1=2'])
+ subject.create
+ end
+
+ it 'should return successfully' do
+ expect(Facter.fact(:foo).value).to eq('1+1=2')
+ end
+ end
+end
diff --git a/spec/unit/facter/pe_required_facts_spec.rb b/spec/unit/facter/pe_required_facts_spec.rb
deleted file mode 100644
index f219b37..0000000
--- a/spec/unit/facter/pe_required_facts_spec.rb
+++ /dev/null
@@ -1,69 +0,0 @@
-# Puppet Enterprise requires the following facts to be set in order to operate.
-# These facts are set using the file ???? and the two facts are
-# `fact_stomp_port`, and `fact_stomp_server`.
-#
-
-require 'spec_helper'
-
-describe "External facts in /etc/puppetlabs/facter/facts.d/puppet_enterprise_installer.txt" do
- context "With Facter 1.6.17 which does not have external facts support" do
- before :each do
- Facter.stubs(:version).returns("1.6.17")
- # Stub out the filesystem for stdlib
- Dir.stubs(:entries).with("/etc/puppetlabs/facter/facts.d").
- returns(['puppet_enterprise_installer.txt'])
- Dir.stubs(:entries).with("/etc/facter/facts.d").returns([])
- File.stubs(:readlines).with('/etc/puppetlabs/facter/facts.d/puppet_enterprise_installer.txt').
- returns([
- "fact_stomp_port=61613\n",
- "fact_stomp_server=puppetmaster.acme.com\n",
- "fact_is_puppetagent=true\n",
- "fact_is_puppetmaster=false\n",
- "fact_is_puppetca=false\n",
- "fact_is_puppetconsole=false\n",
- ])
- if Facter.collection.respond_to? :load
- Facter.collection.load(:facter_dot_d)
- else
- Facter.collection.loader.load(:facter_dot_d)
- end
- end
-
- it 'defines fact_stomp_port' do
- Facter.fact(:fact_stomp_port).value.should == '61613'
- end
- it 'defines fact_stomp_server' do
- Facter.fact(:fact_stomp_server).value.should == 'puppetmaster.acme.com'
- end
- it 'defines fact_is_puppetagent' do
- Facter.fact(:fact_is_puppetagent).value.should == 'true'
- end
- it 'defines fact_is_puppetmaster' do
- Facter.fact(:fact_is_puppetmaster).value.should == 'false'
- end
- it 'defines fact_is_puppetca' do
- Facter.fact(:fact_is_puppetca).value.should == 'false'
- end
- it 'defines fact_is_puppetconsole' do
- Facter.fact(:fact_is_puppetconsole).value.should == 'false'
- end
- end
-
- [ '1.7.1', '2.0.1' ].each do |v|
- context "With Facter #{v} which has external facts support" do
- before :each do
- Facter.stubs(:version).returns(v)
- end
-
- it 'does not call Facter::Util::DotD.new' do
- Facter::Util::DotD.expects(:new).never
-
- if Facter.collection.respond_to? :load
- Facter.collection.load(:facter_dot_d)
- else
- Facter.collection.loader.load(:facter_dot_d)
- end
- end
- end
- end
-end
diff --git a/spec/unit/facter/pe_version_spec.rb b/spec/unit/facter/pe_version_spec.rb
index 931c6d4..4d0349e 100644..100755
--- a/spec/unit/facter/pe_version_spec.rb
+++ b/spec/unit/facter/pe_version_spec.rb
@@ -26,23 +26,23 @@ describe "PE Version specs" do
(major,minor,patch) = version.split(".")
it "Should return true" do
- Facter.fact(:is_pe).value.should == true
+ expect(Facter.fact(:is_pe).value).to eq(true)
end
it "Should have a version of #{version}" do
- Facter.fact(:pe_version).value.should == version
+ expect(Facter.fact(:pe_version).value).to eq(version)
end
it "Should have a major version of #{major}" do
- Facter.fact(:pe_major_version).value.should == major
+ expect(Facter.fact(:pe_major_version).value).to eq(major)
end
it "Should have a minor version of #{minor}" do
- Facter.fact(:pe_minor_version).value.should == minor
+ expect(Facter.fact(:pe_minor_version).value).to eq(minor)
end
it "Should have a patch version of #{patch}" do
- Facter.fact(:pe_patch_version).value.should == patch
+ expect(Facter.fact(:pe_patch_version).value).to eq(patch)
end
end
end
@@ -54,23 +54,23 @@ describe "PE Version specs" do
end
it "is_pe is false" do
- Facter.fact(:is_pe).value.should == false
+ expect(Facter.fact(:is_pe).value).to eq(false)
end
it "pe_version is nil" do
- Facter.fact(:pe_version).value.should be_nil
+ expect(Facter.fact(:pe_version).value).to be_nil
end
it "pe_major_version is nil" do
- Facter.fact(:pe_major_version).value.should be_nil
+ expect(Facter.fact(:pe_major_version).value).to be_nil
end
it "pe_minor_version is nil" do
- Facter.fact(:pe_minor_version).value.should be_nil
+ expect(Facter.fact(:pe_minor_version).value).to be_nil
end
it "Should have a patch version" do
- Facter.fact(:pe_patch_version).value.should be_nil
+ expect(Facter.fact(:pe_patch_version).value).to be_nil
end
end
end
diff --git a/spec/unit/facter/root_home_spec.rb b/spec/unit/facter/root_home_spec.rb
index ce80684..98fe141 100644..100755
--- a/spec/unit/facter/root_home_spec.rb
+++ b/spec/unit/facter/root_home_spec.rb
@@ -1,3 +1,4 @@
+#! /usr/bin/env ruby -S rspec
require 'spec_helper'
require 'facter/root_home'
@@ -8,7 +9,7 @@ describe Facter::Util::RootHome do
it "should return /" do
Facter::Util::Resolution.expects(:exec).with("getent passwd root").returns(root_ent)
- Facter::Util::RootHome.get_root_home.should == expected_root_home
+ expect(Facter::Util::RootHome.get_root_home).to eq(expected_root_home)
end
end
context "linux" do
@@ -17,16 +18,7 @@ describe Facter::Util::RootHome do
it "should return /root" do
Facter::Util::Resolution.expects(:exec).with("getent passwd root").returns(root_ent)
- Facter::Util::RootHome.get_root_home.should == expected_root_home
- end
- end
- context "macosx" do
- let(:root_ent) { "root:*:0:0:System Administrator:/var/root:/bin/sh" }
- let(:expected_root_home) { "/var/root" }
-
- it "should return /var/root" do
- Facter::Util::Resolution.expects(:exec).with("getent passwd root").returns(root_ent)
- Facter::Util::RootHome.get_root_home.should == expected_root_home
+ expect(Facter::Util::RootHome.get_root_home).to eq(expected_root_home)
end
end
context "windows" do
@@ -34,7 +26,27 @@ describe Facter::Util::RootHome do
Facter::Util::Resolution.expects(:exec).with("getent passwd root").returns(nil)
end
it "should be nil on windows" do
- Facter::Util::RootHome.get_root_home.should be_nil
+ expect(Facter::Util::RootHome.get_root_home).to be_nil
+ end
+ end
+end
+
+describe 'root_home', :type => :fact do
+ before { Facter.clear }
+ after { Facter.clear }
+
+ context "macosx" do
+ before do
+ Facter.fact(:kernel).stubs(:value).returns("Darwin")
+ Facter.fact(:osfamily).stubs(:value).returns("Darwin")
+ end
+ let(:expected_root_home) { "/var/root" }
+ sample_dscacheutil = File.read(fixtures('dscacheutil','root'))
+
+ it "should return /var/root" do
+ Facter::Util::Resolution.stubs(:exec).with("dscacheutil -q user -a name root").returns(sample_dscacheutil)
+ expect(Facter.fact(:root_home).value).to eq(expected_root_home)
end
end
+
end
diff --git a/spec/unit/facter/util/puppet_settings_spec.rb b/spec/unit/facter/util/puppet_settings_spec.rb
index c3ce6ea..c06137d 100644..100755
--- a/spec/unit/facter/util/puppet_settings_spec.rb
+++ b/spec/unit/facter/util/puppet_settings_spec.rb
@@ -1,3 +1,4 @@
+#! /usr/bin/env ruby -S rspec
require 'spec_helper'
require 'facter/util/puppet_settings'
@@ -10,11 +11,11 @@ describe Facter::Util::PuppetSettings do
end
it 'should be nil' do
- subject.with_puppet { Puppet[:vardir] }.should be_nil
+ expect(subject.with_puppet { Puppet[:vardir] }).to be_nil
end
it 'should not yield to the block' do
Puppet.expects(:[]).never
- subject.with_puppet { Puppet[:vardir] }.should be_nil
+ expect(subject.with_puppet { Puppet[:vardir] }).to be_nil
end
end
context "With Puppet loaded" do
@@ -28,7 +29,7 @@ describe Facter::Util::PuppetSettings do
subject.with_puppet { Puppet[:vardir] }
end
it 'should return the nodes vardir' do
- subject.with_puppet { Puppet[:vardir] }.should eq vardir
+ expect(subject.with_puppet { Puppet[:vardir] }).to eq vardir
end
end
end
diff --git a/spec/unit/puppet/functions/type_of_spec.rb b/spec/unit/puppet/functions/type_of_spec.rb
new file mode 100644
index 0000000..8afb624
--- /dev/null
+++ b/spec/unit/puppet/functions/type_of_spec.rb
@@ -0,0 +1,33 @@
+#! /usr/bin/env ruby -S rspec
+
+require 'spec_helper'
+
+if ENV["FUTURE_PARSER"] == 'yes' or Puppet.version >= "4"
+ require 'puppet/pops'
+ require 'puppet/loaders'
+
+ describe 'the type_of function' do
+ before(:all) do
+ loaders = Puppet::Pops::Loaders.new(Puppet::Node::Environment.create(:testing, [File.join(fixtures, "modules")]))
+ Puppet.push_context({:loaders => loaders}, "test-examples")
+ end
+
+ after(:all) do
+ Puppet::Pops::Loaders.clear
+ Puppet::pop_context()
+ end
+
+ let(:func) do
+ # Load the function from the environment modulepath's modules (ie, fixtures)
+ Puppet.lookup(:loaders).private_environment_loader.load(:function, 'type_of')
+ end
+
+ it 'gives the type of a string' do
+ expect(func.call({}, 'hello world')).to be_kind_of(Puppet::Pops::Types::PStringType)
+ end
+
+ it 'gives the type of an integer' do
+ expect(func.call({}, 5)).to be_kind_of(Puppet::Pops::Types::PIntegerType)
+ end
+ end
+end
diff --git a/spec/unit/puppet/parser/functions/abs_spec.rb b/spec/unit/puppet/parser/functions/abs_spec.rb
deleted file mode 100755
index c0b4297..0000000
--- a/spec/unit/puppet/parser/functions/abs_spec.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-
-require 'spec_helper'
-
-describe "the abs function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("abs").should == "function_abs"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_abs([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should convert a negative number into a positive" do
- result = scope.function_abs(["-34"])
- result.should(eq(34))
- end
-
- it "should do nothing with a positive number" do
- result = scope.function_abs(["5678"])
- result.should(eq(5678))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/any2array_spec.rb b/spec/unit/puppet/parser/functions/any2array_spec.rb
deleted file mode 100644
index b266e84..0000000
--- a/spec/unit/puppet/parser/functions/any2array_spec.rb
+++ /dev/null
@@ -1,55 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the any2array function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("any2array").should == "function_any2array"
- end
-
- it "should return an empty array if there is less than 1 argument" do
- result = scope.function_any2array([])
- result.should(eq([]))
- end
-
- it "should convert boolean true to [ true ] " do
- result = scope.function_any2array([true])
- result.should(eq([true]))
- end
-
- it "should convert one object to [object]" do
- result = scope.function_any2array(['one'])
- result.should(eq(['one']))
- end
-
- it "should convert multiple objects to [objects]" do
- result = scope.function_any2array(['one', 'two'])
- result.should(eq(['one', 'two']))
- end
-
- it "should return empty array it was called with" do
- result = scope.function_any2array([[]])
- result.should(eq([]))
- end
-
- it "should return one-member array it was called with" do
- result = scope.function_any2array([['string']])
- result.should(eq(['string']))
- end
-
- it "should return multi-member array it was called with" do
- result = scope.function_any2array([['one', 'two']])
- result.should(eq(['one', 'two']))
- end
-
- it "should return members of a hash it was called with" do
- result = scope.function_any2array([{ 'key' => 'value' }])
- result.should(eq(['key', 'value']))
- end
-
- it "should return an empty array if it was called with an empty hash" do
- result = scope.function_any2array([{ }])
- result.should(eq([]))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/base64_spec.rb b/spec/unit/puppet/parser/functions/base64_spec.rb
deleted file mode 100755
index 5faa5e6..0000000
--- a/spec/unit/puppet/parser/functions/base64_spec.rb
+++ /dev/null
@@ -1,34 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-
-require 'spec_helper'
-
-describe "the base64 function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("base64").should == "function_base64"
- end
-
- it "should raise a ParseError if there are other than 2 arguments" do
- expect { scope.function_base64([]) }.to(raise_error(Puppet::ParseError))
- expect { scope.function_base64(["asdf"]) }.to(raise_error(Puppet::ParseError))
- expect { scope.function_base64(["asdf","moo","cow"]) }.to(raise_error(Puppet::ParseError))
- end
-
- it "should raise a ParseError if argument 1 isn't 'encode' or 'decode'" do
- expect { scope.function_base64(["bees","astring"]) }.to(raise_error(Puppet::ParseError, /first argument must be one of/))
- end
-
- it "should raise a ParseError if argument 2 isn't a string" do
- expect { scope.function_base64(["encode",["2"]]) }.to(raise_error(Puppet::ParseError, /second argument must be a string/))
- end
-
- it "should encode a encoded string" do
- result = scope.function_base64(["encode",'thestring'])
- result.should =~ /\AdGhlc3RyaW5n\n\Z/
- end
- it "should decode a base64 encoded string" do
- result = scope.function_base64(["decode",'dGhlc3RyaW5n'])
- result.should == 'thestring'
- end
-end
diff --git a/spec/unit/puppet/parser/functions/basename_spec.rb b/spec/unit/puppet/parser/functions/basename_spec.rb
new file mode 100755
index 0000000..8a2d0dc
--- /dev/null
+++ b/spec/unit/puppet/parser/functions/basename_spec.rb
@@ -0,0 +1,46 @@
+#! /usr/bin/env ruby -S rspec
+require 'spec_helper'
+
+describe "the basename function" do
+ let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
+
+ it "should exist" do
+ Puppet::Parser::Functions.function("basename").should == "function_basename"
+ end
+
+ it "should raise a ParseError if there is less than 1 argument" do
+ lambda { scope.function_basename([]) }.should( raise_error(Puppet::ParseError))
+ end
+
+ it "should raise a ParseError if there are more than 2 arguments" do
+ lambda { scope.function_basename(['a', 'b', 'c']) }.should( raise_error(Puppet::ParseError))
+ end
+
+ it "should return basename for an absolute path" do
+ result = scope.function_basename(['/path/to/a/file.ext'])
+ result.should(eq('file.ext'))
+ end
+
+ it "should return basename for a relative path" do
+ result = scope.function_basename(['path/to/a/file.ext'])
+ result.should(eq('file.ext'))
+ end
+
+ it "should strip extention when extension specified (absolute path)" do
+ result = scope.function_basename(['/path/to/a/file.ext', '.ext'])
+ result.should(eq('file'))
+ end
+
+ it "should strip extention when extension specified (relative path)" do
+ result = scope.function_basename(['path/to/a/file.ext', '.ext'])
+ result.should(eq('file'))
+ end
+
+ it "should complain about non-string first argument" do
+ lambda { scope.function_basename([[]]) }.should( raise_error(Puppet::ParseError))
+ end
+
+ it "should complain about non-string second argument" do
+ lambda { scope.function_basename(['/path/to/a/file.ext', []]) }.should( raise_error(Puppet::ParseError))
+ end
+end
diff --git a/spec/unit/puppet/parser/functions/bool2num_spec.rb b/spec/unit/puppet/parser/functions/bool2num_spec.rb
deleted file mode 100755
index 518ac85..0000000
--- a/spec/unit/puppet/parser/functions/bool2num_spec.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the bool2num function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("bool2num").should == "function_bool2num"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_bool2num([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should convert true to 1" do
- result = scope.function_bool2num([true])
- result.should(eq(1))
- end
-
- it "should convert false to 0" do
- result = scope.function_bool2num([false])
- result.should(eq(0))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/bool2str_spec.rb b/spec/unit/puppet/parser/functions/bool2str_spec.rb
new file mode 100755
index 0000000..b878891
--- /dev/null
+++ b/spec/unit/puppet/parser/functions/bool2str_spec.rb
@@ -0,0 +1,46 @@
+#! /usr/bin/env ruby -S rspec
+require 'spec_helper'
+
+describe "the bool2str function" do
+ let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
+
+ it "should exist" do
+ expect(Puppet::Parser::Functions.function("bool2str")).to eq("function_bool2str")
+ end
+
+ it "should raise a ParseError if there is less than 1 arguments" do
+ expect { scope.function_bool2str([]) }.to( raise_error(Puppet::ParseError))
+ end
+
+ it "should convert true to 'true'" do
+ result = scope.function_bool2str([true])
+ expect(result).to(eq('true'))
+ end
+
+ it "should convert true to a string" do
+ result = scope.function_bool2str([true])
+ expect(result.class).to(eq(String))
+ end
+
+ it "should convert false to 'false'" do
+ result = scope.function_bool2str([false])
+ expect(result).to(eq('false'))
+ end
+
+ it "should convert false to a string" do
+ result = scope.function_bool2str([false])
+ expect(result.class).to(eq(String))
+ end
+
+ it "should not accept a string" do
+ expect { scope.function_bool2str(["false"]) }.to( raise_error(Puppet::ParseError))
+ end
+
+ it "should not accept a nil value" do
+ expect { scope.function_bool2str([nil]) }.to( raise_error(Puppet::ParseError))
+ end
+
+ it "should not accept an undef" do
+ expect { scope.function_bool2str([:undef]) }.to( raise_error(Puppet::ParseError))
+ end
+end
diff --git a/spec/unit/puppet/parser/functions/camelcase_spec.rb b/spec/unit/puppet/parser/functions/camelcase_spec.rb
new file mode 100755
index 0000000..70382ad
--- /dev/null
+++ b/spec/unit/puppet/parser/functions/camelcase_spec.rb
@@ -0,0 +1,24 @@
+#! /usr/bin/env ruby -S rspec
+require 'spec_helper'
+
+describe "the camelcase function" do
+ let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
+
+ it "should exist" do
+ expect(Puppet::Parser::Functions.function("camelcase")).to eq("function_camelcase")
+ end
+
+ it "should raise a ParseError if there is less than 1 arguments" do
+ expect { scope.function_camelcase([]) }.to( raise_error(Puppet::ParseError))
+ end
+
+ it "should capitalize the beginning of a normal string" do
+ result = scope.function_camelcase(["abc"])
+ expect(result).to(eq("Abc"))
+ end
+
+ it "should camelcase an underscore-delimited string" do
+ result = scope.function_camelcase(["aa_bb_cc"])
+ expect(result).to(eq("AaBbCc"))
+ end
+end
diff --git a/spec/unit/puppet/parser/functions/capitalize_spec.rb b/spec/unit/puppet/parser/functions/capitalize_spec.rb
deleted file mode 100755
index 69c9758..0000000
--- a/spec/unit/puppet/parser/functions/capitalize_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the capitalize function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("capitalize").should == "function_capitalize"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_capitalize([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should capitalize the beginning of a string" do
- result = scope.function_capitalize(["abc"])
- result.should(eq("Abc"))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/chomp_spec.rb b/spec/unit/puppet/parser/functions/chomp_spec.rb
deleted file mode 100755
index e425365..0000000
--- a/spec/unit/puppet/parser/functions/chomp_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the chomp function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("chomp").should == "function_chomp"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_chomp([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should chomp the end of a string" do
- result = scope.function_chomp(["abc\n"])
- result.should(eq("abc"))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/chop_spec.rb b/spec/unit/puppet/parser/functions/chop_spec.rb
deleted file mode 100755
index 9e466de..0000000
--- a/spec/unit/puppet/parser/functions/chop_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the chop function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("chop").should == "function_chop"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_chop([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should chop the end of a string" do
- result = scope.function_chop(["asdf\n"])
- result.should(eq("asdf"))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/concat_spec.rb b/spec/unit/puppet/parser/functions/concat_spec.rb
deleted file mode 100644
index 123188b..0000000
--- a/spec/unit/puppet/parser/functions/concat_spec.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the concat function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_concat([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should be able to concat an array" do
- result = scope.function_concat([['1','2','3'],['4','5','6']])
- result.should(eq(['1','2','3','4','5','6']))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/count_spec.rb b/spec/unit/puppet/parser/functions/count_spec.rb
deleted file mode 100644
index 2453815..0000000
--- a/spec/unit/puppet/parser/functions/count_spec.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-
-require 'spec_helper'
-
-describe "the count function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("count").should == "function_count"
- end
-
- it "should raise a ArgumentError if there is more than 2 arguments" do
- lambda { scope.function_count(['foo', 'bar', 'baz']) }.should( raise_error(ArgumentError))
- end
-
- it "should be able to count arrays" do
- scope.function_count([["1","2","3"]]).should(eq(3))
- end
-
- it "should be able to count matching elements in arrays" do
- scope.function_count([["1", "2", "2"], "2"]).should(eq(2))
- end
-
- it "should not count nil or empty strings" do
- scope.function_count([["foo","bar",nil,""]]).should(eq(2))
- end
-
- it 'does not count an undefined hash key or an out of bound array index (which are both :undef)' do
- expect(scope.function_count([["foo",:undef,:undef]])).to eq(1)
- end
-end
diff --git a/spec/unit/puppet/parser/functions/delete_at_spec.rb b/spec/unit/puppet/parser/functions/delete_at_spec.rb
deleted file mode 100755
index d8d9618..0000000
--- a/spec/unit/puppet/parser/functions/delete_at_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the delete_at function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("delete_at").should == "function_delete_at"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_delete_at([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should delete an item at specified location from an array" do
- result = scope.function_delete_at([['a','b','c'],1])
- result.should(eq(['a','c']))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/delete_spec.rb b/spec/unit/puppet/parser/functions/delete_spec.rb
deleted file mode 100755
index 2f29c93..0000000
--- a/spec/unit/puppet/parser/functions/delete_spec.rb
+++ /dev/null
@@ -1,38 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the delete function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("delete").should == "function_delete"
- end
-
- it "should raise a ParseError if there are fewer than 2 arguments" do
- lambda { scope.function_delete([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should raise a ParseError if there are greater than 2 arguments" do
- lambda { scope.function_delete([[], 'foo', 'bar']) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should raise a TypeError if a number is passed as the first argument" do
- lambda { scope.function_delete([1, 'bar']) }.should( raise_error(TypeError))
- end
-
- it "should delete all instances of an element from an array" do
- result = scope.function_delete([['a','b','c','b'],'b'])
- result.should(eq(['a','c']))
- end
-
- it "should delete all instances of a substring from a string" do
- result = scope.function_delete(['foobarbabarz','bar'])
- result.should(eq('foobaz'))
- end
-
- it "should delete a key from a hash" do
- result = scope.function_delete([{ 'a' => 1, 'b' => 2, 'c' => 3 },'b'])
- result.should(eq({ 'a' => 1, 'c' => 3 }))
- end
-
-end
diff --git a/spec/unit/puppet/parser/functions/delete_undef_values_spec.rb b/spec/unit/puppet/parser/functions/delete_undef_values_spec.rb
deleted file mode 100644
index 0536641..0000000
--- a/spec/unit/puppet/parser/functions/delete_undef_values_spec.rb
+++ /dev/null
@@ -1,29 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the delete_undef_values function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("delete_undef_values").should == "function_delete_undef_values"
- end
-
- it "should raise a ParseError if there is less than 1 argument" do
- lambda { scope.function_delete_undef_values([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should raise a ParseError if the argument is not Array nor Hash" do
- lambda { scope.function_delete_undef_values(['']) }.should( raise_error(Puppet::ParseError))
- lambda { scope.function_delete_undef_values([nil]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should delete all undef items from Array and only these" do
- result = scope.function_delete_undef_values([['a',:undef,'c','undef']])
- result.should(eq(['a','c','undef']))
- end
-
- it "should delete all undef items from Hash and only these" do
- result = scope.function_delete_undef_values([{'a'=>'A','b'=>:undef,'c'=>'C','d'=>'undef'}])
- result.should(eq({'a'=>'A','c'=>'C','d'=>'undef'}))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/delete_values_spec.rb b/spec/unit/puppet/parser/functions/delete_values_spec.rb
deleted file mode 100644
index e15c366..0000000
--- a/spec/unit/puppet/parser/functions/delete_values_spec.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the delete_values function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("delete_values").should == "function_delete_values"
- end
-
- it "should raise a ParseError if there are fewer than 2 arguments" do
- lambda { scope.function_delete_values([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should raise a ParseError if there are greater than 2 arguments" do
- lambda { scope.function_delete([[], 'foo', 'bar']) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should raise a TypeError if the argument is not a hash" do
- lambda { scope.function_delete_values([1,'bar']) }.should( raise_error(TypeError))
- lambda { scope.function_delete_values(['foo','bar']) }.should( raise_error(TypeError))
- lambda { scope.function_delete_values([[],'bar']) }.should( raise_error(TypeError))
- end
-
- it "should delete all instances of a value from a hash" do
- result = scope.function_delete_values([{ 'a'=>'A', 'b'=>'B', 'B'=>'C', 'd'=>'B' },'B'])
- result.should(eq({ 'a'=>'A', 'B'=>'C' }))
- end
-
-end
diff --git a/spec/unit/puppet/parser/functions/difference_spec.rb b/spec/unit/puppet/parser/functions/difference_spec.rb
deleted file mode 100644
index 9feff09..0000000
--- a/spec/unit/puppet/parser/functions/difference_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the difference function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("difference").should == "function_difference"
- end
-
- it "should raise a ParseError if there are fewer than 2 arguments" do
- lambda { scope.function_difference([]) }.should( raise_error(Puppet::ParseError) )
- end
-
- it "should return the difference between two arrays" do
- result = scope.function_difference([["a","b","c"],["b","c","d"]])
- result.should(eq(["a"]))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/dirname_spec.rb b/spec/unit/puppet/parser/functions/dirname_spec.rb
deleted file mode 100755
index fb3b4fe..0000000
--- a/spec/unit/puppet/parser/functions/dirname_spec.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the dirname function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("dirname").should == "function_dirname"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_dirname([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return dirname for an absolute path" do
- result = scope.function_dirname(['/path/to/a/file.ext'])
- result.should(eq('/path/to/a'))
- end
-
- it "should return dirname for a relative path" do
- result = scope.function_dirname(['path/to/a/file.ext'])
- result.should(eq('path/to/a'))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/downcase_spec.rb b/spec/unit/puppet/parser/functions/downcase_spec.rb
deleted file mode 100755
index acef1f0..0000000
--- a/spec/unit/puppet/parser/functions/downcase_spec.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the downcase function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("downcase").should == "function_downcase"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_downcase([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should downcase a string" do
- result = scope.function_downcase(["ASFD"])
- result.should(eq("asfd"))
- end
-
- it "should do nothing to a string that is already downcase" do
- result = scope.function_downcase(["asdf asdf"])
- result.should(eq("asdf asdf"))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/empty_spec.rb b/spec/unit/puppet/parser/functions/empty_spec.rb
deleted file mode 100755
index 7745875..0000000
--- a/spec/unit/puppet/parser/functions/empty_spec.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the empty function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
- it "should exist" do
- Puppet::Parser::Functions.function("empty").should == "function_empty"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_empty([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return a true for an empty string" do
- result = scope.function_empty([''])
- result.should(eq(true))
- end
-
- it "should return a false for a non-empty string" do
- result = scope.function_empty(['asdf'])
- result.should(eq(false))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/flatten_spec.rb b/spec/unit/puppet/parser/functions/flatten_spec.rb
deleted file mode 100755
index dba7a6b..0000000
--- a/spec/unit/puppet/parser/functions/flatten_spec.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the flatten function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
- it "should exist" do
- Puppet::Parser::Functions.function("flatten").should == "function_flatten"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_flatten([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should raise a ParseError if there is more than 1 argument" do
- lambda { scope.function_flatten([[], []]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should flatten a complex data structure" do
- result = scope.function_flatten([["a","b",["c",["d","e"],"f","g"]]])
- result.should(eq(["a","b","c","d","e","f","g"]))
- end
-
- it "should do nothing to a structure that is already flat" do
- result = scope.function_flatten([["a","b","c","d"]])
- result.should(eq(["a","b","c","d"]))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/floor_spec.rb b/spec/unit/puppet/parser/functions/floor_spec.rb
deleted file mode 100644
index dbc8c77..0000000
--- a/spec/unit/puppet/parser/functions/floor_spec.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-
-require 'spec_helper'
-
-describe "the floor function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("floor").should == "function_floor"
- end
-
- it "should raise a ParseError if there is less than 1 argument" do
- lambda { scope.function_floor([]) }.should( raise_error(Puppet::ParseError, /Wrong number of arguments/))
- end
-
- it "should should raise a ParseError if input isn't numeric (eg. String)" do
- lambda { scope.function_floor(["foo"]) }.should( raise_error(Puppet::ParseError, /Wrong argument type/))
- end
-
- it "should should raise a ParseError if input isn't numeric (eg. Boolean)" do
- lambda { scope.function_floor([true]) }.should( raise_error(Puppet::ParseError, /Wrong argument type/))
- end
-
- it "should return an integer when a numeric type is passed" do
- result = scope.function_floor([12.4])
- result.is_a?(Integer).should(eq(true))
- end
-
- it "should return the input when an integer is passed" do
- result = scope.function_floor([7])
- result.should(eq(7))
- end
-
- it "should return the largest integer less than or equal to the input" do
- result = scope.function_floor([3.8])
- result.should(eq(3))
- end
-end
-
diff --git a/spec/unit/puppet/parser/functions/fqdn_rotate_spec.rb b/spec/unit/puppet/parser/functions/fqdn_rotate_spec.rb
deleted file mode 100644
index 2577723..0000000
--- a/spec/unit/puppet/parser/functions/fqdn_rotate_spec.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the fqdn_rotate function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("fqdn_rotate").should == "function_fqdn_rotate"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_fqdn_rotate([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should rotate a string and the result should be the same size" do
- scope.expects(:lookupvar).with("::fqdn").returns("127.0.0.1")
- result = scope.function_fqdn_rotate(["asdf"])
- result.size.should(eq(4))
- end
-
- it "should rotate a string to give the same results for one host" do
- scope.expects(:lookupvar).with("::fqdn").returns("127.0.0.1").twice
- scope.function_fqdn_rotate(["abcdefg"]).should eql(scope.function_fqdn_rotate(["abcdefg"]))
- end
-
- it "should rotate a string to give different values on different hosts" do
- scope.expects(:lookupvar).with("::fqdn").returns("127.0.0.1")
- val1 = scope.function_fqdn_rotate(["abcdefghijklmnopqrstuvwxyz01234567890987654321"])
- scope.expects(:lookupvar).with("::fqdn").returns("127.0.0.2")
- val2 = scope.function_fqdn_rotate(["abcdefghijklmnopqrstuvwxyz01234567890987654321"])
- val1.should_not eql(val2)
- end
-end
diff --git a/spec/unit/puppet/parser/functions/get_module_path_spec.rb b/spec/unit/puppet/parser/functions/get_module_path_spec.rb
deleted file mode 100644
index 486bef6..0000000
--- a/spec/unit/puppet/parser/functions/get_module_path_spec.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe Puppet::Parser::Functions.function(:get_module_path) do
- Internals = PuppetlabsSpec::PuppetInternals
- class StubModule
- attr_reader :path
- def initialize(path)
- @path = path
- end
- end
-
- def scope(environment = "production")
- Internals.scope(:compiler => Internals.compiler(:node => Internals.node(:environment => environment)))
- end
-
- it 'should only allow one argument' do
- expect { scope.function_get_module_path([]) }.to raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/)
- expect { scope.function_get_module_path(['1','2','3']) }.to raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/)
- end
- it 'should raise an exception when the module cannot be found' do
- expect { scope.function_get_module_path(['foo']) }.to raise_error(Puppet::ParseError, /Could not find module/)
- end
- describe 'when locating a module' do
- let(:modulepath) { "/tmp/does_not_exist" }
- let(:path_of_module_foo) { StubModule.new("/tmp/does_not_exist/foo") }
-
- before(:each) { Puppet[:modulepath] = modulepath }
-
- it 'should be able to find module paths from the modulepath setting' do
- Puppet::Module.expects(:find).with('foo', 'production').returns(path_of_module_foo)
- scope.function_get_module_path(['foo']).should == path_of_module_foo.path
- end
- it 'should be able to find module paths when the modulepath is a list' do
- Puppet[:modulepath] = modulepath + ":/tmp"
- Puppet::Module.expects(:find).with('foo', 'production').returns(path_of_module_foo)
- scope.function_get_module_path(['foo']).should == path_of_module_foo.path
- end
- it 'should respect the environment' do
- pending("Disabled on Puppet 2.6.x") if Puppet.version =~ /^2\.6\b/
- Puppet.settings[:environment] = 'danstestenv'
- Puppet::Module.expects(:find).with('foo', 'danstestenv').returns(path_of_module_foo)
- scope('danstestenv').function_get_module_path(['foo']).should == path_of_module_foo.path
- end
- end
-end
diff --git a/spec/unit/puppet/parser/functions/getvar_spec.rb b/spec/unit/puppet/parser/functions/getvar_spec.rb
deleted file mode 100644
index 5ff834e..0000000
--- a/spec/unit/puppet/parser/functions/getvar_spec.rb
+++ /dev/null
@@ -1,37 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe Puppet::Parser::Functions.function(:getvar) do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
- describe 'when calling getvar from puppet' do
-
- it "should not compile when no arguments are passed" do
- pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
- Puppet[:code] = '$foo = getvar()'
- expect {
- scope.compiler.compile
- }.to raise_error(Puppet::ParseError, /wrong number of arguments/)
- end
-
- it "should not compile when too many arguments are passed" do
- pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
- Puppet[:code] = '$foo = getvar("foo::bar", "baz")'
- expect {
- scope.compiler.compile
- }.to raise_error(Puppet::ParseError, /wrong number of arguments/)
- end
-
- it "should lookup variables in other namespaces" do
- pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
- Puppet[:code] = <<-'ENDofPUPPETcode'
- class site::data { $foo = 'baz' }
- include site::data
- $foo = getvar("site::data::foo")
- if $foo != 'baz' {
- fail('getvar did not return what we expect')
- }
- ENDofPUPPETcode
- scope.compiler.compile
- end
- end
-end
diff --git a/spec/unit/puppet/parser/functions/grep_spec.rb b/spec/unit/puppet/parser/functions/grep_spec.rb
deleted file mode 100755
index a93b842..0000000
--- a/spec/unit/puppet/parser/functions/grep_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the grep function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("grep").should == "function_grep"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_grep([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should grep contents from an array" do
- result = scope.function_grep([["aaabbb","bbbccc","dddeee"], "bbb"])
- result.should(eq(["aaabbb","bbbccc"]))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/has_interface_with_spec.rb b/spec/unit/puppet/parser/functions/has_interface_with_spec.rb
deleted file mode 100755
index c5264e4..0000000
--- a/spec/unit/puppet/parser/functions/has_interface_with_spec.rb
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe Puppet::Parser::Functions.function(:has_interface_with) do
-
- let(:scope) do
- PuppetlabsSpec::PuppetInternals.scope
- end
-
- # The subject of these examples is the method itself.
- subject do
- function_name = Puppet::Parser::Functions.function(:has_interface_with)
- scope.method(function_name)
- end
-
- # We need to mock out the Facts so we can specify how we expect this function
- # to behave on different platforms.
- context "On Mac OS X Systems" do
- before :each do
- scope.stubs(:lookupvar).with("interfaces").returns('lo0,gif0,stf0,en1,p2p0,fw0,en0,vmnet1,vmnet8,utun0')
- end
- it 'should have loopback (lo0)' do
- subject.call(['lo0']).should be_true
- end
- it 'should not have loopback (lo)' do
- subject.call(['lo']).should be_false
- end
- end
- context "On Linux Systems" do
- before :each do
- scope.stubs(:lookupvar).with("interfaces").returns('eth0,lo')
- scope.stubs(:lookupvar).with("ipaddress").returns('10.0.0.1')
- scope.stubs(:lookupvar).with("ipaddress_lo").returns('127.0.0.1')
- scope.stubs(:lookupvar).with("ipaddress_eth0").returns('10.0.0.1')
- scope.stubs(:lookupvar).with('muppet').returns('kermit')
- scope.stubs(:lookupvar).with('muppet_lo').returns('mspiggy')
- scope.stubs(:lookupvar).with('muppet_eth0').returns('kermit')
- end
- it 'should have loopback (lo)' do
- subject.call(['lo']).should be_true
- end
- it 'should not have loopback (lo0)' do
- subject.call(['lo0']).should be_false
- end
- it 'should have ipaddress with 127.0.0.1' do
- subject.call(['ipaddress', '127.0.0.1']).should be_true
- end
- it 'should have ipaddress with 10.0.0.1' do
- subject.call(['ipaddress', '10.0.0.1']).should be_true
- end
- it 'should not have ipaddress with 10.0.0.2' do
- subject.call(['ipaddress', '10.0.0.2']).should be_false
- end
- it 'should have muppet named kermit' do
- subject.call(['muppet', 'kermit']).should be_true
- end
- it 'should have muppet named mspiggy' do
- subject.call(['muppet', 'mspiggy']).should be_true
- end
- it 'should not have muppet named bigbird' do
- subject.call(['muppet', 'bigbird']).should be_false
- end
- end
-end
diff --git a/spec/unit/puppet/parser/functions/has_ip_address_spec.rb b/spec/unit/puppet/parser/functions/has_ip_address_spec.rb
deleted file mode 100755
index 5a68460..0000000
--- a/spec/unit/puppet/parser/functions/has_ip_address_spec.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe Puppet::Parser::Functions.function(:has_ip_address) do
-
- let(:scope) do
- PuppetlabsSpec::PuppetInternals.scope
- end
-
- subject do
- function_name = Puppet::Parser::Functions.function(:has_ip_address)
- scope.method(function_name)
- end
-
- context "On Linux Systems" do
- before :each do
- scope.stubs(:lookupvar).with('interfaces').returns('eth0,lo')
- scope.stubs(:lookupvar).with('ipaddress').returns('10.0.2.15')
- scope.stubs(:lookupvar).with('ipaddress_eth0').returns('10.0.2.15')
- scope.stubs(:lookupvar).with('ipaddress_lo').returns('127.0.0.1')
- end
-
- it 'should have primary address (10.0.2.15)' do
- subject.call(['10.0.2.15']).should be_true
- end
-
- it 'should have lookupback address (127.0.0.1)' do
- subject.call(['127.0.0.1']).should be_true
- end
-
- it 'should not have other address' do
- subject.call(['192.1681.1.1']).should be_false
- end
-
- it 'should not have "mspiggy" on an interface' do
- subject.call(['mspiggy']).should be_false
- end
- end
-end
diff --git a/spec/unit/puppet/parser/functions/has_ip_network_spec.rb b/spec/unit/puppet/parser/functions/has_ip_network_spec.rb
deleted file mode 100755
index c3a289e..0000000
--- a/spec/unit/puppet/parser/functions/has_ip_network_spec.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe Puppet::Parser::Functions.function(:has_ip_network) do
-
- let(:scope) do
- PuppetlabsSpec::PuppetInternals.scope
- end
-
- subject do
- function_name = Puppet::Parser::Functions.function(:has_ip_network)
- scope.method(function_name)
- end
-
- context "On Linux Systems" do
- before :each do
- scope.stubs(:lookupvar).with('interfaces').returns('eth0,lo')
- scope.stubs(:lookupvar).with('network').returns(:undefined)
- scope.stubs(:lookupvar).with('network_eth0').returns('10.0.2.0')
- scope.stubs(:lookupvar).with('network_lo').returns('127.0.0.1')
- end
-
- it 'should have primary network (10.0.2.0)' do
- subject.call(['10.0.2.0']).should be_true
- end
-
- it 'should have loopback network (127.0.0.0)' do
- subject.call(['127.0.0.1']).should be_true
- end
-
- it 'should not have other network' do
- subject.call(['192.168.1.0']).should be_false
- end
- end
-end
-
diff --git a/spec/unit/puppet/parser/functions/has_key_spec.rb b/spec/unit/puppet/parser/functions/has_key_spec.rb
deleted file mode 100644
index 490daea..0000000
--- a/spec/unit/puppet/parser/functions/has_key_spec.rb
+++ /dev/null
@@ -1,42 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe Puppet::Parser::Functions.function(:has_key) do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- describe 'when calling has_key from puppet' do
- it "should not compile when no arguments are passed" do
- pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
- Puppet[:code] = '$x = has_key()'
- expect {
- scope.compiler.compile
- }.to raise_error(Puppet::ParseError, /wrong number of arguments/)
- end
-
- it "should not compile when 1 argument is passed" do
- pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
- Puppet[:code] = "$x = has_key('foo')"
- expect {
- scope.compiler.compile
- }.to raise_error(Puppet::ParseError, /wrong number of arguments/)
- end
-
- it "should require the first value to be a Hash" do
- pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
- Puppet[:code] = "$x = has_key('foo', 'bar')"
- expect {
- scope.compiler.compile
- }.to raise_error(Puppet::ParseError, /expects the first argument to be a hash/)
- end
- end
-
- describe 'when calling the function has_key from a scope instance' do
- it 'should detect existing keys' do
- scope.function_has_key([{'one' => 1}, 'one']).should be_true
- end
-
- it 'should detect existing keys' do
- scope.function_has_key([{'one' => 1}, 'two']).should be_false
- end
- end
-end
diff --git a/spec/unit/puppet/parser/functions/hash_spec.rb b/spec/unit/puppet/parser/functions/hash_spec.rb
deleted file mode 100644
index 7c91be9..0000000
--- a/spec/unit/puppet/parser/functions/hash_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the hash function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("hash").should == "function_hash"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_hash([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should convert an array to a hash" do
- result = scope.function_hash([['a',1,'b',2,'c',3]])
- result.should(eq({'a'=>1,'b'=>2,'c'=>3}))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/intersection_spec.rb b/spec/unit/puppet/parser/functions/intersection_spec.rb
deleted file mode 100644
index fd44f7f..0000000
--- a/spec/unit/puppet/parser/functions/intersection_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the intersection function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("intersection").should == "function_intersection"
- end
-
- it "should raise a ParseError if there are fewer than 2 arguments" do
- lambda { scope.function_intersection([]) }.should( raise_error(Puppet::ParseError) )
- end
-
- it "should return the intersection of two arrays" do
- result = scope.function_intersection([["a","b","c"],["b","c","d"]])
- result.should(eq(["b","c"]))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/is_array_spec.rb b/spec/unit/puppet/parser/functions/is_array_spec.rb
deleted file mode 100644
index e7f4bcd..0000000
--- a/spec/unit/puppet/parser/functions/is_array_spec.rb
+++ /dev/null
@@ -1,29 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the is_array function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("is_array").should == "function_is_array"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_is_array([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return true if passed an array" do
- result = scope.function_is_array([[1,2,3]])
- result.should(eq(true))
- end
-
- it "should return false if passed a hash" do
- result = scope.function_is_array([{'a'=>1}])
- result.should(eq(false))
- end
-
- it "should return false if passed a string" do
- result = scope.function_is_array(["asdf"])
- result.should(eq(false))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/is_domain_name_spec.rb b/spec/unit/puppet/parser/functions/is_domain_name_spec.rb
deleted file mode 100644
index f2ea76d..0000000
--- a/spec/unit/puppet/parser/functions/is_domain_name_spec.rb
+++ /dev/null
@@ -1,64 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the is_domain_name function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("is_domain_name").should == "function_is_domain_name"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_is_domain_name([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return true if a valid short domain name" do
- result = scope.function_is_domain_name(["x.com"])
- result.should(be_true)
- end
-
- it "should return true if the domain is ." do
- result = scope.function_is_domain_name(["."])
- result.should(be_true)
- end
-
- it "should return true if the domain is x.com." do
- result = scope.function_is_domain_name(["x.com."])
- result.should(be_true)
- end
-
- it "should return true if a valid domain name" do
- result = scope.function_is_domain_name(["foo.bar.com"])
- result.should(be_true)
- end
-
- it "should allow domain parts to start with numbers" do
- result = scope.function_is_domain_name(["3foo.2bar.com"])
- result.should(be_true)
- end
-
- it "should allow domain to end with a dot" do
- result = scope.function_is_domain_name(["3foo.2bar.com."])
- result.should(be_true)
- end
-
- it "should allow a single part domain" do
- result = scope.function_is_domain_name(["orange"])
- result.should(be_true)
- end
-
- it "should return false if domain parts start with hyphens" do
- result = scope.function_is_domain_name(["-3foo.2bar.com"])
- result.should(be_false)
- end
-
- it "should return true if domain contains hyphens" do
- result = scope.function_is_domain_name(["3foo-bar.2bar-fuzz.com"])
- result.should(be_true)
- end
-
- it "should return false if domain name contains spaces" do
- result = scope.function_is_domain_name(["not valid"])
- result.should(be_false)
- end
-end
diff --git a/spec/unit/puppet/parser/functions/is_float_spec.rb b/spec/unit/puppet/parser/functions/is_float_spec.rb
deleted file mode 100644
index b7d73b0..0000000
--- a/spec/unit/puppet/parser/functions/is_float_spec.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the is_float function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("is_float").should == "function_is_float"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_is_float([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return true if a float" do
- result = scope.function_is_float(["0.12"])
- result.should(eq(true))
- end
-
- it "should return false if a string" do
- result = scope.function_is_float(["asdf"])
- result.should(eq(false))
- end
-
- it "should return false if an integer" do
- result = scope.function_is_float(["3"])
- result.should(eq(false))
- end
- it "should return true if a float is created from an arithmetical operation" do
- result = scope.function_is_float([3.2*2])
- result.should(eq(true))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/is_function_available.rb b/spec/unit/puppet/parser/functions/is_function_available.rb
deleted file mode 100644
index bd40c51..0000000
--- a/spec/unit/puppet/parser/functions/is_function_available.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env rspec
-require 'spec_helper'
-
-describe "the is_function_available function" do
- before :all do
- Puppet::Parser::Functions.autoloader.loadall
- end
-
- before :each do
- @scope = Puppet::Parser::Scope.new
- end
-
- it "should exist" do
- Puppet::Parser::Functions.function("is_function_available").should == "function_is_function_available"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { @scope.function_is_function_available([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return false if a nonexistent function is passed" do
- result = @scope.function_is_function_available(['jeff_mccunes_left_sock'])
- result.should(eq(false))
- end
-
- it "should return true if an available function is passed" do
- result = @scope.function_is_function_available(['require'])
- result.should(eq(true))
- end
-
-end
diff --git a/spec/unit/puppet/parser/functions/is_hash_spec.rb b/spec/unit/puppet/parser/functions/is_hash_spec.rb
deleted file mode 100644
index bbebf39..0000000
--- a/spec/unit/puppet/parser/functions/is_hash_spec.rb
+++ /dev/null
@@ -1,29 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the is_hash function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("is_hash").should == "function_is_hash"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_is_hash([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return true if passed a hash" do
- result = scope.function_is_hash([{"a"=>1,"b"=>2}])
- result.should(eq(true))
- end
-
- it "should return false if passed an array" do
- result = scope.function_is_hash([["a","b"]])
- result.should(eq(false))
- end
-
- it "should return false if passed a string" do
- result = scope.function_is_hash(["asdf"])
- result.should(eq(false))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/is_integer_spec.rb b/spec/unit/puppet/parser/functions/is_integer_spec.rb
deleted file mode 100644
index 4335795..0000000
--- a/spec/unit/puppet/parser/functions/is_integer_spec.rb
+++ /dev/null
@@ -1,34 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the is_integer function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("is_integer").should == "function_is_integer"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_is_integer([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return true if an integer" do
- result = scope.function_is_integer(["3"])
- result.should(eq(true))
- end
-
- it "should return false if a float" do
- result = scope.function_is_integer(["3.2"])
- result.should(eq(false))
- end
-
- it "should return false if a string" do
- result = scope.function_is_integer(["asdf"])
- result.should(eq(false))
- end
-
- it "should return true if an integer is created from an arithmetical operation" do
- result = scope.function_is_integer([3*2])
- result.should(eq(true))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/is_ip_address_spec.rb b/spec/unit/puppet/parser/functions/is_ip_address_spec.rb
deleted file mode 100644
index c0debb3..0000000
--- a/spec/unit/puppet/parser/functions/is_ip_address_spec.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the is_ip_address function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("is_ip_address").should == "function_is_ip_address"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_is_ip_address([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return true if an IPv4 address" do
- result = scope.function_is_ip_address(["1.2.3.4"])
- result.should(eq(true))
- end
-
- it "should return true if a full IPv6 address" do
- result = scope.function_is_ip_address(["fe80:0000:cd12:d123:e2f8:47ff:fe09:dd74"])
- result.should(eq(true))
- end
-
- it "should return true if a compressed IPv6 address" do
- result = scope.function_is_ip_address(["fe00::1"])
- result.should(eq(true))
- end
-
- it "should return false if not valid" do
- result = scope.function_is_ip_address(["asdf"])
- result.should(eq(false))
- end
-
- it "should return false if IP octets out of range" do
- result = scope.function_is_ip_address(["1.1.1.300"])
- result.should(eq(false))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/is_mac_address_spec.rb b/spec/unit/puppet/parser/functions/is_mac_address_spec.rb
deleted file mode 100644
index ca9c590..0000000
--- a/spec/unit/puppet/parser/functions/is_mac_address_spec.rb
+++ /dev/null
@@ -1,29 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the is_mac_address function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("is_mac_address").should == "function_is_mac_address"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_is_mac_address([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return true if a valid mac address" do
- result = scope.function_is_mac_address(["00:a0:1f:12:7f:a0"])
- result.should(eq(true))
- end
-
- it "should return false if octets are out of range" do
- result = scope.function_is_mac_address(["00:a0:1f:12:7f:g0"])
- result.should(eq(false))
- end
-
- it "should return false if not valid" do
- result = scope.function_is_mac_address(["not valid"])
- result.should(eq(false))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/is_numeric_spec.rb b/spec/unit/puppet/parser/functions/is_numeric_spec.rb
deleted file mode 100644
index d7440fb..0000000
--- a/spec/unit/puppet/parser/functions/is_numeric_spec.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the is_numeric function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("is_numeric").should == "function_is_numeric"
- end
-
- it "should raise a ParseError if there is less than 1 argument" do
- lambda { scope.function_is_numeric([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return true if an integer" do
- result = scope.function_is_numeric(["3"])
- result.should(eq(true))
- end
-
- it "should return true if a float" do
- result = scope.function_is_numeric(["3.2"])
- result.should(eq(true))
- end
-
- it "should return true if an integer is created from an arithmetical operation" do
- result = scope.function_is_numeric([3*2])
- result.should(eq(true))
- end
-
- it "should return true if a float is created from an arithmetical operation" do
- result = scope.function_is_numeric([3.2*2])
- result.should(eq(true))
- end
-
- it "should return false if a string" do
- result = scope.function_is_numeric(["asdf"])
- result.should(eq(false))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/is_string_spec.rb b/spec/unit/puppet/parser/functions/is_string_spec.rb
deleted file mode 100644
index 3756bea..0000000
--- a/spec/unit/puppet/parser/functions/is_string_spec.rb
+++ /dev/null
@@ -1,34 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the is_string function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("is_string").should == "function_is_string"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_is_string([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return true if a string" do
- result = scope.function_is_string(["asdf"])
- result.should(eq(true))
- end
-
- it "should return false if an integer" do
- result = scope.function_is_string(["3"])
- result.should(eq(false))
- end
-
- it "should return false if a float" do
- result = scope.function_is_string(["3.23"])
- result.should(eq(false))
- end
-
- it "should return false if an array" do
- result = scope.function_is_string([["a","b","c"]])
- result.should(eq(false))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/join_keys_to_values_spec.rb b/spec/unit/puppet/parser/functions/join_keys_to_values_spec.rb
deleted file mode 100644
index a52fb71..0000000
--- a/spec/unit/puppet/parser/functions/join_keys_to_values_spec.rb
+++ /dev/null
@@ -1,40 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the join_keys_to_values function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("join_keys_to_values").should == "function_join_keys_to_values"
- end
-
- it "should raise a ParseError if there are fewer than two arguments" do
- lambda { scope.function_join_keys_to_values([{}]) }.should raise_error Puppet::ParseError
- end
-
- it "should raise a ParseError if there are greater than two arguments" do
- lambda { scope.function_join_keys_to_values([{}, 'foo', 'bar']) }.should raise_error Puppet::ParseError
- end
-
- it "should raise a TypeError if the first argument is an array" do
- lambda { scope.function_join_keys_to_values([[1,2], ',']) }.should raise_error TypeError
- end
-
- it "should raise a TypeError if the second argument is an array" do
- lambda { scope.function_join_keys_to_values([{}, [1,2]]) }.should raise_error TypeError
- end
-
- it "should raise a TypeError if the second argument is a number" do
- lambda { scope.function_join_keys_to_values([{}, 1]) }.should raise_error TypeError
- end
-
- it "should return an empty array given an empty hash" do
- result = scope.function_join_keys_to_values([{}, ":"])
- result.should == []
- end
-
- it "should join hash's keys to its values" do
- result = scope.function_join_keys_to_values([{'a'=>1,2=>'foo',:b=>nil}, ":"])
- result.should =~ ['a:1','2:foo','b:']
- end
-end
diff --git a/spec/unit/puppet/parser/functions/join_spec.rb b/spec/unit/puppet/parser/functions/join_spec.rb
deleted file mode 100644
index aafa1a7..0000000
--- a/spec/unit/puppet/parser/functions/join_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the join function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("join").should == "function_join"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_join([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should join an array into a string" do
- result = scope.function_join([["a","b","c"], ":"])
- result.should(eq("a:b:c"))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/keys_spec.rb b/spec/unit/puppet/parser/functions/keys_spec.rb
deleted file mode 100644
index fdd7a70..0000000
--- a/spec/unit/puppet/parser/functions/keys_spec.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the keys function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("keys").should == "function_keys"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_keys([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return an array of keys when given a hash" do
- result = scope.function_keys([{'a'=>1, 'b'=>2}])
- # =~ performs 'array with same elements' (set) matching
- # For more info see RSpec::Matchers::MatchArray
- result.should =~ ['a','b']
- end
-end
diff --git a/spec/unit/puppet/parser/functions/lstrip_spec.rb b/spec/unit/puppet/parser/functions/lstrip_spec.rb
deleted file mode 100644
index b280ae7..0000000
--- a/spec/unit/puppet/parser/functions/lstrip_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the lstrip function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("lstrip").should == "function_lstrip"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_lstrip([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should lstrip a string" do
- result = scope.function_lstrip([" asdf"])
- result.should(eq('asdf'))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/max_spec.rb b/spec/unit/puppet/parser/functions/max_spec.rb
deleted file mode 100755
index ff6f2b3..0000000
--- a/spec/unit/puppet/parser/functions/max_spec.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-
-require 'spec_helper'
-
-describe "the max function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("max").should == "function_max"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_max([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should be able to compare strings" do
- scope.function_max(["albatross","dog","horse"]).should(eq("horse"))
- end
-
- it "should be able to compare numbers" do
- scope.function_max([6,8,4]).should(eq(8))
- end
-
- it "should be able to compare a number with a stringified number" do
- scope.function_max([1,"2"]).should(eq("2"))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/member_spec.rb b/spec/unit/puppet/parser/functions/member_spec.rb
deleted file mode 100644
index 6e9a023..0000000
--- a/spec/unit/puppet/parser/functions/member_spec.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the member function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("member").should == "function_member"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_member([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return true if a member is in an array" do
- result = scope.function_member([["a","b","c"], "a"])
- result.should(eq(true))
- end
-
- it "should return false if a member is not in an array" do
- result = scope.function_member([["a","b","c"], "d"])
- result.should(eq(false))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/merge_spec.rb b/spec/unit/puppet/parser/functions/merge_spec.rb
deleted file mode 100644
index 8a170bb..0000000
--- a/spec/unit/puppet/parser/functions/merge_spec.rb
+++ /dev/null
@@ -1,52 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-
-require 'spec_helper'
-
-describe Puppet::Parser::Functions.function(:merge) do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- describe 'when calling merge from puppet' do
- it "should not compile when no arguments are passed" do
- pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
- Puppet[:code] = '$x = merge()'
- expect {
- scope.compiler.compile
- }.to raise_error(Puppet::ParseError, /wrong number of arguments/)
- end
-
- it "should not compile when 1 argument is passed" do
- pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
- Puppet[:code] = "$my_hash={'one' => 1}\n$x = merge($my_hash)"
- expect {
- scope.compiler.compile
- }.to raise_error(Puppet::ParseError, /wrong number of arguments/)
- end
- end
-
- describe 'when calling merge on the scope instance' do
- it 'should require all parameters are hashes' do
- expect { new_hash = scope.function_merge([{}, '2'])}.to raise_error(Puppet::ParseError, /unexpected argument type String/)
- expect { new_hash = scope.function_merge([{}, 2])}.to raise_error(Puppet::ParseError, /unexpected argument type Fixnum/)
- end
-
- it 'should accept empty strings as puppet undef' do
- expect { new_hash = scope.function_merge([{}, ''])}.not_to raise_error(Puppet::ParseError, /unexpected argument type String/)
- end
-
- it 'should be able to merge two hashes' do
- new_hash = scope.function_merge([{'one' => '1', 'two' => '1'}, {'two' => '2', 'three' => '2'}])
- new_hash['one'].should == '1'
- new_hash['two'].should == '2'
- new_hash['three'].should == '2'
- end
-
- it 'should merge multiple hashes' do
- hash = scope.function_merge([{'one' => 1}, {'one' => '2'}, {'one' => '3'}])
- hash['one'].should == '3'
- end
-
- it 'should accept empty hashes' do
- scope.function_merge([{},{},{}]).should == {}
- end
- end
-end
diff --git a/spec/unit/puppet/parser/functions/min_spec.rb b/spec/unit/puppet/parser/functions/min_spec.rb
deleted file mode 100755
index 71d593e..0000000
--- a/spec/unit/puppet/parser/functions/min_spec.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-
-require 'spec_helper'
-
-describe "the min function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("min").should == "function_min"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_min([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should be able to compare strings" do
- scope.function_min(["albatross","dog","horse"]).should(eq("albatross"))
- end
-
- it "should be able to compare numbers" do
- scope.function_min([6,8,4]).should(eq(4))
- end
-
- it "should be able to compare a number with a stringified number" do
- scope.function_min([1,"2"]).should(eq(1))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/num2bool_spec.rb b/spec/unit/puppet/parser/functions/num2bool_spec.rb
deleted file mode 100644
index b56196d..0000000
--- a/spec/unit/puppet/parser/functions/num2bool_spec.rb
+++ /dev/null
@@ -1,67 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the num2bool function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("num2bool").should == "function_num2bool"
- end
-
- it "should raise a ParseError if there are no arguments" do
- lambda { scope.function_num2bool([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should raise a ParseError if there are more than 1 arguments" do
- lambda { scope.function_num2bool(["foo","bar"]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should raise a ParseError if passed something non-numeric" do
- lambda { scope.function_num2bool(["xyzzy"]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return true if passed string 1" do
- result = scope.function_num2bool(["1"])
- result.should(be_true)
- end
-
- it "should return true if passed string 1.5" do
- result = scope.function_num2bool(["1.5"])
- result.should(be_true)
- end
-
- it "should return true if passed number 1" do
- result = scope.function_num2bool([1])
- result.should(be_true)
- end
-
- it "should return false if passed string 0" do
- result = scope.function_num2bool(["0"])
- result.should(be_false)
- end
-
- it "should return false if passed number 0" do
- result = scope.function_num2bool([0])
- result.should(be_false)
- end
-
- it "should return false if passed string -1" do
- result = scope.function_num2bool(["-1"])
- result.should(be_false)
- end
-
- it "should return false if passed string -1.5" do
- result = scope.function_num2bool(["-1.5"])
- result.should(be_false)
- end
-
- it "should return false if passed number -1" do
- result = scope.function_num2bool([-1])
- result.should(be_false)
- end
-
- it "should return false if passed float -1.5" do
- result = scope.function_num2bool([-1.5])
- result.should(be_false)
- end
-end
diff --git a/spec/unit/puppet/parser/functions/parsejson_spec.rb b/spec/unit/puppet/parser/functions/parsejson_spec.rb
deleted file mode 100644
index f179ac1..0000000
--- a/spec/unit/puppet/parser/functions/parsejson_spec.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the parsejson function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("parsejson").should == "function_parsejson"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_parsejson([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should convert JSON to a data structure" do
- json = <<-EOS
-["aaa","bbb","ccc"]
-EOS
- result = scope.function_parsejson([json])
- result.should(eq(['aaa','bbb','ccc']))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/parseyaml_spec.rb b/spec/unit/puppet/parser/functions/parseyaml_spec.rb
deleted file mode 100644
index 0c7aea8..0000000
--- a/spec/unit/puppet/parser/functions/parseyaml_spec.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the parseyaml function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("parseyaml").should == "function_parseyaml"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_parseyaml([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should convert YAML to a data structure" do
- yaml = <<-EOS
-- aaa
-- bbb
-- ccc
-EOS
- result = scope.function_parseyaml([yaml])
- result.should(eq(['aaa','bbb','ccc']))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/pick_spec.rb b/spec/unit/puppet/parser/functions/pick_spec.rb
deleted file mode 100644
index 761db6b..0000000
--- a/spec/unit/puppet/parser/functions/pick_spec.rb
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the pick function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("pick").should == "function_pick"
- end
-
- it 'should return the correct value' do
- scope.function_pick(['first', 'second']).should == 'first'
- end
-
- it 'should return the correct value if the first value is empty' do
- scope.function_pick(['', 'second']).should == 'second'
- end
-
- it 'should remove empty string values' do
- scope.function_pick(['', 'first']).should == 'first'
- end
-
- it 'should remove :undef values' do
- scope.function_pick([:undef, 'first']).should == 'first'
- end
-
- it 'should remove :undefined values' do
- scope.function_pick([:undefined, 'first']).should == 'first'
- end
-
- it 'should error if no values are passed' do
- expect { scope.function_pick([]) }.to raise_error(Puppet::Error, /Must provide non empty value./)
- end
-end
diff --git a/spec/unit/puppet/parser/functions/prefix_spec.rb b/spec/unit/puppet/parser/functions/prefix_spec.rb
deleted file mode 100644
index 5cf592b..0000000
--- a/spec/unit/puppet/parser/functions/prefix_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the prefix function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("prefix").should == "function_prefix"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_prefix([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return a prefixed array" do
- result = scope.function_prefix([['a','b','c'], 'p'])
- result.should(eq(['pa','pb','pc']))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/range_spec.rb b/spec/unit/puppet/parser/functions/range_spec.rb
deleted file mode 100644
index 0e1ad37..0000000
--- a/spec/unit/puppet/parser/functions/range_spec.rb
+++ /dev/null
@@ -1,70 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the range function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "exists" do
- Puppet::Parser::Functions.function("range").should == "function_range"
- end
-
- it "raises a ParseError if there is less than 1 arguments" do
- expect { scope.function_range([]) }.to raise_error Puppet::ParseError, /Wrong number of arguments.*0 for 1/
- end
-
- describe 'with a letter range' do
- it "returns a letter range" do
- result = scope.function_range(["a","d"])
- result.should eq ['a','b','c','d']
- end
-
- it "returns a letter range given a step of 1" do
- result = scope.function_range(["a","d","1"])
- result.should eq ['a','b','c','d']
- end
-
- it "returns a stepped letter range" do
- result = scope.function_range(["a","d","2"])
- result.should eq ['a','c']
- end
-
- it "returns a stepped letter range given a negative step" do
- result = scope.function_range(["a","d","-2"])
- result.should eq ['a','c']
- end
- end
-
- describe 'with a number range' do
- it "returns a number range" do
- result = scope.function_range(["1","4"])
- result.should eq [1,2,3,4]
- end
-
- it "returns a number range given a step of 1" do
- result = scope.function_range(["1","4","1"])
- result.should eq [1,2,3,4]
- end
-
- it "returns a stepped number range" do
- result = scope.function_range(["1","4","2"])
- result.should eq [1,3]
- end
-
- it "returns a stepped number range given a negative step" do
- result = scope.function_range(["1","4","-2"])
- result.should eq [1,3]
- end
- end
-
- describe 'with a numeric-like string range' do
- it "works with padded hostname like strings" do
- expected = ("host01".."host10").to_a
- scope.function_range(["host01","host10"]).should eq expected
- end
-
- it "coerces zero padded digits to integers" do
- expected = (0..10).to_a
- scope.function_range(["00", "10"]).should eq expected
- end
- end
-end
diff --git a/spec/unit/puppet/parser/functions/reject_spec.rb b/spec/unit/puppet/parser/functions/reject_spec.rb
deleted file mode 100755
index f2cb741..0000000
--- a/spec/unit/puppet/parser/functions/reject_spec.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env ruby
-
-require 'spec_helper'
-
-describe "the reject function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("reject").should == "function_reject"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_reject([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should reject contents from an array" do
- result = scope.function_reject([["1111", "aaabbb","bbbccc","dddeee"], "bbb"])
- result.should(eq(["1111", "dddeee"]))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/reverse_spec.rb b/spec/unit/puppet/parser/functions/reverse_spec.rb
deleted file mode 100644
index 1b59206..0000000
--- a/spec/unit/puppet/parser/functions/reverse_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the reverse function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("reverse").should == "function_reverse"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_reverse([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should reverse a string" do
- result = scope.function_reverse(["asdfghijkl"])
- result.should(eq('lkjihgfdsa'))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/rstrip_spec.rb b/spec/unit/puppet/parser/functions/rstrip_spec.rb
deleted file mode 100644
index d90de1d..0000000
--- a/spec/unit/puppet/parser/functions/rstrip_spec.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the rstrip function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("rstrip").should == "function_rstrip"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_rstrip([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should rstrip a string" do
- result = scope.function_rstrip(["asdf "])
- result.should(eq('asdf'))
- end
-
- it "should rstrip each element in an array" do
- result = scope.function_rstrip([["a ","b ", "c "]])
- result.should(eq(['a','b','c']))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/shuffle_spec.rb b/spec/unit/puppet/parser/functions/shuffle_spec.rb
deleted file mode 100644
index 93346d5..0000000
--- a/spec/unit/puppet/parser/functions/shuffle_spec.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the shuffle function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("shuffle").should == "function_shuffle"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_shuffle([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should shuffle a string and the result should be the same size" do
- result = scope.function_shuffle(["asdf"])
- result.size.should(eq(4))
- end
-
- it "should shuffle a string but the sorted contents should still be the same" do
- result = scope.function_shuffle(["adfs"])
- result.split("").sort.join("").should(eq("adfs"))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/size_spec.rb b/spec/unit/puppet/parser/functions/size_spec.rb
deleted file mode 100644
index b1c435a..0000000
--- a/spec/unit/puppet/parser/functions/size_spec.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the size function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("size").should == "function_size"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_size([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return the size of a string" do
- result = scope.function_size(["asdf"])
- result.should(eq(4))
- end
-
- it "should return the size of an array" do
- result = scope.function_size([["a","b","c"]])
- result.should(eq(3))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/sort_spec.rb b/spec/unit/puppet/parser/functions/sort_spec.rb
deleted file mode 100644
index 3187a5a..0000000
--- a/spec/unit/puppet/parser/functions/sort_spec.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the sort function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("sort").should == "function_sort"
- end
-
- it "should raise a ParseError if there is not 1 arguments" do
- lambda { scope.function_sort(['','']) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should sort an array" do
- result = scope.function_sort([["a","c","b"]])
- result.should(eq(['a','b','c']))
- end
-
- it "should sort a string" do
- result = scope.function_sort(["acb"])
- result.should(eq('abc'))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/squeeze_spec.rb b/spec/unit/puppet/parser/functions/squeeze_spec.rb
deleted file mode 100644
index 60e5a30..0000000
--- a/spec/unit/puppet/parser/functions/squeeze_spec.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the squeeze function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("squeeze").should == "function_squeeze"
- end
-
- it "should raise a ParseError if there is less than 2 arguments" do
- lambda { scope.function_squeeze([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should squeeze a string" do
- result = scope.function_squeeze(["aaabbbbcccc"])
- result.should(eq('abc'))
- end
-
- it "should squeeze all elements in an array" do
- result = scope.function_squeeze([["aaabbbbcccc","dddfff"]])
- result.should(eq(['abc','df']))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/str2bool_spec.rb b/spec/unit/puppet/parser/functions/str2bool_spec.rb
deleted file mode 100644
index ef6350f..0000000
--- a/spec/unit/puppet/parser/functions/str2bool_spec.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the str2bool function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("str2bool").should == "function_str2bool"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_str2bool([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should convert string 'true' to true" do
- result = scope.function_str2bool(["true"])
- result.should(eq(true))
- end
-
- it "should convert string 'undef' to false" do
- result = scope.function_str2bool(["undef"])
- result.should(eq(false))
- end
-
- it "should return the boolean it was called with" do
- result = scope.function_str2bool([true])
- result.should(eq(true))
- result = scope.function_str2bool([false])
- result.should(eq(false))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/str2saltedsha512_spec.rb b/spec/unit/puppet/parser/functions/str2saltedsha512_spec.rb
deleted file mode 100644
index df8fb8e..0000000
--- a/spec/unit/puppet/parser/functions/str2saltedsha512_spec.rb
+++ /dev/null
@@ -1,45 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the str2saltedsha512 function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("str2saltedsha512").should == "function_str2saltedsha512"
- end
-
- it "should raise a ParseError if there is less than 1 argument" do
- expect { scope.function_str2saltedsha512([]) }.to( raise_error(Puppet::ParseError) )
- end
-
- it "should raise a ParseError if there is more than 1 argument" do
- expect { scope.function_str2saltedsha512(['foo', 'bar', 'baz']) }.to( raise_error(Puppet::ParseError) )
- end
-
- it "should return a salted-sha512 password hash 136 characters in length" do
- result = scope.function_str2saltedsha512(["password"])
- result.length.should(eq(136))
- end
-
- it "should raise an error if you pass a non-string password" do
- expect { scope.function_str2saltedsha512([1234]) }.to( raise_error(Puppet::ParseError) )
- end
-
- it "should generate a valid password" do
- # Allow the function to generate a password based on the string 'password'
- password_hash = scope.function_str2saltedsha512(["password"])
-
- # Separate the Salt and Password from the Password Hash
- salt = password_hash[0..7]
- password = password_hash[8..-1]
-
- # Convert the Salt and Password from Hex to Binary Data
- str_salt = Array(salt.lines).pack('H*')
- str_password = Array(password.lines).pack('H*')
-
- # Combine the Binary Salt with 'password' and compare the end result
- saltedpass = Digest::SHA512.digest(str_salt + 'password')
- result = (str_salt + saltedpass).unpack('H*')[0]
- result.should == password_hash
- end
-end
diff --git a/spec/unit/puppet/parser/functions/strftime_spec.rb b/spec/unit/puppet/parser/functions/strftime_spec.rb
deleted file mode 100644
index df42b6f..0000000
--- a/spec/unit/puppet/parser/functions/strftime_spec.rb
+++ /dev/null
@@ -1,29 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the strftime function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("strftime").should == "function_strftime"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_strftime([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "using %s should be higher then when I wrote this test" do
- result = scope.function_strftime(["%s"])
- result.to_i.should(be > 1311953157)
- end
-
- it "using %s should be lower then 1.5 trillion" do
- result = scope.function_strftime(["%s"])
- result.to_i.should(be < 1500000000)
- end
-
- it "should return a date when given %Y-%m-%d" do
- result = scope.function_strftime(["%Y-%m-%d"])
- result.should =~ /^\d{4}-\d{2}-\d{2}$/
- end
-end
diff --git a/spec/unit/puppet/parser/functions/strip_spec.rb b/spec/unit/puppet/parser/functions/strip_spec.rb
deleted file mode 100644
index fccdd26..0000000
--- a/spec/unit/puppet/parser/functions/strip_spec.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the strip function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
- it "should exist" do
- Puppet::Parser::Functions.function("strip").should == "function_strip"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_strip([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should strip a string" do
- result = scope.function_strip([" ab cd "])
- result.should(eq('ab cd'))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/suffix_spec.rb b/spec/unit/puppet/parser/functions/suffix_spec.rb
deleted file mode 100644
index c28f719..0000000
--- a/spec/unit/puppet/parser/functions/suffix_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the suffix function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("suffix").should == "function_suffix"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_suffix([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return a suffixed array" do
- result = scope.function_suffix([['a','b','c'], 'p'])
- result.should(eq(['ap','bp','cp']))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/swapcase_spec.rb b/spec/unit/puppet/parser/functions/swapcase_spec.rb
deleted file mode 100644
index 808b415..0000000
--- a/spec/unit/puppet/parser/functions/swapcase_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the swapcase function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("swapcase").should == "function_swapcase"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_swapcase([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should swapcase a string" do
- result = scope.function_swapcase(["aaBBccDD"])
- result.should(eq('AAbbCCdd'))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/time_spec.rb b/spec/unit/puppet/parser/functions/time_spec.rb
deleted file mode 100644
index e9fb76e..0000000
--- a/spec/unit/puppet/parser/functions/time_spec.rb
+++ /dev/null
@@ -1,29 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the time function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("time").should == "function_time"
- end
-
- it "should raise a ParseError if there is more than 2 arguments" do
- lambda { scope.function_time(['','']) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return a number" do
- result = scope.function_time([])
- result.should be_an(Integer)
- end
-
- it "should be higher then when I wrote this test" do
- result = scope.function_time([])
- result.should(be > 1311953157)
- end
-
- it "should be lower then 1.5 trillion" do
- result = scope.function_time([])
- result.should(be < 1500000000)
- end
-end
diff --git a/spec/unit/puppet/parser/functions/to_bytes_spec.rb b/spec/unit/puppet/parser/functions/to_bytes_spec.rb
deleted file mode 100755
index d1ea4c8..0000000
--- a/spec/unit/puppet/parser/functions/to_bytes_spec.rb
+++ /dev/null
@@ -1,58 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-
-require 'spec_helper'
-
-describe "the to_bytes function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("to_bytes").should == "function_to_bytes"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_to_bytes([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should convert kB to B" do
- result = scope.function_to_bytes(["4 kB"])
- result.should(eq(4096))
- end
-
- it "should work without B in unit" do
- result = scope.function_to_bytes(["4 k"])
- result.should(eq(4096))
- end
-
- it "should work without a space before unit" do
- result = scope.function_to_bytes(["4k"])
- result.should(eq(4096))
- end
-
- it "should work without a unit" do
- result = scope.function_to_bytes(["5678"])
- result.should(eq(5678))
- end
-
- it "should convert fractions" do
- result = scope.function_to_bytes(["1.5 kB"])
- result.should(eq(1536))
- end
-
- it "should convert scientific notation" do
- result = scope.function_to_bytes(["1.5e2 B"])
- result.should(eq(150))
- end
-
- it "should do nothing with a positive number" do
- result = scope.function_to_bytes([5678])
- result.should(eq(5678))
- end
-
- it "should should raise a ParseError if input isn't a number" do
- lambda { scope.function_to_bytes(["foo"]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should should raise a ParseError if prefix is unknown" do
- lambda { scope.function_to_bytes(["5 uB"]) }.should( raise_error(Puppet::ParseError))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/type_spec.rb b/spec/unit/puppet/parser/functions/type_spec.rb
deleted file mode 100644
index 8fec88f..0000000
--- a/spec/unit/puppet/parser/functions/type_spec.rb
+++ /dev/null
@@ -1,43 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the type function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
- it "should exist" do
- Puppet::Parser::Functions.function("type").should == "function_type"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_type([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return string when given a string" do
- result = scope.function_type(["aaabbbbcccc"])
- result.should(eq('string'))
- end
-
- it "should return array when given an array" do
- result = scope.function_type([["aaabbbbcccc","asdf"]])
- result.should(eq('array'))
- end
-
- it "should return hash when given a hash" do
- result = scope.function_type([{"a"=>1,"b"=>2}])
- result.should(eq('hash'))
- end
-
- it "should return integer when given an integer" do
- result = scope.function_type(["1"])
- result.should(eq('integer'))
- end
-
- it "should return float when given a float" do
- result = scope.function_type(["1.34"])
- result.should(eq('float'))
- end
-
- it "should return boolean when given a boolean" do
- result = scope.function_type([true])
- result.should(eq('boolean'))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/union_spec.rb b/spec/unit/puppet/parser/functions/union_spec.rb
deleted file mode 100644
index 0d282ca..0000000
--- a/spec/unit/puppet/parser/functions/union_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the union function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("union").should == "function_union"
- end
-
- it "should raise a ParseError if there are fewer than 2 arguments" do
- lambda { scope.function_union([]) }.should( raise_error(Puppet::ParseError) )
- end
-
- it "should join two arrays together" do
- result = scope.function_union([["a","b","c"],["b","c","d"]])
- result.should(eq(["a","b","c","d"]))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/unique_spec.rb b/spec/unit/puppet/parser/functions/unique_spec.rb
deleted file mode 100644
index 5d48d49..0000000
--- a/spec/unit/puppet/parser/functions/unique_spec.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the unique function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("unique").should == "function_unique"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_unique([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should remove duplicate elements in a string" do
- result = scope.function_unique(["aabbc"])
- result.should(eq('abc'))
- end
-
- it "should remove duplicate elements in an array" do
- result = scope.function_unique([["a","a","b","b","c"]])
- result.should(eq(['a','b','c']))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/upcase_spec.rb b/spec/unit/puppet/parser/functions/upcase_spec.rb
deleted file mode 100644
index 5db5513..0000000
--- a/spec/unit/puppet/parser/functions/upcase_spec.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the upcase function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("upcase").should == "function_upcase"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_upcase([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should upcase a string" do
- result = scope.function_upcase(["abc"])
- result.should(eq('ABC'))
- end
-
- it "should do nothing if a string is already upcase" do
- result = scope.function_upcase(["ABC"])
- result.should(eq('ABC'))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/uriescape_spec.rb b/spec/unit/puppet/parser/functions/uriescape_spec.rb
deleted file mode 100644
index 7211c88..0000000
--- a/spec/unit/puppet/parser/functions/uriescape_spec.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the uriescape function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("uriescape").should == "function_uriescape"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_uriescape([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should uriescape a string" do
- result = scope.function_uriescape([":/?#[]@!$&'()*+,;= \"{}"])
- result.should(eq(':/?%23[]@!$&\'()*+,;=%20%22%7B%7D'))
- end
-
- it "should do nothing if a string is already safe" do
- result = scope.function_uriescape(["ABCdef"])
- result.should(eq('ABCdef'))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/validate_absolute_path_spec.rb b/spec/unit/puppet/parser/functions/validate_absolute_path_spec.rb
deleted file mode 100644
index 08aaf78..0000000
--- a/spec/unit/puppet/parser/functions/validate_absolute_path_spec.rb
+++ /dev/null
@@ -1,83 +0,0 @@
-require 'spec_helper'
-
-describe Puppet::Parser::Functions.function(:validate_absolute_path) do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- # The subject of these examples is the method itself.
- subject do
- # This makes sure the function is loaded within each test
- function_name = Puppet::Parser::Functions.function(:validate_absolute_path)
- scope.method(function_name)
- end
-
- describe "Valid Paths" do
- def self.valid_paths
- %w{
- C:/
- C:\\
- C:\\WINDOWS\\System32
- C:/windows/system32
- X:/foo/bar
- X:\\foo\\bar
- /var/tmp
- /var/lib/puppet
- /var/opt/../lib/puppet
- }
- end
-
- context "Without Puppet::Util.absolute_path? (e.g. Puppet <= 2.6)" do
- before :each do
- # The intent here is to mock Puppet to behave like Puppet 2.6 does.
- # Puppet 2.6 does not have the absolute_path? method. This is only a
- # convenience test, stdlib should be run with the Puppet 2.6.x in the
- # $LOAD_PATH in addition to 2.7.x and master.
- Puppet::Util.expects(:respond_to?).with(:absolute_path?).returns(false)
- end
- valid_paths.each do |path|
- it "validate_absolute_path(#{path.inspect}) should not fail" do
- expect { subject.call [path] }.not_to raise_error Puppet::ParseError
- end
- end
- end
-
- context "Puppet without mocking" do
- valid_paths.each do |path|
- it "validate_absolute_path(#{path.inspect}) should not fail" do
- expect { subject.call [path] }.not_to raise_error Puppet::ParseError
- end
- end
- end
- end
-
- describe 'Invalid paths' do
- context 'Garbage inputs' do
- [
- nil,
- [ nil ],
- { 'foo' => 'bar' },
- { },
- '',
- ].each do |path|
- it "validate_absolute_path(#{path.inspect}) should fail" do
- expect { subject.call [path] }.to raise_error Puppet::ParseError
- end
- end
- end
-
- context 'Relative paths' do
- %w{
- relative1
- .
- ..
- ./foo
- ../foo
- etc/puppetlabs/puppet
- opt/puppet/bin
- }.each do |path|
- it "validate_absolute_path(#{path.inspect}) should fail" do
- expect { subject.call [path] }.to raise_error Puppet::ParseError
- end
- end
- end
- end
-end
diff --git a/spec/unit/puppet/parser/functions/validate_array_spec.rb b/spec/unit/puppet/parser/functions/validate_array_spec.rb
deleted file mode 100644
index 4b31cfd..0000000
--- a/spec/unit/puppet/parser/functions/validate_array_spec.rb
+++ /dev/null
@@ -1,38 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-
-require 'spec_helper'
-
-describe Puppet::Parser::Functions.function(:validate_array) do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
- describe 'when calling validate_array from puppet' do
-
- %w{ true false }.each do |the_string|
- it "should not compile when #{the_string} is a string" do
- Puppet[:code] = "validate_array('#{the_string}')"
- expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not an Array/)
- end
-
- it "should not compile when #{the_string} is a bare word" do
- Puppet[:code] = "validate_array(#{the_string})"
- expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not an Array/)
- end
- end
-
- it "should compile when multiple array arguments are passed" do
- Puppet[:code] = <<-'ENDofPUPPETcode'
- $foo = [ ]
- $bar = [ 'one', 'two' ]
- validate_array($foo, $bar)
- ENDofPUPPETcode
- scope.compiler.compile
- end
-
- it "should not compile when an undef variable is passed" do
- Puppet[:code] = <<-'ENDofPUPPETcode'
- $foo = undef
- validate_array($foo)
- ENDofPUPPETcode
- expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not an Array/)
- end
- end
-end
diff --git a/spec/unit/puppet/parser/functions/validate_augeas_spec.rb b/spec/unit/puppet/parser/functions/validate_augeas_spec.rb
deleted file mode 100644
index ab5c140..0000000
--- a/spec/unit/puppet/parser/functions/validate_augeas_spec.rb
+++ /dev/null
@@ -1,102 +0,0 @@
-require 'spec_helper'
-
-describe Puppet::Parser::Functions.function(:validate_augeas), :if => Puppet.features.augeas? do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- # The subject of these examplres is the method itself.
- subject do
- # This makes sure the function is loaded within each test
- function_name = Puppet::Parser::Functions.function(:validate_augeas)
- scope.method(function_name)
- end
-
- context 'Using Puppet::Parser::Scope.new' do
-
- describe 'Garbage inputs' do
- inputs = [
- [ nil ],
- [ [ nil ] ],
- [ { 'foo' => 'bar' } ],
- [ { } ],
- [ '' ],
- [ "one", "one", "MSG to User", "4th arg" ],
- ]
-
- inputs.each do |input|
- it "validate_augeas(#{input.inspect}) should fail" do
- expect { subject.call [input] }.to raise_error Puppet::ParseError
- end
- end
- end
-
- describe 'Valid inputs' do
- inputs = [
- [ "root:x:0:0:root:/root:/bin/bash\n", 'Passwd.lns' ],
- [ "proc /proc proc nodev,noexec,nosuid 0 0\n", 'Fstab.lns'],
- ]
-
- inputs.each do |input|
- it "validate_augeas(#{input.inspect}) should not fail" do
- expect { subject.call input }.not_to raise_error
- end
- end
- end
-
- describe "Valid inputs which should raise an exception without a message" do
- # The intent here is to make sure valid inputs raise exceptions when they
- # don't specify an error message to display. This is the behvior in
- # 2.2.x and prior.
- inputs = [
- [ "root:x:0:0:root\n", 'Passwd.lns' ],
- [ "127.0.1.1\n", 'Hosts.lns' ],
- ]
-
- inputs.each do |input|
- it "validate_augeas(#{input.inspect}) should fail" do
- expect { subject.call input }.to raise_error /validate_augeas.*?matched less than it should/
- end
- end
- end
-
- describe "Nicer Error Messages" do
- # The intent here is to make sure the function returns the 3rd argument
- # in the exception thrown
- inputs = [
- [ "root:x:0:0:root\n", 'Passwd.lns', [], 'Failed to validate passwd content' ],
- [ "127.0.1.1\n", 'Hosts.lns', [], 'Wrong hosts content' ],
- ]
-
- inputs.each do |input|
- it "validate_augeas(#{input.inspect}) should fail" do
- expect { subject.call input }.to raise_error /#{input[2]}/
- end
- end
- end
-
- describe "Passing simple unit tests" do
- inputs = [
- [ "root:x:0:0:root:/root:/bin/bash\n", 'Passwd.lns', ['$file/foobar']],
- [ "root:x:0:0:root:/root:/bin/bash\n", 'Passwd.lns', ['$file/root/shell[.="/bin/sh"]', 'foobar']],
- ]
-
- inputs.each do |input|
- it "validate_augeas(#{input.inspect}) should fail" do
- expect { subject.call input }.not_to raise_error
- end
- end
- end
-
- describe "Failing simple unit tests" do
- inputs = [
- [ "foobar:x:0:0:root:/root:/bin/bash\n", 'Passwd.lns', ['$file/foobar']],
- [ "root:x:0:0:root:/root:/bin/sh\n", 'Passwd.lns', ['$file/root/shell[.="/bin/sh"]', 'foobar']],
- ]
-
- inputs.each do |input|
- it "validate_augeas(#{input.inspect}) should fail" do
- expect { subject.call input }.to raise_error /testing path/
- end
- end
- end
- end
-end
diff --git a/spec/unit/puppet/parser/functions/validate_bool_spec.rb b/spec/unit/puppet/parser/functions/validate_bool_spec.rb
deleted file mode 100644
index 261fb23..0000000
--- a/spec/unit/puppet/parser/functions/validate_bool_spec.rb
+++ /dev/null
@@ -1,51 +0,0 @@
-#! /usr/bin/env/ruby -S rspec
-
-require 'spec_helper'
-
-describe Puppet::Parser::Functions.function(:validate_bool) do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
- describe 'when calling validate_bool from puppet' do
-
- %w{ true false }.each do |the_string|
-
- it "should not compile when #{the_string} is a string" do
- Puppet[:code] = "validate_bool('#{the_string}')"
- expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not a boolean/)
- end
-
- it "should compile when #{the_string} is a bare word" do
- Puppet[:code] = "validate_bool(#{the_string})"
- scope.compiler.compile
- end
-
- end
-
- it "should not compile when an arbitrary string is passed" do
- Puppet[:code] = 'validate_bool("jeff and dan are awesome")'
- expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not a boolean/)
- end
-
- it "should not compile when no arguments are passed" do
- Puppet[:code] = 'validate_bool()'
- expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /wrong number of arguments/)
- end
-
- it "should compile when multiple boolean arguments are passed" do
- Puppet[:code] = <<-'ENDofPUPPETcode'
- $foo = true
- $bar = false
- validate_bool($foo, $bar, true, false)
- ENDofPUPPETcode
- scope.compiler.compile
- end
-
- it "should compile when multiple boolean arguments are passed" do
- Puppet[:code] = <<-'ENDofPUPPETcode'
- $foo = true
- $bar = false
- validate_bool($foo, $bar, true, false, 'jeff')
- ENDofPUPPETcode
- expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not a boolean/)
- end
- end
-end
diff --git a/spec/unit/puppet/parser/functions/validate_cmd_spec.rb b/spec/unit/puppet/parser/functions/validate_cmd_spec.rb
deleted file mode 100644
index 69ea7f4..0000000
--- a/spec/unit/puppet/parser/functions/validate_cmd_spec.rb
+++ /dev/null
@@ -1,81 +0,0 @@
-require 'spec_helper'
-
-describe Puppet::Parser::Functions.function(:validate_cmd) do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- # The subject of these examplres is the method itself.
- subject do
- # This makes sure the function is loaded within each test
- function_name = Puppet::Parser::Functions.function(:validate_cmd)
- scope.method(function_name)
- end
-
- context 'Using Puppet::Parser::Scope.new' do
-
- describe 'Garbage inputs' do
- inputs = [
- [ nil ],
- [ [ nil ] ],
- [ { 'foo' => 'bar' } ],
- [ { } ],
- [ '' ],
- [ "one", "one", "MSG to User", "4th arg" ],
- ]
-
- inputs.each do |input|
- it "validate_cmd(#{input.inspect}) should fail" do
- expect { subject.call [input] }.to raise_error Puppet::ParseError
- end
- end
- end
-
- describe 'Valid inputs' do
- inputs = [
- [ '/full/path/to/something', '/bin/echo' ],
- [ '/full/path/to/something', '/bin/cat' ],
- ]
-
- inputs.each do |input|
- it "validate_cmd(#{input.inspect}) should not fail" do
- expect { subject.call input }.not_to raise_error
- end
- end
- end
-
- describe "Valid inputs which should raise an exception without a message" do
- # The intent here is to make sure valid inputs raise exceptions when they
- # don't specify an error message to display. This is the behvior in
- # 2.2.x and prior.
- inputs = [
- [ "hello", "/bin/false" ],
- ]
-
- inputs.each do |input|
- it "validate_cmd(#{input.inspect}) should fail" do
- expect { subject.call input }.to raise_error /validate_cmd.*?failed to validate content with command/
- end
- end
- end
-
- describe "Nicer Error Messages" do
- # The intent here is to make sure the function returns the 3rd argument
- # in the exception thrown
- inputs = [
- [ "hello", [ "bye", "later", "adios" ], "MSG to User" ],
- [ "greetings", "salutations", "Error, greetings does not match salutations" ],
- ]
-
- inputs.each do |input|
- it "validate_cmd(#{input.inspect}) should fail" do
- expect { subject.call input }.to raise_error /#{input[2]}/
- end
- end
- end
-
- describe "Test output message" do
- it "validate_cmd('whatever', 'kthnksbye') should fail" do
- expect { subject.call ['whatever', 'kthnksbye'] }.to raise_error /kthnksbye.* returned 1/
- end
- end
- end
-end
diff --git a/spec/unit/puppet/parser/functions/validate_hash_spec.rb b/spec/unit/puppet/parser/functions/validate_hash_spec.rb
deleted file mode 100644
index a0c35c2..0000000
--- a/spec/unit/puppet/parser/functions/validate_hash_spec.rb
+++ /dev/null
@@ -1,43 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-
-require 'spec_helper'
-
-describe Puppet::Parser::Functions.function(:validate_hash) do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- describe 'when calling validate_hash from puppet' do
-
- %w{ true false }.each do |the_string|
-
- it "should not compile when #{the_string} is a string" do
- Puppet[:code] = "validate_hash('#{the_string}')"
- expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not a Hash/)
- end
-
- it "should not compile when #{the_string} is a bare word" do
- Puppet[:code] = "validate_hash(#{the_string})"
- expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not a Hash/)
- end
-
- end
-
- it "should compile when multiple hash arguments are passed" do
- Puppet[:code] = <<-'ENDofPUPPETcode'
- $foo = {}
- $bar = { 'one' => 'two' }
- validate_hash($foo, $bar)
- ENDofPUPPETcode
- scope.compiler.compile
- end
-
- it "should not compile when an undef variable is passed" do
- Puppet[:code] = <<-'ENDofPUPPETcode'
- $foo = undef
- validate_hash($foo)
- ENDofPUPPETcode
- expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not a Hash/)
- end
-
- end
-
-end
diff --git a/spec/unit/puppet/parser/functions/validate_ipv4_address_spec.rb b/spec/unit/puppet/parser/functions/validate_ipv4_address_spec.rb
deleted file mode 100644
index 85536d3..0000000
--- a/spec/unit/puppet/parser/functions/validate_ipv4_address_spec.rb
+++ /dev/null
@@ -1,64 +0,0 @@
-#! /usr/bin/env/ruby -S rspec
-
-require "spec_helper"
-
-describe Puppet::Parser::Functions.function(:validate_ipv4_address) do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- describe "when calling validate_ipv4_address from puppet" do
- describe "when given IPv4 address strings" do
- it "should compile with one argument" do
- Puppet[:code] = "validate_ipv4_address('1.2.3.4')"
- scope.compiler.compile
- end
-
- it "should compile with multiple arguments" do
- Puppet[:code] = "validate_ipv4_address('1.2.3.4', '5.6.7.8')"
- scope.compiler.compile
- end
- end
-
- describe "when given an IPv6 address" do
- it "should not compile" do
- Puppet[:code] = "validate_ipv4_address('3ffe:505')"
- expect {
- scope.compiler.compile
- }.to raise_error(Puppet::ParseError, /not a valid IPv4 address/)
- end
- end
-
- describe "when given other strings" do
- it "should not compile" do
- Puppet[:code] = "validate_ipv4_address('hello', 'world')"
- expect {
- scope.compiler.compile
- }.to raise_error(Puppet::ParseError, /not a valid IPv4 address/)
- end
- end
-
- describe "when given numbers" do
- it "should not compile" do
- Puppet[:code] = "validate_ipv4_address(1, 2)"
- expect {
- scope.compiler.compile
- }.to raise_error(Puppet::ParseError, /is not a valid IPv4 address/)
- end
- end
-
- describe "when given booleans" do
- it "should not compile" do
- Puppet[:code] = "validate_ipv4_address(true, false)"
- expect {
- scope.compiler.compile
- }.to raise_error(Puppet::ParseError, /is not a string/)
- end
- end
-
- it "should not compile when no arguments are passed" do
- Puppet[:code] = "validate_ipv4_address()"
- expect {
- scope.compiler.compile
- }.to raise_error(Puppet::ParseError, /wrong number of arguments/)
- end
- end
-end
diff --git a/spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb b/spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb
deleted file mode 100644
index 1fe5304..0000000
--- a/spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb
+++ /dev/null
@@ -1,67 +0,0 @@
-#! /usr/bin/env/ruby -S rspec
-
-require "spec_helper"
-
-describe Puppet::Parser::Functions.function(:validate_ipv6_address) do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- describe "when calling validate_ipv6_address from puppet" do
- describe "when given IPv6 address strings" do
- it "should compile with one argument" do
- Puppet[:code] = "validate_ipv6_address('3ffe:0505:0002::')"
- scope.compiler.compile
- end
-
- it "should compile with multiple arguments" do
- Puppet[:code] = "validate_ipv6_address('3ffe:0505:0002::', '3ffe:0505:0001::')"
- scope.compiler.compile
- end
- end
-
- describe "when given an ipv4 address" do
- it "should not compile" do
- Puppet[:code] = "validate_ipv6_address('1.2.3.4')"
- expect {
- scope.compiler.compile
- }.to raise_error(Puppet::ParseError, /not a valid IPv6 address/)
- end
- end
-
- describe "when given other strings" do
- it "should not compile" do
- Puppet[:code] = "validate_ipv6_address('hello', 'world')"
- expect {
- scope.compiler.compile
- }.to raise_error(Puppet::ParseError, /not a valid IPv6 address/)
- end
- end
-
- # 1.8.7 is EOL'd and also absolutely insane about ipv6
- unless RUBY_VERSION == '1.8.7'
- describe "when given numbers" do
- it "should not compile" do
- Puppet[:code] = "validate_ipv6_address(1, 2)"
- expect {
- scope.compiler.compile
- }.to raise_error(Puppet::ParseError, /not a valid IPv6 address/)
- end
- end
- end
-
- describe "when given booleans" do
- it "should not compile" do
- Puppet[:code] = "validate_ipv6_address(true, false)"
- expect {
- scope.compiler.compile
- }.to raise_error(Puppet::ParseError, /is not a string/)
- end
- end
-
- it "should not compile when no arguments are passed" do
- Puppet[:code] = "validate_ipv6_address()"
- expect {
- scope.compiler.compile
- }.to raise_error(Puppet::ParseError, /wrong number of arguments/)
- end
- end
-end
diff --git a/spec/unit/puppet/parser/functions/validate_re_spec.rb b/spec/unit/puppet/parser/functions/validate_re_spec.rb
deleted file mode 100644
index d189efb..0000000
--- a/spec/unit/puppet/parser/functions/validate_re_spec.rb
+++ /dev/null
@@ -1,76 +0,0 @@
-require 'spec_helper'
-
-describe Puppet::Parser::Functions.function(:validate_re) do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- # The subject of these examplres is the method itself.
- subject do
- # This makes sure the function is loaded within each test
- function_name = Puppet::Parser::Functions.function(:validate_re)
- scope.method(function_name)
- end
-
- context 'Using Puppet::Parser::Scope.new' do
-
- describe 'Garbage inputs' do
- inputs = [
- [ nil ],
- [ [ nil ] ],
- [ { 'foo' => 'bar' } ],
- [ { } ],
- [ '' ],
- [ "one", "one", "MSG to User", "4th arg" ],
- ]
-
- inputs.each do |input|
- it "validate_re(#{input.inspect}) should fail" do
- expect { subject.call [input] }.to raise_error Puppet::ParseError
- end
- end
- end
-
- describe 'Valid inputs' do
- inputs = [
- [ '/full/path/to/something', '^/full' ],
- [ '/full/path/to/something', 'full' ],
- [ '/full/path/to/something', ['full', 'absent'] ],
- [ '/full/path/to/something', ['full', 'absent'], 'Message to the user' ],
- ]
-
- inputs.each do |input|
- it "validate_re(#{input.inspect}) should not fail" do
- expect { subject.call input }.not_to raise_error
- end
- end
- end
- describe "Valid inputs which should raise an exception without a message" do
- # The intent here is to make sure valid inputs raise exceptions when they
- # don't specify an error message to display. This is the behvior in
- # 2.2.x and prior.
- inputs = [
- [ "hello", [ "bye", "later", "adios" ] ],
- [ "greetings", "salutations" ],
- ]
-
- inputs.each do |input|
- it "validate_re(#{input.inspect}) should fail" do
- expect { subject.call input }.to raise_error /validate_re.*?does not match/
- end
- end
- end
- describe "Nicer Error Messages" do
- # The intent here is to make sure the function returns the 3rd argument
- # in the exception thrown
- inputs = [
- [ "hello", [ "bye", "later", "adios" ], "MSG to User" ],
- [ "greetings", "salutations", "Error, greetings does not match salutations" ],
- ]
-
- inputs.each do |input|
- it "validate_re(#{input.inspect}) should fail" do
- expect { subject.call input }.to raise_error /#{input[2]}/
- end
- end
- end
- end
-end
diff --git a/spec/unit/puppet/parser/functions/validate_slength_spec.rb b/spec/unit/puppet/parser/functions/validate_slength_spec.rb
deleted file mode 100755
index 851835f..0000000
--- a/spec/unit/puppet/parser/functions/validate_slength_spec.rb
+++ /dev/null
@@ -1,67 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-
-require 'spec_helper'
-
-describe "the validate_slength function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("validate_slength").should == "function_validate_slength"
- end
-
- describe "validating the input argument types" do
- it "raises an error if there are less than two arguments" do
- expect { scope.function_validate_slength([]) }.to raise_error Puppet::ParseError, /Wrong number of arguments/
- end
-
- it "raises an error if there are more than three arguments" do
- expect { scope.function_validate_slength(['input', 1, 2, 3]) }.to raise_error Puppet::ParseError, /Wrong number of arguments/
- end
-
- it "raises an error if the first argument is not a string" do
- expect { scope.function_validate_slength([Object.new, 2, 1]) }.to raise_error Puppet::ParseError, /Expected first argument.*got .*Object/
- end
-
- it "raises an error if the second argument cannot be cast to an Integer" do
- expect { scope.function_validate_slength(['input', Object.new]) }.to raise_error Puppet::ParseError, /Expected second argument.*got .*Object/
- end
-
- it "raises an error if the third argument cannot be cast to an Integer" do
- expect { scope.function_validate_slength(['input', 1, Object.new]) }.to raise_error Puppet::ParseError, /Expected third argument.*got .*Object/
- end
-
- it "raises an error if the second argument is smaller than the third argument" do
- expect { scope.function_validate_slength(['input', 1, 2]) }.to raise_error Puppet::ParseError, /Expected second argument to be larger than third argument/
- end
- end
-
- describe "validating the input string length" do
- describe "when the input is a string" do
- it "fails validation if the string is larger than the max length" do
- expect { scope.function_validate_slength(['input', 1]) }.to raise_error Puppet::ParseError, /Expected length .* between 0 and 1, was 5/
- end
-
- it "fails validation if the string is less than the min length" do
- expect { scope.function_validate_slength(['input', 10, 6]) }.to raise_error Puppet::ParseError, /Expected length .* between 6 and 10, was 5/
- end
-
- it "doesn't raise an error if the string is under the max length" do
- scope.function_validate_slength(['input', 10])
- end
-
- it "doesn't raise an error if the string is equal to the max length" do
- scope.function_validate_slength(['input', 5])
- end
-
- it "doesn't raise an error if the string is equal to the min length" do
- scope.function_validate_slength(['input', 10, 5])
- end
- end
-
- describe "when the input is an array" do
- it "fails validation if one of the array elements is not a string" do
- expect { scope.function_validate_slength([["a", "b", Object.new], 2]) }.to raise_error Puppet::ParseError, /Expected element at array position 2 .*String, got .*Object/
- end
- end
- end
-end
diff --git a/spec/unit/puppet/parser/functions/validate_string_spec.rb b/spec/unit/puppet/parser/functions/validate_string_spec.rb
deleted file mode 100644
index 3b4fb3e..0000000
--- a/spec/unit/puppet/parser/functions/validate_string_spec.rb
+++ /dev/null
@@ -1,60 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-
-require 'spec_helper'
-
-describe Puppet::Parser::Functions.function(:validate_string) do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- describe 'when calling validate_string from puppet' do
-
- %w{ foo bar baz }.each do |the_string|
-
- it "should compile when #{the_string} is a string" do
- Puppet[:code] = "validate_string('#{the_string}')"
- scope.compiler.compile
- end
-
- it "should compile when #{the_string} is a bare word" do
- Puppet[:code] = "validate_string(#{the_string})"
- scope.compiler.compile
- end
-
- end
-
- %w{ true false }.each do |the_string|
- it "should compile when #{the_string} is a string" do
- Puppet[:code] = "validate_string('#{the_string}')"
- scope.compiler.compile
- end
-
- it "should not compile when #{the_string} is a bare word" do
- Puppet[:code] = "validate_string(#{the_string})"
- expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not a string/)
- end
- end
-
- it "should compile when multiple string arguments are passed" do
- Puppet[:code] = <<-'ENDofPUPPETcode'
- $foo = ''
- $bar = 'two'
- validate_string($foo, $bar)
- ENDofPUPPETcode
- scope.compiler.compile
- end
-
- it "should compile when an explicitly undef variable is passed (NOTE THIS MAY NOT BE DESIRABLE)" do
- Puppet[:code] = <<-'ENDofPUPPETcode'
- $foo = undef
- validate_string($foo)
- ENDofPUPPETcode
- scope.compiler.compile
- end
-
- it "should compile when an undefined variable is passed (NOTE THIS MAY NOT BE DESIRABLE)" do
- Puppet[:code] = <<-'ENDofPUPPETcode'
- validate_string($foobarbazishouldnotexist)
- ENDofPUPPETcode
- scope.compiler.compile
- end
- end
-end
diff --git a/spec/unit/puppet/parser/functions/values_at_spec.rb b/spec/unit/puppet/parser/functions/values_at_spec.rb
deleted file mode 100644
index 08e95a5..0000000
--- a/spec/unit/puppet/parser/functions/values_at_spec.rb
+++ /dev/null
@@ -1,38 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the values_at function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("values_at").should == "function_values_at"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_values_at([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should raise a ParseError if you try to use a range where stop is greater then start" do
- lambda { scope.function_values_at([['a','b'],["3-1"]]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return a value at from an array" do
- result = scope.function_values_at([['a','b','c'],"1"])
- result.should(eq(['b']))
- end
-
- it "should return a value at from an array when passed a range" do
- result = scope.function_values_at([['a','b','c'],"0-1"])
- result.should(eq(['a','b']))
- end
-
- it "should return chosen values from an array when passed number of indexes" do
- result = scope.function_values_at([['a','b','c'],["0","2"]])
- result.should(eq(['a','c']))
- end
-
- it "should return chosen values from an array when passed ranges and multiple indexes" do
- result = scope.function_values_at([['a','b','c','d','e','f','g'],["0","2","4-5"]])
- result.should(eq(['a','c','e','f']))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/values_spec.rb b/spec/unit/puppet/parser/functions/values_spec.rb
deleted file mode 100644
index 14ae417..0000000
--- a/spec/unit/puppet/parser/functions/values_spec.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the values function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should exist" do
- Puppet::Parser::Functions.function("values").should == "function_values"
- end
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_values([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should return values from a hash" do
- result = scope.function_values([{'a'=>'1','b'=>'2','c'=>'3'}])
- # =~ is the RSpec::Matchers::MatchArray matcher.
- # A.K.A. "array with same elements" (multiset) matching
- result.should =~ %w{ 1 2 3 }
- end
-
- it "should return a multiset" do
- result = scope.function_values([{'a'=>'1','b'=>'3','c'=>'3'}])
- result.should =~ %w{ 1 3 3 }
- result.should_not =~ %w{ 1 3 }
- end
-
- it "should raise a ParseError unless a Hash is provided" do
- lambda { scope.function_values([['a','b','c']]) }.should( raise_error(Puppet::ParseError))
- end
-end
diff --git a/spec/unit/puppet/parser/functions/zip_spec.rb b/spec/unit/puppet/parser/functions/zip_spec.rb
deleted file mode 100644
index f45ab17..0000000
--- a/spec/unit/puppet/parser/functions/zip_spec.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-#! /usr/bin/env ruby -S rspec
-require 'spec_helper'
-
-describe "the zip function" do
- let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
-
- it "should raise a ParseError if there is less than 1 arguments" do
- lambda { scope.function_zip([]) }.should( raise_error(Puppet::ParseError))
- end
-
- it "should be able to zip an array" do
- result = scope.function_zip([['1','2','3'],['4','5','6']])
- result.should(eq([["1", "4"], ["2", "5"], ["3", "6"]]))
- end
-end
diff --git a/spec/unit/puppet/provider/file_line/ruby_spec.rb b/spec/unit/puppet/provider/file_line/ruby_spec.rb
index 648c05b..d2a129c 100644..100755
--- a/spec/unit/puppet/provider/file_line/ruby_spec.rb
+++ b/spec/unit/puppet/provider/file_line/ruby_spec.rb
@@ -1,35 +1,39 @@
-require 'puppet'
+#! /usr/bin/env ruby -S rspec
+require 'spec_helper'
require 'tempfile'
provider_class = Puppet::Type.type(:file_line).provider(:ruby)
describe provider_class do
context "when adding" do
- before :each do
- # TODO: these should be ported over to use the PuppetLabs spec_helper
- # file fixtures once the following pull request has been merged:
- # https://github.com/puppetlabs/puppetlabs-stdlib/pull/73/files
+ let :tmpfile do
tmp = Tempfile.new('tmp')
- @tmpfile = tmp.path
+ path = tmp.path
tmp.close!
- @resource = Puppet::Type::File_line.new(
- {:name => 'foo', :path => @tmpfile, :line => 'foo'}
+ path
+ end
+ let :resource do
+ Puppet::Type::File_line.new(
+ {:name => 'foo', :path => tmpfile, :line => 'foo'}
)
- @provider = provider_class.new(@resource)
end
+ let :provider do
+ provider_class.new(resource)
+ end
+
it 'should detect if the line exists in the file' do
- File.open(@tmpfile, 'w') do |fh|
+ File.open(tmpfile, 'w') do |fh|
fh.write('foo')
end
- @provider.exists?.should be_true
+ expect(provider.exists?).to be_truthy
end
it 'should detect if the line does not exist in the file' do
- File.open(@tmpfile, 'w') do |fh|
+ File.open(tmpfile, 'w') do |fh|
fh.write('foo1')
end
- @provider.exists?.should be_nil
+ expect(provider.exists?).to be_nil
end
it 'should append to an existing file when creating' do
- @provider.create
- File.read(@tmpfile).chomp.should == 'foo'
+ provider.create
+ expect(File.read(tmpfile).chomp).to eq('foo')
end
end
@@ -52,71 +56,132 @@ describe provider_class do
@provider = provider_class.new(@resource)
end
- it 'should raise an error if more than one line matches, and should not have modified the file' do
- File.open(@tmpfile, 'w') do |fh|
- fh.write("foo1\nfoo=blah\nfoo2\nfoo=baz")
+ describe 'using match' do
+ it 'should raise an error if more than one line matches, and should not have modified the file' do
+ File.open(@tmpfile, 'w') do |fh|
+ fh.write("foo1\nfoo=blah\nfoo2\nfoo=baz")
+ end
+ expect(@provider.exists?).to be_nil
+ expect { @provider.create }.to raise_error(Puppet::Error, /More than one line.*matches/)
+ expect(File.read(@tmpfile)).to eql("foo1\nfoo=blah\nfoo2\nfoo=baz")
end
- @provider.exists?.should be_nil
- expect { @provider.create }.to raise_error(Puppet::Error, /More than one line.*matches/)
- File.read(@tmpfile).should eql("foo1\nfoo=blah\nfoo2\nfoo=baz")
- end
- it 'should replace all lines that matches' do
- @resource = Puppet::Type::File_line.new(
+ it 'should replace all lines that matches' do
+ @resource = Puppet::Type::File_line.new(
{
- :name => 'foo',
- :path => @tmpfile,
- :line => 'foo = bar',
- :match => '^foo\s*=.*$',
- :multiple => true
+ :name => 'foo',
+ :path => @tmpfile,
+ :line => 'foo = bar',
+ :match => '^foo\s*=.*$',
+ :multiple => true
}
- )
- @provider = provider_class.new(@resource)
- File.open(@tmpfile, 'w') do |fh|
- fh.write("foo1\nfoo=blah\nfoo2\nfoo=baz")
+ )
+ @provider = provider_class.new(@resource)
+ File.open(@tmpfile, 'w') do |fh|
+ fh.write("foo1\nfoo=blah\nfoo2\nfoo=baz")
+ end
+ expect(@provider.exists?).to be_nil
+ @provider.create
+ expect(File.read(@tmpfile).chomp).to eql("foo1\nfoo = bar\nfoo2\nfoo = bar")
+ end
+
+ it 'should raise an error with invalid values' do
+ expect {
+ @resource = Puppet::Type::File_line.new(
+ {
+ :name => 'foo',
+ :path => @tmpfile,
+ :line => 'foo = bar',
+ :match => '^foo\s*=.*$',
+ :multiple => 'asgadga'
+ }
+ )
+ }.to raise_error(Puppet::Error, /Invalid value "asgadga"\. Valid values are true, false\./)
+ end
+
+ it 'should replace a line that matches' do
+ File.open(@tmpfile, 'w') do |fh|
+ fh.write("foo1\nfoo=blah\nfoo2")
+ end
+ expect(@provider.exists?).to be_nil
+ @provider.create
+ expect(File.read(@tmpfile).chomp).to eql("foo1\nfoo = bar\nfoo2")
+ end
+ it 'should add a new line if no lines match' do
+ File.open(@tmpfile, 'w') do |fh|
+ fh.write("foo1\nfoo2")
+ end
+ expect(@provider.exists?).to be_nil
+ @provider.create
+ expect(File.read(@tmpfile)).to eql("foo1\nfoo2\nfoo = bar\n")
+ end
+ it 'should do nothing if the exact line already exists' do
+ File.open(@tmpfile, 'w') do |fh|
+ fh.write("foo1\nfoo = bar\nfoo2")
+ end
+ expect(@provider.exists?).to be_truthy
+ @provider.create
+ expect(File.read(@tmpfile).chomp).to eql("foo1\nfoo = bar\nfoo2")
end
- @provider.exists?.should be_nil
- @provider.create
- File.read(@tmpfile).chomp.should eql("foo1\nfoo = bar\nfoo2\nfoo = bar")
end
- it 'should raise an error with invalid values' do
- expect {
- @resource = Puppet::Type::File_line.new(
+ describe 'using after' do
+ let :resource do
+ Puppet::Type::File_line.new(
{
- :name => 'foo',
- :path => @tmpfile,
- :line => 'foo = bar',
- :match => '^foo\s*=.*$',
- :multiple => 'asgadga'
+ :name => 'foo',
+ :path => @tmpfile,
+ :line => 'inserted = line',
+ :after => '^foo1',
}
)
- }.to raise_error(Puppet::Error, /Invalid value "asgadga"\. Valid values are true, false\./)
- end
+ end
- it 'should replace a line that matches' do
- File.open(@tmpfile, 'w') do |fh|
- fh.write("foo1\nfoo=blah\nfoo2")
+ let :provider do
+ provider_class.new(resource)
end
- @provider.exists?.should be_nil
- @provider.create
- File.read(@tmpfile).chomp.should eql("foo1\nfoo = bar\nfoo2")
- end
- it 'should add a new line if no lines match' do
- File.open(@tmpfile, 'w') do |fh|
- fh.write("foo1\nfoo2")
+
+ context 'with one line matching the after expression' do
+ before :each do
+ File.open(@tmpfile, 'w') do |fh|
+ fh.write("foo1\nfoo = blah\nfoo2\nfoo = baz")
+ end
+ end
+
+ it 'inserts the specified line after the line matching the "after" expression' do
+ provider.create
+ expect(File.read(@tmpfile).chomp).to eql("foo1\ninserted = line\nfoo = blah\nfoo2\nfoo = baz")
+ end
end
- @provider.exists?.should be_nil
- @provider.create
- File.read(@tmpfile).should eql("foo1\nfoo2\nfoo = bar\n")
- end
- it 'should do nothing if the exact line already exists' do
- File.open(@tmpfile, 'w') do |fh|
- fh.write("foo1\nfoo = bar\nfoo2")
+
+ context 'with two lines matching the after expression' do
+ before :each do
+ File.open(@tmpfile, 'w') do |fh|
+ fh.write("foo1\nfoo = blah\nfoo2\nfoo1\nfoo = baz")
+ end
+ end
+
+ it 'errors out stating "One or no line must match the pattern"' do
+ expect { provider.create }.to raise_error(Puppet::Error, /One or no line must match the pattern/)
+ end
+ end
+
+ context 'with no lines matching the after expression' do
+ let :content do
+ "foo3\nfoo = blah\nfoo2\nfoo = baz\n"
+ end
+
+ before :each do
+ File.open(@tmpfile, 'w') do |fh|
+ fh.write(content)
+ end
+ end
+
+ it 'appends the specified line to the file' do
+ provider.create
+ expect(File.read(@tmpfile)).to eq(content << resource[:line] << "\n")
+ end
end
- @provider.exists?.should be_true
- @provider.create
- File.read(@tmpfile).chomp.should eql("foo1\nfoo = bar\nfoo2")
end
end
@@ -138,7 +203,7 @@ describe provider_class do
fh.write("foo1\nfoo\nfoo2")
end
@provider.destroy
- File.read(@tmpfile).should eql("foo1\nfoo2")
+ expect(File.read(@tmpfile)).to eql("foo1\nfoo2")
end
it 'should remove the line without touching the last new line' do
@@ -146,7 +211,7 @@ describe provider_class do
fh.write("foo1\nfoo\nfoo2\n")
end
@provider.destroy
- File.read(@tmpfile).should eql("foo1\nfoo2\n")
+ expect(File.read(@tmpfile)).to eql("foo1\nfoo2\n")
end
it 'should remove any occurence of the line' do
@@ -154,7 +219,7 @@ describe provider_class do
fh.write("foo1\nfoo\nfoo2\nfoo\nfoo")
end
@provider.destroy
- File.read(@tmpfile).should eql("foo1\nfoo2\n")
+ expect(File.read(@tmpfile)).to eql("foo1\nfoo2\n")
end
end
end
diff --git a/spec/unit/puppet/type/anchor_spec.rb b/spec/unit/puppet/type/anchor_spec.rb
index 2030b83..c738a27 100644..100755
--- a/spec/unit/puppet/type/anchor_spec.rb
+++ b/spec/unit/puppet/type/anchor_spec.rb
@@ -1,11 +1,11 @@
#!/usr/bin/env ruby
-require 'puppet'
+require 'spec_helper'
anchor = Puppet::Type.type(:anchor).new(:name => "ntp::begin")
describe anchor do
it "should stringify normally" do
- anchor.to_s.should == "Anchor[ntp::begin]"
+ expect(anchor.to_s).to eq("Anchor[ntp::begin]")
end
end
diff --git a/spec/unit/puppet/type/file_line_spec.rb b/spec/unit/puppet/type/file_line_spec.rb
index edc64bd..410d0bf 100644..100755
--- a/spec/unit/puppet/type/file_line_spec.rb
+++ b/spec/unit/puppet/type/file_line_spec.rb
@@ -1,4 +1,5 @@
-require 'puppet'
+#! /usr/bin/env ruby -S rspec
+require 'spec_helper'
require 'tempfile'
describe Puppet::Type.type(:file_line) do
let :file_line do
@@ -6,22 +7,22 @@ describe Puppet::Type.type(:file_line) do
end
it 'should accept a line and path' do
file_line[:line] = 'my_line'
- file_line[:line].should == 'my_line'
+ expect(file_line[:line]).to eq('my_line')
file_line[:path] = '/my/path'
- file_line[:path].should == '/my/path'
+ expect(file_line[:path]).to eq('/my/path')
end
it 'should accept a match regex' do
file_line[:match] = '^foo.*$'
- file_line[:match].should == '^foo.*$'
+ expect(file_line[:match]).to eq('^foo.*$')
end
- it 'should not accept a match regex that does not match the specified line' do
+ it 'should accept a match regex that does not match the specified line' do
expect {
Puppet::Type.type(:file_line).new(
:name => 'foo',
:path => '/my/path',
:line => 'foo=bar',
:match => '^bar=blah$'
- )}.to raise_error(Puppet::Error, /the value must be a regex that matches/)
+ )}.not_to raise_error
end
it 'should accept a match regex that does match the specified line' do
expect {
@@ -34,7 +35,7 @@ describe Puppet::Type.type(:file_line) do
end
it 'should accept posix filenames' do
file_line[:path] = '/tmp/path'
- file_line[:path].should == '/tmp/path'
+ expect(file_line[:path]).to eq('/tmp/path')
end
it 'should not accept unqualified path' do
expect { file_line[:path] = 'file' }.to raise_error(Puppet::Error, /File paths must be fully qualified/)
@@ -46,7 +47,7 @@ describe Puppet::Type.type(:file_line) do
expect { Puppet::Type.type(:file_line).new(:name => 'foo', :line => 'path') }.to raise_error(Puppet::Error, /Both line and path are required attributes/)
end
it 'should default to ensure => present' do
- file_line[:ensure].should eq :present
+ expect(file_line[:ensure]).to eq :present
end
it "should autorequire the file it manages" do
@@ -58,12 +59,12 @@ describe Puppet::Type.type(:file_line) do
relationship = file_line.autorequire.find do |rel|
(rel.source.to_s == "File[/tmp/path]") and (rel.target.to_s == file_line.to_s)
end
- relationship.should be_a Puppet::Relationship
+ expect(relationship).to be_a Puppet::Relationship
end
it "should not autorequire the file it manages if it is not managed" do
catalog = Puppet::Resource::Catalog.new
catalog.add_resource file_line
- file_line.autorequire.should be_empty
+ expect(file_line.autorequire).to be_empty
end
end