rest-assured 1.0.0.rc1 → 1.0.0.rc2

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.markdown CHANGED
@@ -9,7 +9,7 @@ There are three main use cases:
9
9
 
10
10
  * stubbing out external data sources with predefined data
11
11
  * verify requests to external services (aka spying)
12
- * quickly simulate different behavior of external services using web UI; useful in development
12
+ * simulate different behavior of external services using web UI; useful in development
13
13
 
14
14
  ## Usage
15
15
 
@@ -27,7 +27,7 @@ It is also recommended to have thin installed. This improves startup time (over
27
27
 
28
28
  Then install gem and run:
29
29
 
30
- bash$ gem install rest-assured
30
+ bash$ gem install rest-assured --pre
31
31
  bash$ rest-assured -a mysql &
32
32
 
33
33
  Or clone from github and run:
@@ -74,7 +74,7 @@ RestAssured::Double.create(fullpath: '/products', content: 'this is content')
74
74
 
75
75
  Now GET `http://localhost:4578/products` will be returning `this is content`.
76
76
 
77
- You can also verify what requests happen on a double, or, in other words, spy on a double. Say this is a Given part of a test:
77
+ You can also verify what requests happen on a double, or, if you like, spy on a it. Say this is a Given part of a test:
78
78
 
79
79
  ```ruby
80
80
  @double = RestAssured::Double.create(fullpath: '/products', verb: 'POST')
@@ -87,12 +87,12 @@ Then let us assume that `http://localhost:4578/products` got POSTed as a result
87
87
 
88
88
  req = @double.requests.first
89
89
 
90
- req.body.should == expected_payload
90
+ req.body.should == some_expected_payload
91
91
  JSON.parse(req.params).should == expected_params_hash
92
- JSON.parse(req.rack_env)['ACCEPT'].should == 'text/html'
92
+ JSON.parse(req.rack_env)['HTTP_ACCEPT'].should == 'text/html'
93
93
  ```
94
94
 
95
- Use plain rest api to clear doubles/redirects between tests:
95
+ Use plain REST api to clear doubles/redirects between tests:
96
96
 
97
97
  ```ruby
98
98
  RestClient.delete "#{RestAssured::Server.address}/redirects/all"
@@ -16,7 +16,6 @@ Feature: use doubles via api
16
16
  | /api/some?a=3&b=dd | more content | | GET | | 200 |
17
17
  | /api/empty | | POST | POST | | 200 |
18
18
 
19
- @now
20
19
  Scenario: view created double details
21
20
  When I create a double
22
21
  Then I should be able to get json representation of that double from response
@@ -1,4 +1,3 @@
1
- @now
2
1
  Feature: manage redirect rules
3
2
  In order to be able to mock only part of api
4
3
  As a developer
@@ -1,7 +1,8 @@
1
+ @api_server
1
2
  Feature: test server
2
3
  In order to have easy integration with my test code
3
4
  As a ruby developer
4
- I want to have a client library take care of starting/stopping an instance of rest-assured appropriately
5
+ I want to have a client library take care of starting/stopping an instance of rest-assured
5
6
 
6
7
  Scenario: start rest-assured server
7
8
  Given there is free tcp port
@@ -39,13 +39,24 @@ Spork.prefork do
39
39
 
40
40
  World(Capybara, Rack::Test::Methods, RackHeaderHack, WorldHelpers)
41
41
 
42
- end
42
+ require 'rest-assured/config'
43
+ db_opts = { :dbuser => ENV['TRAVIS'] ? "''" : "root", :adapter => 'mysql' }
44
+ RestAssured::Config.build(db_opts)
45
+
46
+ require 'rest-assured'
47
+ require 'shoulda-matchers'
48
+
49
+ RestAssured::Server.start(db_opts.merge(:port => 9876))
43
50
 
51
+ Before "@api_server" do
52
+ RestAssured::Server.stop
53
+ end
54
+ After "@api_server" do
55
+ RestAssured::Server.start(db_opts.merge(:port => 9876))
56
+ end
57
+ end
44
58
 
45
59
  Spork.each_run do
46
- require 'rest-assured/config'
47
- RestAssured::Config.build(:adapter => 'mysql')
48
- require 'rest-assured'
49
60
  require 'rest-assured/application'
50
61
 
51
62
  def app
@@ -59,10 +70,6 @@ Spork.each_run do
59
70
  DatabaseCleaner.start
60
71
  end
61
72
 
62
- Before "@ruby_api" do
63
- RestAssured::Server.start(:port => 9876, :dbuser => ENV['TRAVIS'] ? "''" : "root")
64
- end
65
-
66
73
  Before "@ui" do
67
74
  set_headers "HTTP_USER_AGENT" => 'Firefox'
68
75
  end
@@ -8,7 +8,7 @@ module RestAssured
8
8
  include Utils::DrbSniffer
9
9
 
10
10
  def initialize
11
- @child = if not running_in_drb? and Process.respond_to?(:fork)
11
+ @child = if not running_in_spork? and Process.respond_to?(:fork)
12
12
  Utils::Subprocess.new do
13
13
  AppRunner.run!
14
14
  end
@@ -10,9 +10,11 @@ module RestAssured
10
10
 
11
11
  include Singleton
12
12
 
13
- def start!(opts = {})
14
- at_exit { stop }
13
+ at_exit do
14
+ instance.stop if instance
15
+ end
15
16
 
17
+ def start!(opts = {})
16
18
  stop if up?
17
19
 
18
20
  Config.build(opts)
@@ -3,8 +3,8 @@ require 'drb'
3
3
  module RestAssured
4
4
  module Utils
5
5
  module DrbSniffer
6
- def running_in_drb?
7
- defined?(Spork) and Spork.using_spork?
6
+ def running_in_spork?
7
+ defined?(Spork) && Spork.using_spork?
8
8
  end
9
9
  end
10
10
  end
@@ -1,3 +1,3 @@
1
1
  module RestAssured
2
- VERSION = '1.0.0.rc1'
2
+ VERSION = '1.0.0.rc2'
3
3
  end
@@ -6,7 +6,7 @@ module RestAssured
6
6
  describe AppSession do
7
7
  context 'either without spork or outside prefork block' do
8
8
  before do
9
- AppSession.any_instance.stub(:running_in_drb? => false)
9
+ AppSession.any_instance.stub(:running_in_spork? => false)
10
10
  end
11
11
 
12
12
  it 'start application in subprocess' do
@@ -26,7 +26,7 @@ module RestAssured
26
26
 
27
27
  context 'within spork prefork block' do
28
28
  before do
29
- AppSession.any_instance.stub(:running_in_drb? => true)
29
+ AppSession.any_instance.stub(:running_in_spork? => true)
30
30
  end
31
31
 
32
32
  it 'starts application in childprocess' do
@@ -120,7 +120,7 @@ module RestAssured
120
120
  end
121
121
 
122
122
  it 'stops application subprocess when current process exits' do
123
- if not running_in_drb? # drb breaks fork sandbox: at_exits a collected and fired all together on master process exit
123
+ if not running_in_spork?
124
124
  res_file = Tempfile.new('res')
125
125
  AppSession.stub(:new).and_return(session = mock.as_null_object)
126
126
  session.stub(:stop) do
@@ -132,6 +132,8 @@ module RestAssured
132
132
  end
133
133
  Process.wait
134
134
  res_file.read.should == 'stopped'
135
+ else
136
+ pending "Skipped: drb/spork breaks fork sandbox (at_exits are collected and fired all together on master process exit)"
135
137
  end
136
138
  end
137
139
  end
data/spec/spec_helper.rb CHANGED
@@ -53,24 +53,10 @@ Spork.prefork do
53
53
  require 'rest-assured/application'
54
54
  require 'shoulda-matchers'
55
55
 
56
- RestAssured::Server.start(db_opts.merge(:port => 9876))
56
+ RestAssured::Server.start(db_opts.merge(:port => 9877))
57
57
  end
58
58
 
59
59
  Spork.each_run do
60
- #require 'rest-assured/config'
61
- #db_opts = { :dbuser => ENV['TRAVIS'] ? "''" : "root", :adapter => 'mysql' }
62
- #RestAssured::Config.build(db_opts)
63
-
64
- #require 'rest-assured'
65
- #require 'rest-assured/application'
66
- #require 'shoulda-matchers'
67
-
68
- #RSpec.configure do |c|
69
- #c.before(:each, "ruby-api" => true) do
70
- #RestAssured::Server.start(db_opts.merge(:port => 9876))
71
- #end
72
- #end
73
-
74
60
  Capybara.app = RestAssured::Application
75
61
 
76
62
  def app
@@ -101,7 +101,7 @@ module RestAssured::Utils
101
101
  end
102
102
 
103
103
  it 'when exits normally' do
104
- if not running_in_drb? # drb breaks fork sandbox: at_exits a collected and fired all together on master process exit
104
+ if not running_in_spork?
105
105
  child_pid # Magic touch. Literally. Else Tempfile gets created in fork and that messes things up
106
106
 
107
107
  fork do
@@ -113,11 +113,13 @@ module RestAssured::Utils
113
113
 
114
114
  sleep 0.5
115
115
  child_alive?.should == false
116
+ else
117
+ pending "Skipped: drb/spork breaks fork sandbox (at_exits are collected and fired all together on master process exit)"
116
118
  end
117
119
  end
118
120
 
119
121
  it 'when killed violently' do
120
- if not running_in_drb?
122
+ if not running_in_spork?
121
123
  child_pid
122
124
 
123
125
  fork do
@@ -131,6 +133,8 @@ module RestAssured::Utils
131
133
 
132
134
  sleep 0.5
133
135
  child_alive?.should == false
136
+ else
137
+ pending "Skipped: drb/spork breaks fork sandbox (at_exits are collected and fired all together on master process exit)"
134
138
  end
135
139
  end
136
140
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rest-assured
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc1
4
+ version: 1.0.0.rc2
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-10 00:00:00.000000000 +00:00
13
- default_executable:
12
+ date: 2012-02-11 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: sinatra
17
- requirement: &2157171280 !ruby/object:Gem::Requirement
16
+ requirement: &2160189400 !ruby/object:Gem::Requirement
18
17
  none: false
19
18
  requirements:
20
19
  - - ! '>='
@@ -22,10 +21,10 @@ dependencies:
22
21
  version: 1.3.1
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: *2157171280
24
+ version_requirements: *2160189400
26
25
  - !ruby/object:Gem::Dependency
27
26
  name: rack
28
- requirement: &2157166140 !ruby/object:Gem::Requirement
27
+ requirement: &2160188700 !ruby/object:Gem::Requirement
29
28
  none: false
30
29
  requirements:
31
30
  - - <=
@@ -33,10 +32,10 @@ dependencies:
33
32
  version: 1.3.6
34
33
  type: :runtime
35
34
  prerelease: false
36
- version_requirements: *2157166140
35
+ version_requirements: *2160188700
37
36
  - !ruby/object:Gem::Dependency
38
37
  name: childprocess
39
- requirement: &2157165680 !ruby/object:Gem::Requirement
38
+ requirement: &2160188000 !ruby/object:Gem::Requirement
40
39
  none: false
41
40
  requirements:
42
41
  - - ~>
@@ -44,10 +43,10 @@ dependencies:
44
43
  version: 0.2.8
45
44
  type: :runtime
46
45
  prerelease: false
47
- version_requirements: *2157165680
46
+ version_requirements: *2160188000
48
47
  - !ruby/object:Gem::Dependency
49
48
  name: sinatra-flash
50
- requirement: &2157165300 !ruby/object:Gem::Requirement
49
+ requirement: &2160187420 !ruby/object:Gem::Requirement
51
50
  none: false
52
51
  requirements:
53
52
  - - ! '>='
@@ -55,10 +54,10 @@ dependencies:
55
54
  version: '0'
56
55
  type: :runtime
57
56
  prerelease: false
58
- version_requirements: *2157165300
57
+ version_requirements: *2160187420
59
58
  - !ruby/object:Gem::Dependency
60
59
  name: haml
61
- requirement: &2157164700 !ruby/object:Gem::Requirement
60
+ requirement: &2160186660 !ruby/object:Gem::Requirement
62
61
  none: false
63
62
  requirements:
64
63
  - - ! '>='
@@ -66,10 +65,10 @@ dependencies:
66
65
  version: 3.1.3
67
66
  type: :runtime
68
67
  prerelease: false
69
- version_requirements: *2157164700
68
+ version_requirements: *2160186660
70
69
  - !ruby/object:Gem::Dependency
71
70
  name: activerecord
72
- requirement: &2157164060 !ruby/object:Gem::Requirement
71
+ requirement: &2160185800 !ruby/object:Gem::Requirement
73
72
  none: false
74
73
  requirements:
75
74
  - - ~>
@@ -77,10 +76,10 @@ dependencies:
77
76
  version: 3.1.0
78
77
  type: :runtime
79
78
  prerelease: false
80
- version_requirements: *2157164060
79
+ version_requirements: *2160185800
81
80
  - !ruby/object:Gem::Dependency
82
81
  name: activeresource
83
- requirement: &2157163540 !ruby/object:Gem::Requirement
82
+ requirement: &2160185300 !ruby/object:Gem::Requirement
84
83
  none: false
85
84
  requirements:
86
85
  - - ~>
@@ -88,7 +87,7 @@ dependencies:
88
87
  version: 3.1.0
89
88
  type: :runtime
90
89
  prerelease: false
91
- version_requirements: *2157163540
90
+ version_requirements: *2160185300
92
91
  description:
93
92
  email:
94
93
  - artem.avetisyan@bbc.co.uk
@@ -204,7 +203,6 @@ files:
204
203
  - views/redirects/edit.haml
205
204
  - views/redirects/index.haml
206
205
  - views/redirects/new.haml
207
- has_rdoc: true
208
206
  homepage: https://github.com/BBC/rest-assured
209
207
  licenses: []
210
208
  post_install_message:
@@ -225,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
225
223
  version: 1.3.1
226
224
  requirements: []
227
225
  rubyforge_project: rest-assured
228
- rubygems_version: 1.6.2
226
+ rubygems_version: 1.8.10
229
227
  signing_key:
230
228
  specification_version: 3
231
229
  summary: A tool for high level mocking/stubbing HTTP based REST services