httparrot 0.0.4 → 0.0.5
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/.gitignore +2 -1
- data/Gemfile +4 -0
- data/httparrot.gemspec +2 -2
- data/lib/httparrot/server.rb +9 -4
- data/lib/httparrot/version.rb +1 -1
- data/spec/server_spec.rb +9 -0
- metadata +13 -12
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/httparrot.gemspec
CHANGED
@@ -5,8 +5,8 @@ require "httparrot/version"
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "httparrot"
|
7
7
|
s.version = HTTParrot::VERSION
|
8
|
-
s.authors = ["Brandon Dewitt"]
|
9
|
-
s.email = ["brandonsdewitt@gmail.com"]
|
8
|
+
s.authors = ["Brandon Dewitt", "lawrence mcalpin"]
|
9
|
+
s.email = ["brandonsdewitt+httparrot@gmail.com"]
|
10
10
|
s.homepage = ""
|
11
11
|
s.summary = %q{Mock Server for testing HTTP anything!}
|
12
12
|
s.description = %q{helps cut through the clutter of HTTP testing}
|
data/lib/httparrot/server.rb
CHANGED
@@ -29,9 +29,9 @@ module HTTParrot
|
|
29
29
|
}.merge(HTTParrot::Config.config).merge(opts)
|
30
30
|
|
31
31
|
# hard to believe, but it's true, some people still use Windows! like me.
|
32
|
-
|
32
|
+
is_windows = RUBY_PLATFORM =~ /mswin|windows|mingw/i
|
33
33
|
quiet_options = {
|
34
|
-
:Logger => WEBrick::Log::new(
|
34
|
+
:Logger => WEBrick::Log::new(is_windows ? "nul" : "/dev/null", 7),
|
35
35
|
:AccessLog => []
|
36
36
|
}
|
37
37
|
|
@@ -88,15 +88,17 @@ module HTTParrot
|
|
88
88
|
@parent_thread.raise e
|
89
89
|
end
|
90
90
|
|
91
|
-
def register(http_method, method_key, response,
|
91
|
+
def register(http_method, method_key, response, opts={})
|
92
92
|
http_method = http_method.to_s.downcase.to_sym
|
93
93
|
raise "http_method in register must be one of [:get, :post, :head, :delete] : #{http_method}" if ![:get, :post, :head, :delete].include?(http_method)
|
94
94
|
|
95
|
+
call_with_env = opts[:call_with_env] || false
|
95
96
|
response_handler = OpenStruct.new({
|
96
97
|
:method_key => method_key,
|
97
98
|
:response => response,
|
98
99
|
:env? => call_with_env,
|
99
|
-
:response_count => 0
|
100
|
+
:response_count => 0,
|
101
|
+
:options => opts
|
100
102
|
})
|
101
103
|
|
102
104
|
case
|
@@ -143,6 +145,9 @@ module HTTParrot
|
|
143
145
|
# Increment the number of times a handler was used (for asserting usage)
|
144
146
|
def increment_return(handler)
|
145
147
|
handler.response_count = handler.response_count + 1
|
148
|
+
if handler.options then
|
149
|
+
sleep handler.options[:delay] if handler.options[:delay]
|
150
|
+
end
|
146
151
|
return handler.response
|
147
152
|
end
|
148
153
|
|
data/lib/httparrot/version.rb
CHANGED
data/spec/server_spec.rb
CHANGED
@@ -182,6 +182,15 @@ describe HTTParrot::Server do
|
|
182
182
|
handlers[:get].should_not be_empty
|
183
183
|
handlers[:post].should be_empty
|
184
184
|
end
|
185
|
+
|
186
|
+
it "can simulate slow connections" do
|
187
|
+
handler = @server.register(:get, ["/widget", /widget/], @widget.to_rack, :delay => 0.5)
|
188
|
+
|
189
|
+
# stub sleep
|
190
|
+
@server.stub!(:sleep)
|
191
|
+
@server.should_receive(:sleep).with(0.5)
|
192
|
+
@server.send(:increment_return, handler)
|
193
|
+
end
|
185
194
|
|
186
195
|
it "raises error when handler type cannot be inferred" do
|
187
196
|
expect{ @server.register(:get, 1, @widget.to_rack) }.to raise_error(/callable/)
|
metadata
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: httparrot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Brandon Dewitt
|
9
|
+
- lawrence mcalpin
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
@@ -13,7 +14,7 @@ date: 2012-02-16 00:00:00.000000000Z
|
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: rspec
|
16
|
-
requirement: &
|
17
|
+
requirement: &11870200 !ruby/object:Gem::Requirement
|
17
18
|
none: false
|
18
19
|
requirements:
|
19
20
|
- - =
|
@@ -21,10 +22,10 @@ dependencies:
|
|
21
22
|
version: '2.7'
|
22
23
|
type: :development
|
23
24
|
prerelease: false
|
24
|
-
version_requirements: *
|
25
|
+
version_requirements: *11870200
|
25
26
|
- !ruby/object:Gem::Dependency
|
26
27
|
name: rake
|
27
|
-
requirement: &
|
28
|
+
requirement: &11868780 !ruby/object:Gem::Requirement
|
28
29
|
none: false
|
29
30
|
requirements:
|
30
31
|
- - ! '>='
|
@@ -32,10 +33,10 @@ dependencies:
|
|
32
33
|
version: '0'
|
33
34
|
type: :development
|
34
35
|
prerelease: false
|
35
|
-
version_requirements: *
|
36
|
+
version_requirements: *11868780
|
36
37
|
- !ruby/object:Gem::Dependency
|
37
38
|
name: rack
|
38
|
-
requirement: &
|
39
|
+
requirement: &11867740 !ruby/object:Gem::Requirement
|
39
40
|
none: false
|
40
41
|
requirements:
|
41
42
|
- - ! '>='
|
@@ -43,10 +44,10 @@ dependencies:
|
|
43
44
|
version: '0'
|
44
45
|
type: :runtime
|
45
46
|
prerelease: false
|
46
|
-
version_requirements: *
|
47
|
+
version_requirements: *11867740
|
47
48
|
- !ruby/object:Gem::Dependency
|
48
49
|
name: activesupport
|
49
|
-
requirement: &
|
50
|
+
requirement: &11866680 !ruby/object:Gem::Requirement
|
50
51
|
none: false
|
51
52
|
requirements:
|
52
53
|
- - ! '>='
|
@@ -54,10 +55,10 @@ dependencies:
|
|
54
55
|
version: '0'
|
55
56
|
type: :runtime
|
56
57
|
prerelease: false
|
57
|
-
version_requirements: *
|
58
|
+
version_requirements: *11866680
|
58
59
|
description: helps cut through the clutter of HTTP testing
|
59
60
|
email:
|
60
|
-
- brandonsdewitt@gmail.com
|
61
|
+
- brandonsdewitt+httparrot@gmail.com
|
61
62
|
executables: []
|
62
63
|
extensions: []
|
63
64
|
extra_rdoc_files: []
|
@@ -96,7 +97,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
96
97
|
version: '0'
|
97
98
|
segments:
|
98
99
|
- 0
|
99
|
-
hash:
|
100
|
+
hash: -2796158794864830420
|
100
101
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
102
|
none: false
|
102
103
|
requirements:
|
@@ -105,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
106
|
version: '0'
|
106
107
|
segments:
|
107
108
|
- 0
|
108
|
-
hash:
|
109
|
+
hash: -2796158794864830420
|
109
110
|
requirements: []
|
110
111
|
rubyforge_project: httparrot
|
111
112
|
rubygems_version: 1.8.10
|