rest-assured 1.0.0.rc1 → 1.0.0.rc2

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