serverspec 0.0.17 → 0.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.travis.yml +16 -0
- data/README.md +66 -40
- data/lib/serverspec/helper.rb +1 -1
- data/lib/serverspec/setup.rb +39 -11
- data/lib/serverspec/version.rb +1 -1
- data/lib/serverspec.rb +1 -1
- data/spec/debian/matchers_spec.rb +0 -2
- data/spec/gentoo/matchers_spec.rb +0 -2
- data/spec/redhat/commands_spec.rb +7 -0
- data/spec/redhat/matchers_spec.rb +2 -4
- data/spec/solaris/matchers_spec.rb +0 -2
- data/spec/spec_helper.rb +9 -3
- data/spec/support/shared_matcher_examples.rb +19 -19
- metadata +78 -86
    
        data/.travis.yml
    ADDED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 | 
            -
            # Serverspec
         | 
| 1 | 
            +
            # Serverspec [](http://travis-ci.org/mizzy/serverspec) [](https://coveralls.io/r/mizzy/serverspec)
         | 
| 2 2 |  | 
| 3 | 
            -
            RSpec tests for your servers provisioned by Puppet, Chef  | 
| 3 | 
            +
            RSpec tests for your servers provisioned by Puppet, Chef or anything else
         | 
| 4 4 |  | 
| 5 5 | 
             
            ----
         | 
| 6 6 |  | 
| @@ -24,36 +24,49 @@ Or install it yourself as: | |
| 24 24 |  | 
| 25 25 | 
             
            ```
         | 
| 26 26 | 
             
            $ serverspec-init
         | 
| 27 | 
            +
            Input target host name: www.example.jp
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            Select OS Type of target host:
         | 
| 30 | 
            +
             | 
| 31 | 
            +
              1) Red Hat
         | 
| 32 | 
            +
              2) Debian
         | 
| 33 | 
            +
              3) Gentoo
         | 
| 34 | 
            +
              4) Solaris
         | 
| 35 | 
            +
              5) None
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            Select container number: 1
         | 
| 38 | 
            +
             | 
| 27 39 | 
             
             + spec/
         | 
| 28 40 | 
             
             + spec/www.example.jp/
         | 
| 29 41 | 
             
             + spec/www.example.jp/httpd_spec.rb
         | 
| 30 42 | 
             
             + spec/spec_helper.rb
         | 
| 31 43 | 
             
             + Rakefile
         | 
| 32 44 | 
             
            ```
         | 
| 45 | 
            +
             | 
| 33 46 | 
             
            spec/www.example.jp/httpd_spec.rb is a sample spec file and its content is like this.
         | 
| 34 47 |  | 
| 35 48 | 
             
            ```ruby
         | 
| 36 49 | 
             
            require 'spec_helper'
         | 
| 37 50 |  | 
| 38 | 
            -
            describe 'httpd' | 
| 51 | 
            +
            describe 'httpd' do
         | 
| 39 52 | 
             
              it { should be_installed }
         | 
| 40 53 | 
             
              it { should be_enabled   }
         | 
| 41 54 | 
             
              it { should be_running   }
         | 
| 42 55 | 
             
            end
         | 
| 43 56 |  | 
| 44 | 
            -
            describe 'port 80' | 
| 57 | 
            +
            describe 'port 80' do
         | 
| 45 58 | 
             
              it { should be_listening }
         | 
| 46 59 | 
             
            end
         | 
| 47 60 |  | 
| 48 | 
            -
            describe '/etc/httpd/conf/httpd.conf' | 
| 61 | 
            +
            describe '/etc/httpd/conf/httpd.conf' do
         | 
| 49 62 | 
             
              it { should be_file }
         | 
| 50 63 | 
             
              it { should contain "ServerName www.example.jp" }
         | 
| 51 64 | 
             
            end
         | 
| 52 65 | 
             
            ```
         | 
| 53 66 |  | 
| 54 | 
            -
            You can write spec for testing  | 
| 67 | 
            +
            You can write spec for testing servers like this.
         | 
| 55 68 |  | 
| 56 | 
            -
            You should create ~/.ssh/config like this before running tests.
         | 
| 69 | 
            +
            You should create ~/.ssh/config like this before running tests because serverspec tests servers through SSH access.
         | 
| 57 70 |  | 
| 58 71 | 
             
            ```
         | 
| 59 72 | 
             
            Host *.example.jp
         | 
| @@ -79,7 +92,52 @@ Finished in 0.99715 seconds | |
| 79 92 |  | 
| 80 93 | 
             
            Serverspec is supporting Red Hat based OS, Debian based OS, Gentoo and Solaris now.
         | 
| 81 94 |  | 
| 82 | 
            -
            If your target host's OS is Debian, you  | 
| 95 | 
            +
            If your target host's OS is Debian, you should include Serverspec::DebianHelper like this.
         | 
| 96 | 
            +
             | 
| 97 | 
            +
            ```ruby
         | 
| 98 | 
            +
            require 'serverspec'
         | 
| 99 | 
            +
            require 'pathname'
         | 
| 100 | 
            +
            require 'net/ssh'
         | 
| 101 | 
            +
             | 
| 102 | 
            +
            RSpec.configure do |c|
         | 
| 103 | 
            +
              # Include OS helper
         | 
| 104 | 
            +
              c.include(Serverspec::DebianHelper)
         | 
| 105 | 
            +
              c.before do
         | 
| 106 | 
            +
                host  = File.basename(Pathname.new(example.metadata[:location]).dirname)
         | 
| 107 | 
            +
                if c.host != host
         | 
| 108 | 
            +
                  c.ssh.close if c.ssh
         | 
| 109 | 
            +
                  c.host  = host
         | 
| 110 | 
            +
                  options = Net::SSH::Config.for(c.host)
         | 
| 111 | 
            +
                  user    = options[:user] || Etc.getlogin
         | 
| 112 | 
            +
                  c.ssh   = Net::SSH.start(c.host, user, options)
         | 
| 113 | 
            +
                end
         | 
| 114 | 
            +
              end
         | 
| 115 | 
            +
            end
         | 
| 116 | 
            +
            ```
         | 
| 117 | 
            +
             | 
| 118 | 
            +
            And you can omit OS type from spec like this.
         | 
| 119 | 
            +
             | 
| 120 | 
            +
            ```ruby
         | 
| 121 | 
            +
            require 'spec_helper'
         | 
| 122 | 
            +
             | 
| 123 | 
            +
            describe 'httpd' do
         | 
| 124 | 
            +
              it { should be_installed }
         | 
| 125 | 
            +
              it { should be_enabled   }
         | 
| 126 | 
            +
              it { should be_running   }
         | 
| 127 | 
            +
            end
         | 
| 128 | 
            +
             | 
| 129 | 
            +
            describe 'port 80' do
         | 
| 130 | 
            +
              it { should be_listening }
         | 
| 131 | 
            +
            end
         | 
| 132 | 
            +
             | 
| 133 | 
            +
            describe '/etc/httpd/conf/httpd.conf' do
         | 
| 134 | 
            +
              it { should be_file }
         | 
| 135 | 
            +
              it { should contain "ServerName www.example.jp" }
         | 
| 136 | 
            +
            end
         | 
| 137 | 
            +
            ```
         | 
| 138 | 
            +
             | 
| 139 | 
            +
            You can change the target host's OS per spec like this.
         | 
| 140 | 
            +
             | 
| 83 141 |  | 
| 84 142 | 
             
            ```ruby
         | 
| 85 143 | 
             
            require 'spec_helper'
         | 
| @@ -136,38 +194,6 @@ end | |
| 136 194 |  | 
| 137 195 | 
             
            Or modify spec/spec_helper.rb generated by serverspec-init command like this
         | 
| 138 196 |  | 
| 139 | 
            -
            ```ruby
         | 
| 140 | 
            -
            require 'serverspec'
         | 
| 141 | 
            -
            require 'pathname'
         | 
| 142 | 
            -
             | 
| 143 | 
            -
            RSpec.configure do |c|
         | 
| 144 | 
            -
              c.include(Serverspec::DebianHelper)
         | 
| 145 | 
            -
              c.before do
         | 
| 146 | 
            -
                c.host = File.basename(Pathname.new(example.metadata[:location]).dirname)
         | 
| 147 | 
            -
              end
         | 
| 148 | 
            -
            end
         | 
| 149 | 
            -
            ```
         | 
| 150 | 
            -
             | 
| 151 | 
            -
            And write the spec like this.
         | 
| 152 | 
            -
             | 
| 153 | 
            -
            ```ruby
         | 
| 154 | 
            -
            require 'spec_helper'
         | 
| 155 | 
            -
             | 
| 156 | 
            -
            describe 'httpd' do
         | 
| 157 | 
            -
              it { should be_installed }
         | 
| 158 | 
            -
              it { should be_enabled   }
         | 
| 159 | 
            -
              it { should be_running   }
         | 
| 160 | 
            -
            end
         | 
| 161 | 
            -
             | 
| 162 | 
            -
            describe 'port 80' do
         | 
| 163 | 
            -
              it { should be_listening }
         | 
| 164 | 
            -
            end
         | 
| 165 | 
            -
             | 
| 166 | 
            -
            describe '/etc/httpd/conf/httpd.conf' do
         | 
| 167 | 
            -
              it { should be_file }
         | 
| 168 | 
            -
              it { should contain "ServerName www.example.jp" }
         | 
| 169 | 
            -
            end
         | 
| 170 | 
            -
            ```
         | 
| 171 197 |  | 
| 172 198 | 
             
            Choose any style you like.
         | 
| 173 199 |  | 
    
        data/lib/serverspec/helper.rb
    CHANGED
    
    
    
        data/lib/serverspec/setup.rb
    CHANGED
    
    | @@ -3,42 +3,64 @@ require 'fileutils' | |
| 3 3 | 
             
            module Serverspec
         | 
| 4 4 | 
             
              class Setup
         | 
| 5 5 | 
             
                def self.run
         | 
| 6 | 
            -
                   | 
| 6 | 
            +
                  print "Input target host name: "
         | 
| 7 | 
            +
                  @hostname = gets.chomp
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  prompt = <<-EOF
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            Select OS Type of target host:
         | 
| 12 | 
            +
             | 
| 13 | 
            +
              1) Red Hat
         | 
| 14 | 
            +
              2) Debian
         | 
| 15 | 
            +
              3) Gentoo
         | 
| 16 | 
            +
              4) Solaris
         | 
| 17 | 
            +
              5) None
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            Select container number: 
         | 
| 20 | 
            +
            EOF
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                  print prompt.chop
         | 
| 23 | 
            +
                  num = gets.to_i - 1
         | 
| 24 | 
            +
                  puts
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  @os_type = [ 'RedHat', 'Debian', 'Gentoo', 'Solaris', nil ][num]
         | 
| 27 | 
            +
                  [ 'spec', "spec/#{@hostname}" ].each { |dir| safe_mkdir(dir) }
         | 
| 7 28 | 
             
                  safe_create_spec
         | 
| 8 29 | 
             
                  safe_create_spec_helper
         | 
| 9 30 | 
             
                  safe_create_rakefile
         | 
| 10 31 | 
             
                end
         | 
| 11 32 |  | 
| 12 33 | 
             
                def self.safe_create_spec
         | 
| 13 | 
            -
             | 
| 34 | 
            +
             | 
| 35 | 
            +
                  content = <<-EOF
         | 
| 14 36 | 
             
            require 'spec_helper'
         | 
| 15 37 |  | 
| 16 | 
            -
            describe 'httpd' | 
| 38 | 
            +
            describe 'httpd' do
         | 
| 17 39 | 
             
              it { should be_installed }
         | 
| 18 40 | 
             
              it { should be_enabled   }
         | 
| 19 41 | 
             
              it { should be_running   }
         | 
| 20 42 | 
             
            end
         | 
| 21 43 |  | 
| 22 | 
            -
            describe 'port 80' | 
| 44 | 
            +
            describe 'port 80' do
         | 
| 23 45 | 
             
              it { should be_listening }
         | 
| 24 46 | 
             
            end
         | 
| 25 47 |  | 
| 26 | 
            -
            describe '/etc/httpd/conf/httpd.conf' | 
| 48 | 
            +
            describe '/etc/httpd/conf/httpd.conf' do
         | 
| 27 49 | 
             
              it { should be_file }
         | 
| 28 | 
            -
              it { should contain "ServerName  | 
| 50 | 
            +
              it { should contain "ServerName #{@hostname}" }
         | 
| 29 51 | 
             
            end
         | 
| 30 52 | 
             
            EOF
         | 
| 31 53 |  | 
| 32 | 
            -
                  if File.exists?  | 
| 33 | 
            -
                    old_content = File.read( | 
| 54 | 
            +
                  if File.exists? "spec/#{@hostname}/httpd_spec.rb"
         | 
| 55 | 
            +
                    old_content = File.read("spec/#{@hostname}/httpd_spec.rb")
         | 
| 34 56 | 
             
                    if old_content != content
         | 
| 35 | 
            -
                      $stderr.puts "!! spec/ | 
| 57 | 
            +
                      $stderr.puts "!! spec/#{@hostname}/httpd_spec.rb already exists and differs from template"
         | 
| 36 58 | 
             
                    end
         | 
| 37 59 | 
             
                  else
         | 
| 38 | 
            -
                    File.open( | 
| 60 | 
            +
                    File.open("spec/#{@hostname}/httpd_spec.rb", 'w') do |f|
         | 
| 39 61 | 
             
                      f.puts content
         | 
| 40 62 | 
             
                    end
         | 
| 41 | 
            -
                    puts  | 
| 63 | 
            +
                    puts " + spec/#{@hostname}/httpd_spec.rb"
         | 
| 42 64 | 
             
                  end
         | 
| 43 65 | 
             
                end
         | 
| 44 66 |  | 
| @@ -60,6 +82,7 @@ require 'pathname' | |
| 60 82 | 
             
            require 'net/ssh'
         | 
| 61 83 |  | 
| 62 84 | 
             
            RSpec.configure do |c|
         | 
| 85 | 
            +
              ### include os helper ###
         | 
| 63 86 | 
             
              c.before do
         | 
| 64 87 | 
             
                host  = File.basename(Pathname.new(example.metadata[:location]).dirname)
         | 
| 65 88 | 
             
                if c.host != host
         | 
| @@ -72,6 +95,11 @@ RSpec.configure do |c| | |
| 72 95 | 
             
              end
         | 
| 73 96 | 
             
            end
         | 
| 74 97 | 
             
            EOF
         | 
| 98 | 
            +
             | 
| 99 | 
            +
                    if not @os_type.nil?
         | 
| 100 | 
            +
                      content.gsub!(/### include os helper ###/, "c.include(Serverspec::#{@os_type}Helper)")
         | 
| 101 | 
            +
                    end
         | 
| 102 | 
            +
             | 
| 75 103 | 
             
                  if File.exists? 'spec/spec_helper.rb'
         | 
| 76 104 | 
             
                    old_content = File.read('spec/spec_helper.rb')
         | 
| 77 105 | 
             
                    if old_content != content
         | 
    
        data/lib/serverspec/version.rb
    CHANGED
    
    
    
        data/lib/serverspec.rb
    CHANGED
    
    | @@ -11,7 +11,7 @@ require 'serverspec/commands/gentoo' | |
| 11 11 | 
             
            require 'serverspec/commands/solaris'
         | 
| 12 12 |  | 
| 13 13 | 
             
            RSpec.configure do |c|
         | 
| 14 | 
            -
              c.include(Serverspec:: | 
| 14 | 
            +
              c.include(Serverspec::SshHelper)
         | 
| 15 15 | 
             
              c.include(Serverspec::RedHatHelper,  :os => :redhat)
         | 
| 16 16 | 
             
              c.include(Serverspec::DebianHelper,  :os => :debian)
         | 
| 17 17 | 
             
              c.include(Serverspec::GentooHelper,  :os => :gentoo)
         | 
| @@ -1,8 +1,6 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe 'Serverspec matchers of Debian family', :os => :debian do
         | 
| 4 | 
            -
              let(:test_server_host) { 'serverspec-debian-host' }
         | 
| 5 | 
            -
             | 
| 6 4 | 
             
              it_behaves_like 'support be_enabled matcher', 'rc.local'
         | 
| 7 5 | 
             
              it_behaves_like 'support be_installed matcher', 'openssh-server'
         | 
| 8 6 | 
             
              it_behaves_like 'support be_running matcher', 'ssh'
         | 
| @@ -1,8 +1,6 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe 'Serverspec matchers of Gentoo family', :os => :gentoo do
         | 
| 4 | 
            -
              let(:test_server_host) { 'serverspec-gentoo-host' }
         | 
| 5 | 
            -
             | 
| 6 4 | 
             
              it_behaves_like 'support be_enabled matcher', 'sshd'
         | 
| 7 5 | 
             
              it_behaves_like 'support be_installed matcher', 'openssh'
         | 
| 8 6 | 
             
              it_behaves_like 'support be_running matcher', 'sshd'
         | 
| @@ -1,8 +1,6 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe 'Serverspec matchers of Red Hat family', :os => :redhat do
         | 
| 4 | 
            -
              let(:test_server_host) { 'serverspec-redhat-host' }
         | 
| 5 | 
            -
             | 
| 6 4 | 
             
              it_behaves_like 'support be_enabled matcher', 'sshd'
         | 
| 7 5 | 
             
              it_behaves_like 'support be_installed matcher', 'openssh'
         | 
| 8 6 | 
             
              it_behaves_like 'support be_running matcher', 'sshd'
         | 
| @@ -24,8 +22,8 @@ describe 'Serverspec matchers of Red Hat family', :os => :redhat do | |
| 24 22 | 
             
              it_behaves_like 'support have_cron_entry matcher', 'cron', '* * * * * /usr/bin/foo'
         | 
| 25 23 | 
             
              it_behaves_like 'support have_cron_entry.with_user matcher', 'cron', '* * * * * /usr/bin/foo', 'root'
         | 
| 26 24 |  | 
| 27 | 
            -
               | 
| 25 | 
            +
              it_behaves_like 'support be_linked_to matcher', '/etc/pam.d/system-auth', '/etc/pam.d/system-auth-ac'
         | 
| 28 26 |  | 
| 29 | 
            -
               | 
| 27 | 
            +
              it_behaves_like 'support belong_to_group matcher', 'root', 'root'
         | 
| 30 28 |  | 
| 31 29 | 
             
            end
         | 
| @@ -1,8 +1,6 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe 'Serverspec matchers of Solaris family', :os => :solaris do
         | 
| 4 | 
            -
              let(:test_server_host) { 'serverspec-solaris-host' }
         | 
| 5 | 
            -
             | 
| 6 4 | 
             
              it_behaves_like 'support be_enabled matcher', 'svc:/network/ssh:default'
         | 
| 7 5 | 
             
              it_behaves_like 'support be_installed matcher', 'service/network/ssh'
         | 
| 8 6 | 
             
              it_behaves_like 'support be_running matcher', 'svc:/network/ssh:default'
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -5,8 +5,14 @@ PROJECT_ROOT = (Pathname.new(File.dirname(__FILE__)) + '..').expand_path | |
| 5 5 |  | 
| 6 6 | 
             
            Dir[PROJECT_ROOT.join("spec/support/**/*.rb")].each { |file| require(file) }
         | 
| 7 7 |  | 
| 8 | 
            -
             | 
| 9 | 
            -
               | 
| 10 | 
            -
                 | 
| 8 | 
            +
            module Serverspec
         | 
| 9 | 
            +
              module SshHelper
         | 
| 10 | 
            +
                def ssh_exec(cmd)
         | 
| 11 | 
            +
                  if cmd =~ /invalid/
         | 
| 12 | 
            +
                    { :stdout => nil, :stderr => nil, :exit_code => 1, :exit_signal => nil }
         | 
| 13 | 
            +
                  else
         | 
| 14 | 
            +
                    { :stdout => nil, :stderr => nil, :exit_code => 0, :exit_signal => nil }
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
                end
         | 
| 11 17 | 
             
              end
         | 
| 12 18 | 
             
            end
         | 
| @@ -5,7 +5,7 @@ shared_examples_for 'support be_enabled matcher' do |valid_service| | |
| 5 5 | 
             
                  it { should be_enabled }
         | 
| 6 6 | 
             
                end
         | 
| 7 7 |  | 
| 8 | 
            -
                describe 'this-is- | 
| 8 | 
            +
                describe 'this-is-invalid-service' do
         | 
| 9 9 | 
             
                  it { should_not be_enabled }
         | 
| 10 10 | 
             
                end
         | 
| 11 11 | 
             
              end
         | 
| @@ -17,7 +17,7 @@ shared_examples_for 'support be_installed matcher' do |valid_package| | |
| 17 17 | 
             
                  it { should be_installed }
         | 
| 18 18 | 
             
                end
         | 
| 19 19 |  | 
| 20 | 
            -
                describe 'this-is- | 
| 20 | 
            +
                describe 'this-is-invalid-package' do
         | 
| 21 21 | 
             
                  it { should_not be_installed }
         | 
| 22 22 | 
             
                end
         | 
| 23 23 | 
             
              end
         | 
| @@ -29,7 +29,7 @@ shared_examples_for 'support be_running matcher' do |valid_service| | |
| 29 29 | 
             
                  it { should be_running }
         | 
| 30 30 | 
             
                end
         | 
| 31 31 |  | 
| 32 | 
            -
                describe 'this-is- | 
| 32 | 
            +
                describe 'this-is-invalid-daemon' do
         | 
| 33 33 | 
             
                  it { should_not be_running }
         | 
| 34 34 | 
             
                end
         | 
| 35 35 | 
             
              end
         | 
| @@ -41,7 +41,7 @@ shared_examples_for 'support be_listening matcher' do |valid_port| | |
| 41 41 | 
             
                  it { should be_listening }
         | 
| 42 42 | 
             
                end
         | 
| 43 43 |  | 
| 44 | 
            -
                describe 'port  | 
| 44 | 
            +
                describe 'port invalid' do
         | 
| 45 45 | 
             
                  it { should_not be_listening }
         | 
| 46 46 | 
             
                end
         | 
| 47 47 | 
             
              end
         | 
| @@ -53,7 +53,7 @@ shared_examples_for 'support be_file matcher' do |valid_file| | |
| 53 53 | 
             
                  it { should be_file }
         | 
| 54 54 | 
             
                end
         | 
| 55 55 |  | 
| 56 | 
            -
                describe '/etc/ | 
| 56 | 
            +
                describe '/etc/thid_is_invalid_file' do
         | 
| 57 57 | 
             
                  it { should_not be_file }
         | 
| 58 58 | 
             
                end
         | 
| 59 59 | 
             
              end
         | 
| @@ -65,7 +65,7 @@ shared_examples_for 'support be_directory matcher' do |valid_directory| | |
| 65 65 | 
             
                  it { should be_directory }
         | 
| 66 66 | 
             
                end
         | 
| 67 67 |  | 
| 68 | 
            -
                describe '/etc/ | 
| 68 | 
            +
                describe '/etc/thid_is_invalid_directory' do
         | 
| 69 69 | 
             
                  it { should_not be_directory }
         | 
| 70 70 | 
             
                end
         | 
| 71 71 | 
             
              end
         | 
| @@ -78,7 +78,7 @@ shared_examples_for 'support contain matcher' do |valid_file, pattern| | |
| 78 78 | 
             
                end
         | 
| 79 79 |  | 
| 80 80 | 
             
                describe '/etc/ssh/sshd_config' do
         | 
| 81 | 
            -
                  it { should_not contain 'This is  | 
| 81 | 
            +
                  it { should_not contain 'This is invalid text!!' }
         | 
| 82 82 | 
             
                end
         | 
| 83 83 | 
             
              end
         | 
| 84 84 | 
             
            end
         | 
| @@ -89,7 +89,7 @@ shared_examples_for 'support be_user matcher' do |valid_user| | |
| 89 89 | 
             
                  it { should be_user }
         | 
| 90 90 | 
             
                end
         | 
| 91 91 |  | 
| 92 | 
            -
                describe ' | 
| 92 | 
            +
                describe 'i_am_invalid_user' do
         | 
| 93 93 | 
             
                  it { should_not be_user }
         | 
| 94 94 | 
             
                end
         | 
| 95 95 | 
             
              end
         | 
| @@ -101,7 +101,7 @@ shared_examples_for 'support be_group matcher' do |valid_group| | |
| 101 101 | 
             
                  it { should be_group }
         | 
| 102 102 | 
             
                end
         | 
| 103 103 |  | 
| 104 | 
            -
                describe ' | 
| 104 | 
            +
                describe 'we_are_invalid_group' do
         | 
| 105 105 | 
             
                  it { should_not be_group }
         | 
| 106 106 | 
             
                end
         | 
| 107 107 | 
             
              end
         | 
| @@ -114,7 +114,7 @@ shared_examples_for 'support be_mode matcher' do |valid_file, mode| | |
| 114 114 | 
             
                end
         | 
| 115 115 |  | 
| 116 116 | 
             
                describe '/etc/passwd' do
         | 
| 117 | 
            -
                  it { should_not be_mode  | 
| 117 | 
            +
                  it { should_not be_mode 'invalid' }
         | 
| 118 118 | 
             
                end
         | 
| 119 119 | 
             
              end
         | 
| 120 120 | 
             
            end
         | 
| @@ -126,7 +126,7 @@ shared_examples_for 'support be_owned_by matcher' do |valid_file, owner| | |
| 126 126 | 
             
                end
         | 
| 127 127 |  | 
| 128 128 | 
             
                describe '/etc/passwd' do
         | 
| 129 | 
            -
                  it { should_not be_owned_by ' | 
| 129 | 
            +
                  it { should_not be_owned_by 'invalid-owner' }
         | 
| 130 130 | 
             
                end
         | 
| 131 131 | 
             
              end
         | 
| 132 132 | 
             
            end
         | 
| @@ -138,7 +138,7 @@ shared_examples_for 'support be_grouped_into matcher' do |valid_file, group| | |
| 138 138 | 
             
                end
         | 
| 139 139 |  | 
| 140 140 | 
             
                describe '/etc/passwd' do
         | 
| 141 | 
            -
                  it { should_not be_grouped_into ' | 
| 141 | 
            +
                  it { should_not be_grouped_into 'invalid-group' }
         | 
| 142 142 | 
             
                end
         | 
| 143 143 | 
             
              end
         | 
| 144 144 | 
             
            end
         | 
| @@ -150,7 +150,7 @@ shared_examples_for 'support have_cron_entry matcher' do |title, entry| | |
| 150 150 | 
             
                end
         | 
| 151 151 |  | 
| 152 152 | 
             
                describe '/etc/passwd' do
         | 
| 153 | 
            -
                  it { should_not have_cron_entry ' | 
| 153 | 
            +
                  it { should_not have_cron_entry 'invalid entry' }
         | 
| 154 154 | 
             
                end
         | 
| 155 155 | 
             
              end
         | 
| 156 156 | 
             
            end
         | 
| @@ -162,7 +162,7 @@ shared_examples_for 'support have_cron_entry.with_user matcher' do |title, entry | |
| 162 162 | 
             
                end
         | 
| 163 163 |  | 
| 164 164 | 
             
                describe '/etc/passwd' do
         | 
| 165 | 
            -
                  it { should_not have_cron_entry('dummy entry').with_user(' | 
| 165 | 
            +
                  it { should_not have_cron_entry('dummy entry').with_user('invaliduser') }
         | 
| 166 166 | 
             
                end
         | 
| 167 167 | 
             
              end
         | 
| 168 168 | 
             
            end
         | 
| @@ -174,7 +174,7 @@ shared_examples_for 'support be_linked_to matcher' do |file, target| | |
| 174 174 | 
             
                end
         | 
| 175 175 |  | 
| 176 176 | 
             
                describe 'this-is-dummy-link' do
         | 
| 177 | 
            -
                  it { should_not be_linked_to ' | 
| 177 | 
            +
                  it { should_not be_linked_to '/invalid/target' }
         | 
| 178 178 | 
             
                end
         | 
| 179 179 | 
             
              end
         | 
| 180 180 | 
             
            end
         | 
| @@ -185,7 +185,7 @@ shared_examples_for 'support be_installed_by_gem matcher' do |name| | |
| 185 185 | 
             
                  it { should be_installed_by_gem }
         | 
| 186 186 | 
             
                end
         | 
| 187 187 |  | 
| 188 | 
            -
                describe ' | 
| 188 | 
            +
                describe 'invalid-gem' do
         | 
| 189 189 | 
             
                  it { should_not be_installed_by_gem }
         | 
| 190 190 | 
             
                end
         | 
| 191 191 | 
             
              end
         | 
| @@ -198,19 +198,19 @@ shared_examples_for 'support be_installed_by_gem.with_version matcher' do |name, | |
| 198 198 | 
             
                end
         | 
| 199 199 |  | 
| 200 200 | 
             
                describe name do
         | 
| 201 | 
            -
                  it { should_not be_installed_by_gem.with_version(' | 
| 201 | 
            +
                  it { should_not be_installed_by_gem.with_version('invalid-version') }
         | 
| 202 202 | 
             
                end
         | 
| 203 203 | 
             
              end
         | 
| 204 204 | 
             
            end
         | 
| 205 205 |  | 
| 206 | 
            -
            shared_examples_for 'support belong_to_group matcher' do | | 
| 206 | 
            +
            shared_examples_for 'support belong_to_group matcher' do |user, group|
         | 
| 207 207 | 
             
              describe 'belong_to_group' do
         | 
| 208 208 | 
             
                describe user do
         | 
| 209 209 | 
             
                  it { should belong_to_group group }
         | 
| 210 210 | 
             
                end
         | 
| 211 211 |  | 
| 212 212 | 
             
                describe 'dummyuser' do
         | 
| 213 | 
            -
                  it { should_not belong_to_group ' | 
| 213 | 
            +
                  it { should_not belong_to_group 'invalid-group' }
         | 
| 214 214 | 
             
                end
         | 
| 215 215 | 
             
              end
         | 
| 216 216 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,91 +1,90 @@ | |
| 1 | 
            -
            --- !ruby/object:Gem::Specification | 
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: serverspec
         | 
| 3 | 
            -
            version: !ruby/object:Gem::Version | 
| 4 | 
            -
               | 
| 5 | 
            -
              prerelease:  | 
| 6 | 
            -
              segments: 
         | 
| 7 | 
            -
              - 0
         | 
| 8 | 
            -
              - 0
         | 
| 9 | 
            -
              - 17
         | 
| 10 | 
            -
              version: 0.0.17
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.0.18
         | 
| 5 | 
            +
              prerelease: 
         | 
| 11 6 | 
             
            platform: ruby
         | 
| 12 | 
            -
            authors: | 
| 7 | 
            +
            authors:
         | 
| 13 8 | 
             
            - Gosuke Miyashita
         | 
| 14 9 | 
             
            autorequire: 
         | 
| 15 10 | 
             
            bindir: bin
         | 
| 16 11 | 
             
            cert_chain: []
         | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
            dependencies: 
         | 
| 21 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 12 | 
            +
            date: 2013-03-30 00:00:00.000000000 Z
         | 
| 13 | 
            +
            dependencies:
         | 
| 14 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 22 15 | 
             
              name: net-ssh
         | 
| 23 | 
            -
               | 
| 24 | 
            -
              requirement: &id001 !ruby/object:Gem::Requirement 
         | 
| 16 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 25 17 | 
             
                none: false
         | 
| 26 | 
            -
                requirements: | 
| 27 | 
            -
                - -  | 
| 28 | 
            -
                  - !ruby/object:Gem::Version | 
| 29 | 
            -
                     | 
| 30 | 
            -
                    segments: 
         | 
| 31 | 
            -
                    - 0
         | 
| 32 | 
            -
                    version: "0"
         | 
| 18 | 
            +
                requirements:
         | 
| 19 | 
            +
                - - ! '>='
         | 
| 20 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            +
                    version: '0'
         | 
| 33 22 | 
             
              type: :runtime
         | 
| 34 | 
            -
              version_requirements: *id001
         | 
| 35 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 36 | 
            -
              name: bundler
         | 
| 37 23 | 
             
              prerelease: false
         | 
| 38 | 
            -
               | 
| 24 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 39 25 | 
             
                none: false
         | 
| 40 | 
            -
                requirements: | 
| 26 | 
            +
                requirements:
         | 
| 27 | 
            +
                - - ! '>='
         | 
| 28 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            +
                    version: '0'
         | 
| 30 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 31 | 
            +
              name: bundler
         | 
| 32 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 33 | 
            +
                none: false
         | 
| 34 | 
            +
                requirements:
         | 
| 41 35 | 
             
                - - ~>
         | 
| 42 | 
            -
                  - !ruby/object:Gem::Version | 
| 43 | 
            -
                     | 
| 44 | 
            -
                    segments: 
         | 
| 45 | 
            -
                    - 1
         | 
| 46 | 
            -
                    - 3
         | 
| 47 | 
            -
                    version: "1.3"
         | 
| 36 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 37 | 
            +
                    version: '1.3'
         | 
| 48 38 | 
             
              type: :development
         | 
| 49 | 
            -
              version_requirements: *id002
         | 
| 50 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 51 | 
            -
              name: rspec
         | 
| 52 39 | 
             
              prerelease: false
         | 
| 53 | 
            -
               | 
| 40 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 41 | 
            +
                none: false
         | 
| 42 | 
            +
                requirements:
         | 
| 43 | 
            +
                - - ~>
         | 
| 44 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 45 | 
            +
                    version: '1.3'
         | 
| 46 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 47 | 
            +
              name: rspec
         | 
| 48 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 54 49 | 
             
                none: false
         | 
| 55 | 
            -
                requirements: | 
| 56 | 
            -
                - -  | 
| 57 | 
            -
                  - !ruby/object:Gem::Version | 
| 58 | 
            -
                     | 
| 59 | 
            -
                    segments: 
         | 
| 60 | 
            -
                    - 0
         | 
| 61 | 
            -
                    version: "0"
         | 
| 50 | 
            +
                requirements:
         | 
| 51 | 
            +
                - - ! '>='
         | 
| 52 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 53 | 
            +
                    version: '0'
         | 
| 62 54 | 
             
              type: :development
         | 
| 63 | 
            -
              version_requirements: *id003
         | 
| 64 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 65 | 
            -
              name: rake
         | 
| 66 55 | 
             
              prerelease: false
         | 
| 67 | 
            -
               | 
| 56 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 68 57 | 
             
                none: false
         | 
| 69 | 
            -
                requirements: | 
| 70 | 
            -
                - -  | 
| 71 | 
            -
                  - !ruby/object:Gem::Version | 
| 72 | 
            -
                     | 
| 73 | 
            -
             | 
| 74 | 
            -
             | 
| 75 | 
            -
             | 
| 58 | 
            +
                requirements:
         | 
| 59 | 
            +
                - - ! '>='
         | 
| 60 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            +
                    version: '0'
         | 
| 62 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 63 | 
            +
              name: rake
         | 
| 64 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 65 | 
            +
                none: false
         | 
| 66 | 
            +
                requirements:
         | 
| 67 | 
            +
                - - ! '>='
         | 
| 68 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 69 | 
            +
                    version: '0'
         | 
| 76 70 | 
             
              type: :development
         | 
| 77 | 
            -
               | 
| 71 | 
            +
              prerelease: false
         | 
| 72 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 73 | 
            +
                none: false
         | 
| 74 | 
            +
                requirements:
         | 
| 75 | 
            +
                - - ! '>='
         | 
| 76 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 77 | 
            +
                    version: '0'
         | 
| 78 78 | 
             
            description: RSpec tests for your provisioned servers
         | 
| 79 | 
            -
            email: | 
| 79 | 
            +
            email:
         | 
| 80 80 | 
             
            - gosukenator@gmail.com
         | 
| 81 | 
            -
            executables: | 
| 81 | 
            +
            executables:
         | 
| 82 82 | 
             
            - serverspec-init
         | 
| 83 83 | 
             
            extensions: []
         | 
| 84 | 
            -
             | 
| 85 84 | 
             
            extra_rdoc_files: []
         | 
| 86 | 
            -
             | 
| 87 | 
            -
            files: 
         | 
| 85 | 
            +
            files:
         | 
| 88 86 | 
             
            - .gitignore
         | 
| 87 | 
            +
            - .travis.yml
         | 
| 89 88 | 
             
            - Gemfile
         | 
| 90 89 | 
             
            - LICENSE.txt
         | 
| 91 90 | 
             
            - README.md
         | 
| @@ -120,47 +119,40 @@ files: | |
| 120 119 | 
             
            - serverspec.gemspec
         | 
| 121 120 | 
             
            - spec/debian/matchers_spec.rb
         | 
| 122 121 | 
             
            - spec/gentoo/matchers_spec.rb
         | 
| 122 | 
            +
            - spec/redhat/commands_spec.rb
         | 
| 123 123 | 
             
            - spec/redhat/matchers_spec.rb
         | 
| 124 124 | 
             
            - spec/solaris/matchers_spec.rb
         | 
| 125 125 | 
             
            - spec/spec_helper.rb
         | 
| 126 126 | 
             
            - spec/support/shared_matcher_examples.rb
         | 
| 127 | 
            -
            has_rdoc: true
         | 
| 128 127 | 
             
            homepage: https://github.com/mizzy/serverspec
         | 
| 129 | 
            -
            licenses: | 
| 128 | 
            +
            licenses:
         | 
| 130 129 | 
             
            - MIT
         | 
| 131 130 | 
             
            post_install_message: 
         | 
| 132 131 | 
             
            rdoc_options: []
         | 
| 133 | 
            -
             | 
| 134 | 
            -
            require_paths: 
         | 
| 132 | 
            +
            require_paths:
         | 
| 135 133 | 
             
            - lib
         | 
| 136 | 
            -
            required_ruby_version: !ruby/object:Gem::Requirement | 
| 134 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 137 135 | 
             
              none: false
         | 
| 138 | 
            -
              requirements: | 
| 139 | 
            -
              - -  | 
| 140 | 
            -
                - !ruby/object:Gem::Version | 
| 141 | 
            -
                   | 
| 142 | 
            -
             | 
| 143 | 
            -
                  - 0
         | 
| 144 | 
            -
                  version: "0"
         | 
| 145 | 
            -
            required_rubygems_version: !ruby/object:Gem::Requirement 
         | 
| 136 | 
            +
              requirements:
         | 
| 137 | 
            +
              - - ! '>='
         | 
| 138 | 
            +
                - !ruby/object:Gem::Version
         | 
| 139 | 
            +
                  version: '0'
         | 
| 140 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 146 141 | 
             
              none: false
         | 
| 147 | 
            -
              requirements: | 
| 148 | 
            -
              - -  | 
| 149 | 
            -
                - !ruby/object:Gem::Version | 
| 150 | 
            -
                   | 
| 151 | 
            -
                  segments: 
         | 
| 152 | 
            -
                  - 0
         | 
| 153 | 
            -
                  version: "0"
         | 
| 142 | 
            +
              requirements:
         | 
| 143 | 
            +
              - - ! '>='
         | 
| 144 | 
            +
                - !ruby/object:Gem::Version
         | 
| 145 | 
            +
                  version: '0'
         | 
| 154 146 | 
             
            requirements: []
         | 
| 155 | 
            -
             | 
| 156 147 | 
             
            rubyforge_project: 
         | 
| 157 | 
            -
            rubygems_version: 1. | 
| 148 | 
            +
            rubygems_version: 1.8.25
         | 
| 158 149 | 
             
            signing_key: 
         | 
| 159 150 | 
             
            specification_version: 3
         | 
| 160 151 | 
             
            summary: RSpec tests for your provisioned servers
         | 
| 161 | 
            -
            test_files: | 
| 152 | 
            +
            test_files:
         | 
| 162 153 | 
             
            - spec/debian/matchers_spec.rb
         | 
| 163 154 | 
             
            - spec/gentoo/matchers_spec.rb
         | 
| 155 | 
            +
            - spec/redhat/commands_spec.rb
         | 
| 164 156 | 
             
            - spec/redhat/matchers_spec.rb
         | 
| 165 157 | 
             
            - spec/solaris/matchers_spec.rb
         | 
| 166 158 | 
             
            - spec/spec_helper.rb
         |