serverspec 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Serverspec
2
2
 
3
- RSpec tests for your provisioned servers
3
+ RSpec tests for your servers provisioned by Puppet, Chef and so on
4
4
 
5
5
  ----
6
6
 
@@ -67,11 +67,17 @@ Run tests.
67
67
 
68
68
  ```
69
69
  $ rake spec
70
+ /usr/bin/ruby -S rspec spec/www.example.jp/httpd_spec.rb
71
+ ......
72
+
73
+ Finished in 0.99715 seconds
74
+ 6 examples, 0 failures
70
75
  ```
76
+
71
77
  ----
72
78
  ## Multi OS support
73
79
 
74
- Serverspec is supporting Red Hat based OS and Debian based OS now.
80
+ Serverspec is supporting Red Hat based OS, Debian based OS, Gentoo and Solaris now.
75
81
 
76
82
  If your target host's OS is Debian, you can write the spec like this.
77
83
 
@@ -42,6 +42,18 @@ module Serverspec
42
42
  def check_file_contain file, expected_pattern
43
43
  "grep -q '#{expected_pattern}' #{file} "
44
44
  end
45
+
46
+ def check_mode file, mode
47
+ "stat -c %a #{file} | grep #{mode}"
48
+ end
49
+
50
+ def check_owner file, owner
51
+ "stat -c %U #{file} | grep #{owner}"
52
+ end
53
+
54
+ def check_group file, group
55
+ "stat -c %G #{file} | grep #{group}"
56
+ end
45
57
  end
46
58
  end
47
59
  end
@@ -0,0 +1,6 @@
1
+ RSpec::Matchers.define :be_grouped_into do |group|
2
+ match do |file|
3
+ ret = ssh_exec(RSpec.configuration.host, commands.check_group(file, group))
4
+ ret[:exit_code] == 0
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ RSpec::Matchers.define :be_mode do |mode|
2
+ match do |file|
3
+ ret = ssh_exec(RSpec.configuration.host, commands.check_mode(file, mode))
4
+ ret[:exit_code] == 0
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ RSpec::Matchers.define :be_owned_by do |owner|
2
+ match do |file|
3
+ ret = ssh_exec(RSpec.configuration.host, commands.check_owner(file, owner))
4
+ ret[:exit_code] == 0
5
+ end
6
+ end
@@ -7,3 +7,6 @@ require 'serverspec/matchers/be_running'
7
7
  require 'serverspec/matchers/contain'
8
8
  require 'serverspec/matchers/be_user'
9
9
  require 'serverspec/matchers/be_group'
10
+ require 'serverspec/matchers/be_mode'
11
+ require 'serverspec/matchers/be_owned_by'
12
+ require 'serverspec/matchers/be_grouped_into'
@@ -1,3 +1,3 @@
1
1
  module Serverspec
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -15,4 +15,9 @@ describe 'Serverspec matchers of Red Hat family', :os => :redhat do
15
15
 
16
16
  # Test for case of not registered in the service, but running as process.
17
17
  it_behaves_like 'support be_running matcher', 'udevd'
18
+
19
+ it_behaves_like 'support be_mode matcher', '/etc/passwd', 644
20
+
21
+ it_behaves_like 'support be_owned_by matcher', '/etc/passwd', 'root'
22
+ it_behaves_like 'support be_grouped_into matcher', '/etc/passwd', 'root'
18
23
  end
@@ -106,3 +106,39 @@ shared_examples_for 'support be_group matcher' do |valid_group|
106
106
  end
107
107
  end
108
108
  end
109
+
110
+ shared_examples_for 'support be_mode matcher' do |valid_file, mode|
111
+ describe 'be_mode' do
112
+ describe valid_file do
113
+ it { should be_mode mode }
114
+ end
115
+
116
+ describe '/etc/passwd' do
117
+ it { should_not be_mode 000 }
118
+ end
119
+ end
120
+ end
121
+
122
+ shared_examples_for 'support be_owned_by matcher' do |valid_file, owner|
123
+ describe 'be_owned_by' do
124
+ describe valid_file do
125
+ it { should be_owned_by owner }
126
+ end
127
+
128
+ describe '/etc/passwd' do
129
+ it { should_not be_owned_by 'daemon' }
130
+ end
131
+ end
132
+ end
133
+
134
+ shared_examples_for 'support be_grouped_into matcher' do |valid_file, group|
135
+ describe 'be_grouped_into' do
136
+ describe valid_file do
137
+ it { should be_grouped_into grouped }
138
+ end
139
+
140
+ describe '/etc/passwd' do
141
+ it { should_not be_grouped_into 'daemon' }
142
+ end
143
+ end
144
+ 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.6
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ hash: 17
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 7
10
+ version: 0.0.7
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-26 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2013-03-27 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
@@ -101,8 +103,11 @@ files:
101
103
  - lib/serverspec/matchers/be_enabled.rb
102
104
  - lib/serverspec/matchers/be_file.rb
103
105
  - lib/serverspec/matchers/be_group.rb
106
+ - lib/serverspec/matchers/be_grouped_into.rb
104
107
  - lib/serverspec/matchers/be_installed.rb
105
108
  - lib/serverspec/matchers/be_listening.rb
109
+ - lib/serverspec/matchers/be_mode.rb
110
+ - lib/serverspec/matchers/be_owned_by.rb
106
111
  - lib/serverspec/matchers/be_running.rb
107
112
  - lib/serverspec/matchers/be_user.rb
108
113
  - lib/serverspec/matchers/contain.rb
@@ -115,32 +120,41 @@ files:
115
120
  - spec/solaris/matchers_spec.rb
116
121
  - spec/spec_helper.rb
117
122
  - spec/support/shared_matcher_examples.rb
123
+ has_rdoc: true
118
124
  homepage: https://github.com/mizzy/serverspec
119
- licenses:
125
+ licenses:
120
126
  - MIT
121
127
  post_install_message:
122
128
  rdoc_options: []
123
- require_paths:
129
+
130
+ require_paths:
124
131
  - lib
125
- required_ruby_version: !ruby/object:Gem::Requirement
132
+ required_ruby_version: !ruby/object:Gem::Requirement
126
133
  none: false
127
- requirements:
128
- - - ! '>='
129
- - !ruby/object:Gem::Version
130
- version: '0'
131
- required_rubygems_version: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ hash: 3
138
+ segments:
139
+ - 0
140
+ version: "0"
141
+ required_rubygems_version: !ruby/object:Gem::Requirement
132
142
  none: false
133
- requirements:
134
- - - ! '>='
135
- - !ruby/object:Gem::Version
136
- version: '0'
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ hash: 3
147
+ segments:
148
+ - 0
149
+ version: "0"
137
150
  requirements: []
151
+
138
152
  rubyforge_project:
139
- rubygems_version: 1.8.25
153
+ rubygems_version: 1.3.7
140
154
  signing_key:
141
155
  specification_version: 3
142
156
  summary: RSpec tests for your provisioned servers
143
- test_files:
157
+ test_files:
144
158
  - spec/debian/matchers_spec.rb
145
159
  - spec/gentoo/matchers_spec.rb
146
160
  - spec/redhat/matchers_spec.rb