]> gitweb.fluxo.info Git - puppet-stdlib.git/commitdiff
(main) clean up fqdn_rand acceptance tests to work on windows
authorDavid Schmitt <david.schmitt@puppetlabs.com>
Wed, 22 Jul 2015 16:30:39 +0000 (17:30 +0100)
committerDavid Schmitt <david.schmitt@puppetlabs.com>
Wed, 22 Jul 2015 16:30:39 +0000 (17:30 +0100)
spec/acceptance/fqdn_rand_string_spec.rb
spec/acceptance/fqdn_rotate_spec.rb
spec/spec_helper_acceptance.rb

index fec3c93282730d630039c7a1be00e0d27e87e126..9c6d701c9d2768119837c949d203ec521bbf20cb 100644 (file)
@@ -3,81 +3,59 @@ require 'spec_helper_acceptance'
 
 describe 'fqdn_rand_string function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do
   describe 'success' do
-    let(:facts_d) do
-      puppet_version = (on default, puppet('--version')).output.chomp
-      if puppet_version < '4.0.0' && fact('is_pe', '--puppet') == "true"
-        if fact('osfamily') =~ /windows/i
-          if fact('kernelmajversion').to_f < 6.0
-            'c:/documents and settings/all users/application data/puppetlabs/facter/facts.d'
-          else
-            'c:/programdata/puppetlabs/facter/facts.d'
-          end
-        else
-          '/etc/puppetlabs/facter/facts.d'
-        end
-      else
-        '/etc/facter/facts.d'
-      end
-    end
-    after :each do
-      shell("if [ -f '#{facts_d}/fqdn.txt' ] ; then rm '#{facts_d}/fqdn.txt' ; fi")
-    end
-    before :each do
-      #no need to create on windows, pe creates by default
-      if fact('osfamily') !~ /windows/i
-        shell("mkdir -p '#{facts_d}'")
+    include_context "with faked facts"
+    context "when the FQDN is 'fakehost.localdomain'" do
+      before :each do
+        fake_fact("fqdn", "fakehost.localdomain")
       end
-    end
-    it 'generates random alphanumeric strings' do
-      shell("echo fqdn=fakehost.localdomain > '#{facts_d}/fqdn.txt'")
-      pp = <<-eos
-      $l = 10
-      $o = fqdn_rand_string($l)
-      notice(inline_template('fqdn_rand_string is <%= @o.inspect %>'))
-      eos
 
-      apply_manifest(pp, :catch_failures => true) do |r|
-        expect(r.stdout).to match(/fqdn_rand_string is "7oDp0KOr1b"/)
+      it 'generates random alphanumeric strings' do
+        pp = <<-eos
+        $l = 10
+        $o = fqdn_rand_string($l)
+        notice(inline_template('fqdn_rand_string is <%= @o.inspect %>'))
+        eos
+
+        apply_manifest(pp, :catch_failures => true) do |r|
+          expect(r.stdout).to match(/fqdn_rand_string is "7oDp0KOr1b"/)
+        end
       end
-    end
-    it 'generates random alphanumeric strings with custom charsets' do
-      shell("echo fqdn=fakehost.localdomain > '#{facts_d}/fqdn.txt'")
-      pp = <<-eos
-      $l = 10
-      $c = '0123456789'
-      $o = fqdn_rand_string($l, $c)
-      notice(inline_template('fqdn_rand_string is <%= @o.inspect %>'))
-      eos
+      it 'generates random alphanumeric strings with custom charsets' do
+        pp = <<-eos
+        $l = 10
+        $c = '0123456789'
+        $o = fqdn_rand_string($l, $c)
+        notice(inline_template('fqdn_rand_string is <%= @o.inspect %>'))
+        eos
 
-      apply_manifest(pp, :catch_failures => true) do |r|
-        expect(r.stdout).to match(/fqdn_rand_string is "7203048515"/)
+        apply_manifest(pp, :catch_failures => true) do |r|
+          expect(r.stdout).to match(/fqdn_rand_string is "7203048515"/)
+        end
       end
-    end
-    it 'generates random alphanumeric strings with custom seeds' do
-      shell("echo fqdn=fakehost.localdomain > '#{facts_d}/fqdn.txt'")
-      pp = <<-eos
-      $l = 10
-      $s = 'seed'
-      $o = fqdn_rand_string($l, undef, $s)
-      notice(inline_template('fqdn_rand_string is <%= @o.inspect %>'))
-      eos
+      it 'generates random alphanumeric strings with custom seeds' do
+        pp = <<-eos
+        $l = 10
+        $s = 'seed'
+        $o = fqdn_rand_string($l, undef, $s)
+        notice(inline_template('fqdn_rand_string is <%= @o.inspect %>'))
+        eos
 
-      apply_manifest(pp, :catch_failures => true) do |r|
-        expect(r.stdout).to match(/fqdn_rand_string is "3HS4mbuI3E"/)
+        apply_manifest(pp, :catch_failures => true) do |r|
+          expect(r.stdout).to match(/fqdn_rand_string is "3HS4mbuI3E"/)
+        end
       end
-    end
-    it 'generates random alphanumeric strings with custom charsets and seeds' do
-      shell("echo fqdn=fakehost.localdomain > '#{facts_d}/fqdn.txt'")
-      pp = <<-eos
-      $l = 10
-      $c = '0123456789'
-      $s = 'seed'
-      $o = fqdn_rand_string($l, $c, $s)
-      notice(inline_template('fqdn_rand_string is <%= @o.inspect %>'))
-      eos
+      it 'generates random alphanumeric strings with custom charsets and seeds' do
+        pp = <<-eos
+        $l = 10
+        $c = '0123456789'
+        $s = 'seed'
+        $o = fqdn_rand_string($l, $c, $s)
+        notice(inline_template('fqdn_rand_string is <%= @o.inspect %>'))
+        eos
 
-      apply_manifest(pp, :catch_failures => true) do |r|
-        expect(r.stdout).to match(/fqdn_rand_string is "3104058232"/)
+        apply_manifest(pp, :catch_failures => true) do |r|
+          expect(r.stdout).to match(/fqdn_rand_string is "3104058232"/)
+        end
       end
     end
   end
index 556c6091817a106567385494499f709bdc0c499c..404351f6f13d8909ce9f0c2ab1fb09555fbd16f6 100755 (executable)
@@ -3,79 +3,57 @@ require 'spec_helper_acceptance'
 
 describe 'fqdn_rotate function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do
   describe 'success' do
-    let(:facts_d) do
-      puppet_version = (on default, puppet('--version')).output.chomp
-      if puppet_version < '4.0.0' && fact('is_pe', '--puppet') == "true"
-        if fact('osfamily') =~ /windows/i
-          if fact('kernelmajversion').to_f < 6.0
-            'C:/Documents and Settings/All Users/Application Data/PuppetLabs/facter/facts.d'
-          else
-            'C:/ProgramData/PuppetLabs/facter/facts.d'
-          end
-        else
-          '/etc/puppetlabs/facter/facts.d'
-        end
-      else
-        '/etc/facter/facts.d'
-      end
-    end
-    after :each do
-      shell("if [ -f '#{facts_d}/fqdn.txt' ] ; then rm '#{facts_d}/fqdn.txt' ; fi")
-    end
-    before :each do
-      #No need to create on windows, PE creates by default
-      if fact('osfamily') !~ /windows/i
-        shell("mkdir -p '#{facts_d}'")
+    include_context "with faked facts"
+    context "when the FQDN is 'fakehost.localdomain'" do
+      before :each do
+        fake_fact("fqdn", "fakehost.localdomain")
       end
-    end
-    it 'rotates arrays' do
-      shell("echo fqdn=fakehost.localdomain > '#{facts_d}/fqdn.txt'")
-      pp = <<-EOS
-      $a = ['a','b','c','d']
-      $o = fqdn_rotate($a)
-      notice(inline_template('fqdn_rotate is <%= @o.inspect %>'))
-      EOS
 
-      apply_manifest(pp, :catch_failures => true) do |r|
-        expect(r.stdout).to match(/fqdn_rotate is \["d", "a", "b", "c"\]/)
+      it 'rotates arrays' do
+        pp = <<-EOS
+        $a = ['a','b','c','d']
+        $o = fqdn_rotate($a)
+        notice(inline_template('fqdn_rotate is <%= @o.inspect %>'))
+        EOS
+
+        apply_manifest(pp, :catch_failures => true) do |r|
+          expect(r.stdout).to match(/fqdn_rotate is \["d", "a", "b", "c"\]/)
+        end
       end
-    end
-    it 'rotates arrays with custom seeds' do
-      shell("echo fqdn=fakehost.localdomain > '#{facts_d}/fqdn.txt'")
-      pp = <<-EOS
-      $a = ['a','b','c','d']
-      $s = 'seed'
-      $o = fqdn_rotate($a, $s)
-      notice(inline_template('fqdn_rotate is <%= @o.inspect %>'))
-      EOS
+      it 'rotates arrays with custom seeds' do
+        pp = <<-EOS
+        $a = ['a','b','c','d']
+        $s = 'seed'
+        $o = fqdn_rotate($a, $s)
+        notice(inline_template('fqdn_rotate is <%= @o.inspect %>'))
+        EOS
 
-      apply_manifest(pp, :catch_failures => true) do |r|
-        expect(r.stdout).to match(/fqdn_rotate is \["c", "d", "a", "b"\]/)
+        apply_manifest(pp, :catch_failures => true) do |r|
+          expect(r.stdout).to match(/fqdn_rotate is \["c", "d", "a", "b"\]/)
+        end
       end
-    end
-    it 'rotates strings' do
-      shell("echo fqdn=fakehost.localdomain > '#{facts_d}/fqdn.txt'")
-      pp = <<-EOS
-      $a = 'abcd'
-      $o = fqdn_rotate($a)
-      notice(inline_template('fqdn_rotate is <%= @o.inspect %>'))
-      EOS
+      it 'rotates strings' do
+        pp = <<-EOS
+        $a = 'abcd'
+        $o = fqdn_rotate($a)
+        notice(inline_template('fqdn_rotate is <%= @o.inspect %>'))
+        EOS
 
-      apply_manifest(pp, :catch_failures => true) do |r|
-        expect(r.stdout).to match(/fqdn_rotate is "dabc"/)
+        apply_manifest(pp, :catch_failures => true) do |r|
+          expect(r.stdout).to match(/fqdn_rotate is "dabc"/)
+        end
       end
-    end
-    it 'rotates strings with custom seeds' do
-      shell("echo fqdn=fakehost.localdomain > '#{facts_d}/fqdn.txt'")
-      pp = <<-EOS
-      $a = 'abcd'
-      $s = 'seed'
-      $o = fqdn_rotate($a, $s)
-      notice(inline_template('fqdn_rotate is <%= @o.inspect %>'))
-      EOS
+      it 'rotates strings with custom seeds' do
+        pp = <<-EOS
+        $a = 'abcd'
+        $s = 'seed'
+        $o = fqdn_rotate($a, $s)
+        notice(inline_template('fqdn_rotate is <%= @o.inspect %>'))
+        EOS
 
-      apply_manifest(pp, :catch_failures => true) do |r|
-        expect(r.stdout).to match(/fqdn_rotate is "cdab"/)
+        apply_manifest(pp, :catch_failures => true) do |r|
+          expect(r.stdout).to match(/fqdn_rotate is "cdab"/)
+        end
       end
     end
   end
index 7b09a38c2edb8bd82acfc5aba09031973b434a04..6f7f8e11292a52f53747e7c25fa5fbc924d96d94 100755 (executable)
@@ -1,6 +1,7 @@
 #! /usr/bin/env ruby -S rspec
 require 'beaker-rspec'
 require 'beaker/puppet_install_helper'
+require 'rubygems'
 
 UNSUPPORTED_PLATFORMS = []
 
@@ -32,3 +33,37 @@ def is_future_parser_enabled?
   end
   return false
 end
+
+RSpec.shared_context "with faked facts" do
+  let(:facts_d) do
+    puppet_version = (on default, puppet('--version')).output.chomp
+    if Gem::Version(puppet_version) < Gem::Version('4.0.0') && fact('is_pe', '--puppet') == "true"
+      if fact('osfamily') =~ /windows/i
+        if fact('kernelmajversion').to_f < 6.0
+          'C:/Documents and Settings/All Users/Application Data/PuppetLabs/facter/facts.d'
+        else
+          'C:/ProgramData/PuppetLabs/facter/facts.d'
+        end
+      else
+        '/etc/puppetlabs/facter/facts.d'
+      end
+    else
+      '/etc/facter/facts.d'
+    end
+  end
+
+  before :each do
+    #No need to create on windows, PE creates by default
+    if fact('osfamily') !~ /windows/i
+      shell("mkdir -p '#{facts_d}'")
+    end
+  end
+
+  after :each do
+    shell("rm -f '#{facts_d}/fqdn.txt'")
+  end
+
+  def fake_fact(name, value)
+    shell("echo #{name}=#{value} > '#{facts_d}/#{name}.txt'")
+  end
+end