serverspec 0.0.9 → 0.0.10

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.
@@ -54,6 +54,12 @@ module Serverspec
54
54
  def check_grouped file, group
55
55
  "stat -c %G #{file} | grep #{group}"
56
56
  end
57
+
58
+ def check_cron_entry user, entry
59
+ entry_escaped = entry.gsub(/\*/, '\\*')
60
+ puts "crontab -u #{user} -l | grep '#{entry_escaped}'"
61
+ "crontab -u #{user} -l | grep '#{entry_escaped}'"
62
+ end
57
63
  end
58
64
  end
59
65
  end
@@ -10,3 +10,4 @@ require 'serverspec/matchers/be_group'
10
10
  require 'serverspec/matchers/be_mode'
11
11
  require 'serverspec/matchers/be_owned_by'
12
12
  require 'serverspec/matchers/be_grouped_into'
13
+ require 'serverspec/matchers/have_cron_entry'
@@ -0,0 +1,10 @@
1
+ RSpec::Matchers.define :have_cron_entry do |entry|
2
+ match do |actual|
3
+ @user ||= 'root'
4
+ ret = ssh_exec(RSpec.configuration.host, commands.check_cron_entry(@user, entry))
5
+ ret[:exit_code] == 0
6
+ end
7
+ chain :with_user do |user|
8
+ @user = user
9
+ end
10
+ end
@@ -1,3 +1,3 @@
1
1
  module Serverspec
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.10"
3
3
  end
@@ -20,4 +20,7 @@ describe 'Serverspec matchers of Red Hat family', :os => :redhat do
20
20
 
21
21
  it_behaves_like 'support be_owned_by matcher', '/etc/passwd', 'root'
22
22
  it_behaves_like 'support be_grouped_into matcher', '/etc/passwd', 'root'
23
+
24
+ it_behaves_like 'support have_cron_entry matcher', 'cron', '* * * * * /usr/bin/foo'
25
+ it_behaves_like 'support have_cron_entry.with_user matcher', 'cron', '* * * * * /usr/bin/foo', 'root'
23
26
  end
@@ -134,7 +134,7 @@ end
134
134
  shared_examples_for 'support be_grouped_into matcher' do |valid_file, group|
135
135
  describe 'be_grouped_into' do
136
136
  describe valid_file do
137
- it { should be_grouped_into grouped }
137
+ it { should be_grouped_into group }
138
138
  end
139
139
 
140
140
  describe '/etc/passwd' do
@@ -142,3 +142,27 @@ shared_examples_for 'support be_grouped_into matcher' do |valid_file, group|
142
142
  end
143
143
  end
144
144
  end
145
+
146
+ shared_examples_for 'support have_cron_entry matcher' do |title, entry|
147
+ describe 'have_cron_entry' do
148
+ describe title do
149
+ it { should have_cron_entry entry }
150
+ end
151
+
152
+ describe '/etc/passwd' do
153
+ it { should_not have_cron_entry 'dummy entry' }
154
+ end
155
+ end
156
+ end
157
+
158
+ shared_examples_for 'support have_cron_entry.with_user matcher' do |title, entry, user|
159
+ describe 'have_cron_entry.with_user' do
160
+ describe title do
161
+ it { should have_cron_entry(entry).with_user(user) }
162
+ end
163
+
164
+ describe '/etc/passwd' do
165
+ it { should_not have_cron_entry('dummy entry').with_user('dummyuser') }
166
+ end
167
+ end
168
+ end
metadata CHANGED
@@ -1,88 +1,90 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: serverspec
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.9
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ hash: 11
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 10
10
+ version: 0.0.10
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Gosuke Miyashita
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2013-03-27 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2013-03-28 00:00:00 +09:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
15
22
  name: net-ssh
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :runtime
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
31
36
  name: bundler
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ~>
36
- - !ruby/object:Gem::Version
37
- version: '1.3'
38
- type: :development
39
37
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
38
+ requirement: &id002 !ruby/object:Gem::Requirement
41
39
  none: false
42
- requirements:
40
+ requirements:
43
41
  - - ~>
44
- - !ruby/object:Gem::Version
45
- version: '1.3'
46
- - !ruby/object:Gem::Dependency
47
- name: rspec
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
42
+ - !ruby/object:Gem::Version
43
+ hash: 9
44
+ segments:
45
+ - 1
46
+ - 3
47
+ version: "1.3"
54
48
  type: :development
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: rspec
55
52
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
53
+ requirement: &id003 !ruby/object:Gem::Requirement
57
54
  none: false
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'
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
61
+ version: "0"
70
62
  type: :development
63
+ version_requirements: *id003
64
+ - !ruby/object:Gem::Dependency
65
+ name: rake
71
66
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
67
+ requirement: &id004 !ruby/object:Gem::Requirement
73
68
  none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 0
75
+ version: "0"
76
+ type: :development
77
+ version_requirements: *id004
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
+
84
85
  extra_rdoc_files: []
85
- files:
86
+
87
+ files:
86
88
  - .gitignore
87
89
  - Gemfile
88
90
  - LICENSE.txt
@@ -109,6 +111,7 @@ files:
109
111
  - lib/serverspec/matchers/be_running.rb
110
112
  - lib/serverspec/matchers/be_user.rb
111
113
  - lib/serverspec/matchers/contain.rb
114
+ - lib/serverspec/matchers/have_cron_entry.rb
112
115
  - lib/serverspec/setup.rb
113
116
  - lib/serverspec/version.rb
114
117
  - serverspec.gemspec
@@ -118,32 +121,41 @@ files:
118
121
  - spec/solaris/matchers_spec.rb
119
122
  - spec/spec_helper.rb
120
123
  - spec/support/shared_matcher_examples.rb
124
+ has_rdoc: true
121
125
  homepage: https://github.com/mizzy/serverspec
122
- licenses:
126
+ licenses:
123
127
  - MIT
124
128
  post_install_message:
125
129
  rdoc_options: []
126
- require_paths:
130
+
131
+ require_paths:
127
132
  - lib
128
- required_ruby_version: !ruby/object:Gem::Requirement
133
+ required_ruby_version: !ruby/object:Gem::Requirement
129
134
  none: false
130
- requirements:
131
- - - ! '>='
132
- - !ruby/object:Gem::Version
133
- version: '0'
134
- required_rubygems_version: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ hash: 3
139
+ segments:
140
+ - 0
141
+ version: "0"
142
+ required_rubygems_version: !ruby/object:Gem::Requirement
135
143
  none: false
136
- requirements:
137
- - - ! '>='
138
- - !ruby/object:Gem::Version
139
- version: '0'
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ hash: 3
148
+ segments:
149
+ - 0
150
+ version: "0"
140
151
  requirements: []
152
+
141
153
  rubyforge_project:
142
- rubygems_version: 1.8.25
154
+ rubygems_version: 1.3.7
143
155
  signing_key:
144
156
  specification_version: 3
145
157
  summary: RSpec tests for your provisioned servers
146
- test_files:
158
+ test_files:
147
159
  - spec/debian/matchers_spec.rb
148
160
  - spec/gentoo/matchers_spec.rb
149
161
  - spec/redhat/matchers_spec.rb