rspec-system 1.1.0 → 1.2.0

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/README.md CHANGED
@@ -43,7 +43,7 @@ Create the directory `spec/system` in your project, its recommended to make sure
43
43
  describe 'basics' do
44
44
  it 'should cat /etc/resolv.conf' do
45
45
  system_run('cat /etc/resolv.conf') do |r|
46
- r[:stdout].should =~ /localhost/
46
+ r.stdout.should =~ /localhost/
47
47
  end
48
48
  end
49
49
  end
@@ -1,3 +1,5 @@
1
+ require 'rspec-system/result'
2
+
1
3
  # This module contains the main rspec helpers that are to be used within
2
4
  # rspec-system tests. These are the meat-and-potatoes of your system tests,
3
5
  # and in theory there shouldn't be anything you can't do without the helpers
@@ -20,8 +22,8 @@
20
22
  # describe 'test running' do
21
23
  # it 'run cat' do
22
24
  # system_run 'cat /etc/resolv.conf' do |r|
23
- # r[:exit_code].should == 0
24
- # r[:stdout].should =~ /localhost/
25
+ # r.exit_code.should == 0
26
+ # r.stdout.should =~ /localhost/
25
27
  # end
26
28
  # end
27
29
  # end
@@ -59,9 +61,9 @@
59
61
  # it 'test installing latest puppet' do
60
62
  # install_puppet
61
63
  # system_run('puppet apply --version') do |r|
62
- # r[:exit_code] == 0
63
- # r[:stdout].should =~ /3.1/
64
- # r[:stderr].should == ''
64
+ # r.exit_code == 0
65
+ # r.stdout.should =~ /3.1/
66
+ # r.stderr.should == ''
65
67
  # end
66
68
  # end
67
69
  # end
@@ -92,8 +94,10 @@ module RSpecSystem::Helpers
92
94
  # that) specifies node to execute command on.
93
95
  # @option options [RSpecSystem::Node] :n alias for :node
94
96
  # @yield [result] yields result when called as a block
95
- # @yieldparam result [Hash] a hash containing :exit_code, :stdout and :stderr
96
- # @return [Hash] a hash containing :exit_code, :stdout and :stderr
97
+ # @yieldparam result [RSpecSystem::Result] a result containing :exit_code,
98
+ # :stdout and :stderr
99
+ # @return [RSpecSystem::Result] a result containing :exit_code, :stdout and
100
+ # :stderr
97
101
  def system_run(options)
98
102
  ns = rspec_system_node_set
99
103
  dn = ns.default_node
@@ -116,7 +120,7 @@ module RSpecSystem::Helpers
116
120
  raise "Cannot use system_run with no :command option"
117
121
  end
118
122
 
119
- result = ns.run(options)
123
+ result = RSpecSystem::Result.new(ns.run(options))
120
124
 
121
125
  if block_given?
122
126
  yield(result)
@@ -0,0 +1,11 @@
1
+ require 'ostruct'
2
+
3
+ module RSpecSystem
4
+ # This class represents a result from a helper command
5
+ class Result < OpenStruct
6
+ # Returns the value of a member.
7
+ def [](name)
8
+ @table[name.to_sym]
9
+ end
10
+ end
11
+ end
data/lib/rspec-system.rb CHANGED
@@ -8,3 +8,4 @@ require 'rspec-system/helpers'
8
8
  require 'rspec-system/node_set'
9
9
  require 'rspec-system/prefab'
10
10
  require 'rspec-system/node'
11
+ require 'rspec-system/result'
data/rspec-system.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
  Gem::Specification.new do |s|
3
3
  # Metadata
4
4
  s.name = "rspec-system"
5
- s.version = "1.1.0"
5
+ s.version = "1.2.0"
6
6
  s.authors = ["Ken Barber"]
7
7
  s.email = ["ken@bob.sh"]
8
8
  s.homepage = "https://github.com/puppetlabs/rspec-system"
@@ -8,8 +8,8 @@ describe "system_rcp:" do
8
8
  )
9
9
 
10
10
  system_run('cat /tmp/example_destination/example_file') do |r|
11
- r[:exit_code].should == 0
12
- r[:stdout].should =~ /Test content 1234/
11
+ r.exit_code.should == 0
12
+ r.stdout.should =~ /Test content 1234/
13
13
  end
14
14
  end
15
15
  end
@@ -2,6 +2,13 @@ require 'spec_helper_system'
2
2
 
3
3
  describe "system_run:" do
4
4
  it "cat /etc/hosts" do
5
+ system_run("cat /etc/hosts") do |r|
6
+ r.exit_code.should == 0
7
+ r.stdout.should =~ /localhost/
8
+ end
9
+ end
10
+
11
+ it "cat /etc/hosts - test results using hash method" do
5
12
  system_run("cat /etc/hosts") do |r|
6
13
  r[:exit_code].should == 0
7
14
  r[:stdout].should =~ /localhost/
@@ -11,13 +18,13 @@ describe "system_run:" do
11
18
  it 'piping should be preserved' do
12
19
  system_run('rm -f /tmp/foo')
13
20
  system_run('echo "foo" > /tmp/foo') do |r|
14
- r[:stderr].should == ''
15
- r[:exit_code].should == 0
21
+ r.stderr.should == ''
22
+ r.exit_code.should == 0
16
23
  end
17
24
 
18
25
  system_run('cat /tmp/foo') do |r|
19
- r[:stdout].should =~ /foo/
20
- r[:exit_code].should == 0
26
+ r.stdout.should =~ /foo/
27
+ r.exit_code.should == 0
21
28
  end
22
29
  system_run('rm -f /tmp/foo')
23
30
  end
@@ -25,13 +32,13 @@ describe "system_run:" do
25
32
  it 'escape single quotes properly' do
26
33
  system_run('rm -f /tmp/foo')
27
34
  system_run("echo 'foo' > /tmp/foo") do |r|
28
- r[:stderr].should == ''
29
- r[:exit_code].should == 0
35
+ r.stderr.should == ''
36
+ r.exit_code.should == 0
30
37
  end
31
38
 
32
39
  system_run('cat /tmp/foo') do |r|
33
- r[:stdout].should =~ /foo/
34
- r[:exit_code].should == 0
40
+ r.stdout.should =~ /foo/
41
+ r.exit_code.should == 0
35
42
  end
36
43
  system_run('rm -f /tmp/foo')
37
44
  end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe RSpecSystem::Result do
4
+ it 'should allow you to query using methods' do
5
+ result = subject.class.new(:foo => 'bar')
6
+ result.foo.should == 'bar'
7
+ end
8
+
9
+ it 'should allow you to query using hash queries' do
10
+ result = subject.class.new(:foo => 'bar')
11
+ result[:foo].should == 'bar'
12
+ end
13
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-system
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-08 00:00:00.000000000 Z
12
+ date: 2013-05-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -142,6 +142,7 @@ files:
142
142
  - lib/rspec-system/node_set/vsphere.rb
143
143
  - lib/rspec-system/prefab.rb
144
144
  - lib/rspec-system/rake_task.rb
145
+ - lib/rspec-system/result.rb
145
146
  - lib/rspec-system/spec_helper.rb
146
147
  - resources/kwalify-schemas/nodeset_schema.yml
147
148
  - resources/kwalify-schemas/prefabs_schema.yml
@@ -156,6 +157,7 @@ files:
156
157
  - spec/system/system_run_spec.rb
157
158
  - spec/unit/kwalify-schemas/nodeset_schema_spec.rb
158
159
  - spec/unit/kwalify-schemas/prefabs_schema_spec.rb
160
+ - spec/unit/result_spec.rb
159
161
  homepage: https://github.com/puppetlabs/rspec-system
160
162
  licenses: []
161
163
  post_install_message:
@@ -186,3 +188,4 @@ test_files:
186
188
  - spec/system/system_run_spec.rb
187
189
  - spec/unit/kwalify-schemas/nodeset_schema_spec.rb
188
190
  - spec/unit/kwalify-schemas/prefabs_schema_spec.rb
191
+ - spec/unit/result_spec.rb