serverspec 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -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