From 96e43e69d8496926ad4951534e75b204bb279f22 Mon Sep 17 00:00:00 2001 From: Hunter Haugen Date: Thu, 8 May 2014 10:47:24 -0700 Subject: Move unit tests to spec/functions rspec-puppet matchers are defined for tests which exist in spec/functions, but the function unit tests lived in spec/unit/puppet/parser/functions. This moves them to the correct place for using rspec-puppet --- spec/functions/fqdn_rotate_spec.rb | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 spec/functions/fqdn_rotate_spec.rb (limited to 'spec/functions/fqdn_rotate_spec.rb') diff --git a/spec/functions/fqdn_rotate_spec.rb b/spec/functions/fqdn_rotate_spec.rb new file mode 100755 index 0000000..2577723 --- /dev/null +++ b/spec/functions/fqdn_rotate_spec.rb @@ -0,0 +1,33 @@ +#! /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 -- cgit v1.2.3 From 6287a200af558d277f83b919e8409f6c798eef39 Mon Sep 17 00:00:00 2001 From: Ashley Penney Date: Wed, 4 Jun 2014 14:38:37 -0400 Subject: Convert specs to RSpec 2.99.0 syntax with Transpec This conversion is done by Transpec 2.2.1 with the following command: transpec spec/functions * 345 conversions from: obj.should to: expect(obj).to * 122 conversions from: == expected to: eq(expected) * 85 conversions from: lambda { }.should to: expect { }.to * 22 conversions from: be_true to: be_truthy * 16 conversions from: be_false to: be_falsey * 11 conversions from: pending to: skip * 9 conversions from: it { should ... } to: it { is_expected.to ... } * 5 conversions from: =~ [1, 2] to: match_array([1, 2]) * 2 conversions from: =~ /pattern/ to: match(/pattern/) * 2 conversions from: obj.should_not to: expect(obj).not_to For more details: https://github.com/yujinakayama/transpec#supported-conversions --- spec/functions/fqdn_rotate_spec.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'spec/functions/fqdn_rotate_spec.rb') diff --git a/spec/functions/fqdn_rotate_spec.rb b/spec/functions/fqdn_rotate_spec.rb index 2577723..b2dc1f5 100755 --- a/spec/functions/fqdn_rotate_spec.rb +++ b/spec/functions/fqdn_rotate_spec.rb @@ -5,22 +5,22 @@ 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" + expect(Puppet::Parser::Functions.function("fqdn_rotate")).to eq("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)) + expect { scope.function_fqdn_rotate([]) }.to( 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)) + expect(result.size).to(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"])) + expect(scope.function_fqdn_rotate(["abcdefg"])).to eql(scope.function_fqdn_rotate(["abcdefg"])) end it "should rotate a string to give different values on different hosts" do @@ -28,6 +28,6 @@ describe "the fqdn_rotate function" do 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) + expect(val1).not_to eql(val2) end end -- cgit v1.2.3 From e2d7f3bb89a91d3aff6f9810d69bd84bc82ffb29 Mon Sep 17 00:00:00 2001 From: Mark Chappell Date: Tue, 22 Apr 2014 09:36:28 +0200 Subject: (MODULES-707) chomp() fails because generate() no longer returns a string We need to use unless value.is_a?(String) || value.is_a?(Array) rather than klass = value.class unless [String, Array].include?(klass) because the klass version enforces type checking which is too strict, and does not allow us to accept objects wich have extended String (or Array). For example, generate() function now returns Puppet::Util::Execution::ProcessOutput which is just a very simple extension of String. While this in it's self was not intentional (PUP-2306) it is not unreasonable to cope with objects which extend Strings --- spec/functions/fqdn_rotate_spec.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'spec/functions/fqdn_rotate_spec.rb') diff --git a/spec/functions/fqdn_rotate_spec.rb b/spec/functions/fqdn_rotate_spec.rb index b2dc1f5..40057d4 100755 --- a/spec/functions/fqdn_rotate_spec.rb +++ b/spec/functions/fqdn_rotate_spec.rb @@ -30,4 +30,14 @@ describe "the fqdn_rotate function" do val2 = scope.function_fqdn_rotate(["abcdefghijklmnopqrstuvwxyz01234567890987654321"]) expect(val1).not_to eql(val2) end + + it "should accept objects which extend String" do + class AlsoString < String + end + + scope.expects(:lookupvar).with("::fqdn").returns("127.0.0.1") + value = AlsoString.new("asdf") + result = scope.function_fqdn_rotate([value]) + result.size.should(eq(4)) + end end -- cgit v1.2.3