faraday 0.14.0 → 0.17.6
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +232 -0
- data/README.md +21 -7
- data/Rakefile +13 -0
- data/lib/faraday/adapter/em_http.rb +9 -9
- data/lib/faraday/adapter/em_synchrony.rb +5 -5
- data/lib/faraday/adapter/excon.rb +6 -3
- data/lib/faraday/adapter/httpclient.rb +4 -4
- data/lib/faraday/adapter/net_http.rb +25 -7
- data/lib/faraday/adapter/net_http_persistent.rb +33 -19
- data/lib/faraday/adapter/patron.rb +7 -12
- data/lib/faraday/adapter/rack.rb +1 -1
- data/lib/faraday/adapter.rb +2 -0
- data/lib/faraday/deprecate.rb +109 -0
- data/lib/faraday/error.rb +129 -34
- data/lib/faraday/options.rb +6 -5
- data/lib/faraday/parameters.rb +2 -1
- data/lib/faraday/rack_builder.rb +2 -2
- data/lib/faraday/request/retry.rb +65 -16
- data/lib/faraday/request.rb +22 -0
- data/lib/faraday/response/logger.rb +3 -3
- data/lib/faraday/response/raise_error.rb +7 -3
- data/lib/faraday/response.rb +3 -3
- data/lib/faraday/upload_io.rb +16 -6
- data/lib/faraday.rb +2 -3
- data/spec/faraday/deprecate_spec.rb +147 -0
- data/spec/faraday/error_spec.rb +102 -0
- data/spec/faraday/response/raise_error_spec.rb +106 -0
- data/spec/spec_helper.rb +105 -0
- data/test/adapters/default_test.rb +14 -0
- data/test/adapters/em_http_test.rb +30 -0
- data/test/adapters/em_synchrony_test.rb +32 -0
- data/test/adapters/excon_test.rb +30 -0
- data/test/adapters/httpclient_test.rb +34 -0
- data/test/adapters/integration.rb +263 -0
- data/test/adapters/logger_test.rb +136 -0
- data/test/adapters/net_http_persistent_test.rb +114 -0
- data/test/adapters/net_http_test.rb +79 -0
- data/test/adapters/patron_test.rb +40 -0
- data/test/adapters/rack_test.rb +38 -0
- data/test/adapters/test_middleware_test.rb +157 -0
- data/test/adapters/typhoeus_test.rb +38 -0
- data/test/authentication_middleware_test.rb +65 -0
- data/test/composite_read_io_test.rb +109 -0
- data/test/connection_test.rb +738 -0
- data/test/env_test.rb +268 -0
- data/test/helper.rb +75 -0
- data/test/live_server.rb +67 -0
- data/test/middleware/instrumentation_test.rb +88 -0
- data/test/middleware/retry_test.rb +282 -0
- data/test/middleware_stack_test.rb +260 -0
- data/test/multibyte.txt +1 -0
- data/test/options_test.rb +333 -0
- data/test/parameters_test.rb +157 -0
- data/test/request_middleware_test.rb +126 -0
- data/test/response_middleware_test.rb +72 -0
- data/test/strawberry.rb +2 -0
- data/test/utils_test.rb +98 -0
- metadata +48 -7
data/test/utils_test.rb
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
require File.expand_path('../helper', __FILE__)
|
2
|
+
|
3
|
+
class TestUtils < Faraday::TestCase
|
4
|
+
|
5
|
+
# Headers parsing
|
6
|
+
|
7
|
+
def test_headers
|
8
|
+
"HTTP/1.x 500 OK\r\nContent-Type: text/html; charset=UTF-8\r\n" \
|
9
|
+
"HTTP/1.x 200 OK\r\nContent-Type: application/json; charset=UTF-8\r\n\r\n"
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_headers_parsing_for_aggregated_responses
|
13
|
+
headers = Faraday::Utils::Headers.new()
|
14
|
+
headers.parse(test_headers)
|
15
|
+
|
16
|
+
result = headers.to_hash
|
17
|
+
|
18
|
+
assert_equal result["Content-Type"], "application/json; charset=UTF-8"
|
19
|
+
end
|
20
|
+
|
21
|
+
# URI parsing
|
22
|
+
|
23
|
+
def setup
|
24
|
+
@url = "http://example.com/abc"
|
25
|
+
end
|
26
|
+
|
27
|
+
# emulates ActiveSupport::SafeBuffer#gsub
|
28
|
+
FakeSafeBuffer = Struct.new(:string) do
|
29
|
+
def to_s() self end
|
30
|
+
def gsub(regex)
|
31
|
+
string.gsub(regex) {
|
32
|
+
match, = $&, '' =~ /a/
|
33
|
+
yield(match)
|
34
|
+
}
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_escaping_safe_buffer
|
39
|
+
str = FakeSafeBuffer.new('$32,000.00')
|
40
|
+
assert_equal '%2432%2C000.00', Faraday::Utils.escape(str)
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_parses_with_default
|
44
|
+
with_default_uri_parser(nil) do
|
45
|
+
uri = normalize(@url)
|
46
|
+
assert_equal 'example.com', uri.host
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_parses_with_URI
|
51
|
+
with_default_uri_parser(::URI) do
|
52
|
+
uri = normalize(@url)
|
53
|
+
assert_equal 'example.com', uri.host
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_parses_with_block
|
58
|
+
with_default_uri_parser(lambda {|u| "booya#{"!" * u.size}" }) do
|
59
|
+
assert_equal 'booya!!!!!!!!!!!!!!!!!!!!!!', normalize(@url)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_replace_header_hash
|
64
|
+
headers = Faraday::Utils::Headers.new('authorization' => 't0ps3cr3t!')
|
65
|
+
assert headers.include?('authorization')
|
66
|
+
|
67
|
+
headers.replace({'content-type' => 'text/plain'})
|
68
|
+
|
69
|
+
assert !headers.include?('authorization')
|
70
|
+
end
|
71
|
+
|
72
|
+
def normalize(url)
|
73
|
+
Faraday::Utils::URI(url)
|
74
|
+
end
|
75
|
+
|
76
|
+
def with_default_uri_parser(parser)
|
77
|
+
old_parser = Faraday::Utils.default_uri_parser
|
78
|
+
begin
|
79
|
+
Faraday::Utils.default_uri_parser = parser
|
80
|
+
yield
|
81
|
+
ensure
|
82
|
+
Faraday::Utils.default_uri_parser = old_parser
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
# YAML parsing
|
87
|
+
|
88
|
+
def test_headers_yaml_roundtrip
|
89
|
+
headers = Faraday::Utils::Headers.new('User-Agent' => 'safari', 'Content-type' => 'text/html')
|
90
|
+
result = YAML.load(headers.to_yaml)
|
91
|
+
|
92
|
+
assert result.include?('user-agent'), 'Unable to hydrate to a correct Headers'
|
93
|
+
assert result.include?('content-type'), 'Unable to hydrate to a correct Headers'
|
94
|
+
assert result['user-agent'] == 'safari', 'Unable to access rehydrated Headers'
|
95
|
+
assert result['content-type'] == 'text/html', 'Unable to access rehydrated Headers'
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
metadata
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faraday
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.17.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- "@technoweenie"
|
8
|
+
- "@iMacTia"
|
9
|
+
- "@olleolleolle"
|
8
10
|
autorequire:
|
9
11
|
bindir: bin
|
10
12
|
cert_chain: []
|
11
|
-
date:
|
13
|
+
date: 2022-11-04 00:00:00.000000000 Z
|
12
14
|
dependencies:
|
13
15
|
- !ruby/object:Gem::Dependency
|
14
16
|
name: multipart-post
|
@@ -36,8 +38,10 @@ executables: []
|
|
36
38
|
extensions: []
|
37
39
|
extra_rdoc_files: []
|
38
40
|
files:
|
41
|
+
- CHANGELOG.md
|
39
42
|
- LICENSE.md
|
40
43
|
- README.md
|
44
|
+
- Rakefile
|
41
45
|
- lib/faraday.rb
|
42
46
|
- lib/faraday/adapter.rb
|
43
47
|
- lib/faraday/adapter/em_http.rb
|
@@ -54,6 +58,7 @@ files:
|
|
54
58
|
- lib/faraday/adapter/typhoeus.rb
|
55
59
|
- lib/faraday/autoload.rb
|
56
60
|
- lib/faraday/connection.rb
|
61
|
+
- lib/faraday/deprecate.rb
|
57
62
|
- lib/faraday/error.rb
|
58
63
|
- lib/faraday/middleware.rb
|
59
64
|
- lib/faraday/options.rb
|
@@ -72,10 +77,47 @@ files:
|
|
72
77
|
- lib/faraday/response/raise_error.rb
|
73
78
|
- lib/faraday/upload_io.rb
|
74
79
|
- lib/faraday/utils.rb
|
75
|
-
|
80
|
+
- spec/faraday/deprecate_spec.rb
|
81
|
+
- spec/faraday/error_spec.rb
|
82
|
+
- spec/faraday/response/raise_error_spec.rb
|
83
|
+
- spec/spec_helper.rb
|
84
|
+
- test/adapters/default_test.rb
|
85
|
+
- test/adapters/em_http_test.rb
|
86
|
+
- test/adapters/em_synchrony_test.rb
|
87
|
+
- test/adapters/excon_test.rb
|
88
|
+
- test/adapters/httpclient_test.rb
|
89
|
+
- test/adapters/integration.rb
|
90
|
+
- test/adapters/logger_test.rb
|
91
|
+
- test/adapters/net_http_persistent_test.rb
|
92
|
+
- test/adapters/net_http_test.rb
|
93
|
+
- test/adapters/patron_test.rb
|
94
|
+
- test/adapters/rack_test.rb
|
95
|
+
- test/adapters/test_middleware_test.rb
|
96
|
+
- test/adapters/typhoeus_test.rb
|
97
|
+
- test/authentication_middleware_test.rb
|
98
|
+
- test/composite_read_io_test.rb
|
99
|
+
- test/connection_test.rb
|
100
|
+
- test/env_test.rb
|
101
|
+
- test/helper.rb
|
102
|
+
- test/live_server.rb
|
103
|
+
- test/middleware/instrumentation_test.rb
|
104
|
+
- test/middleware/retry_test.rb
|
105
|
+
- test/middleware_stack_test.rb
|
106
|
+
- test/multibyte.txt
|
107
|
+
- test/options_test.rb
|
108
|
+
- test/parameters_test.rb
|
109
|
+
- test/request_middleware_test.rb
|
110
|
+
- test/response_middleware_test.rb
|
111
|
+
- test/strawberry.rb
|
112
|
+
- test/utils_test.rb
|
113
|
+
homepage: https://lostisland.github.io/faraday
|
76
114
|
licenses:
|
77
115
|
- MIT
|
78
|
-
metadata:
|
116
|
+
metadata:
|
117
|
+
homepage_uri: https://lostisland.github.io/faraday
|
118
|
+
changelog_uri: https://github.com/lostisland/faraday/blob/master/CHANGELOG.md
|
119
|
+
source_code_uri: https://github.com/lostisland/faraday/
|
120
|
+
bug_tracker_uri: https://github.com/lostisland/faraday/issues
|
79
121
|
post_install_message:
|
80
122
|
rdoc_options: []
|
81
123
|
require_paths:
|
@@ -91,8 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
133
|
- !ruby/object:Gem::Version
|
92
134
|
version: '0'
|
93
135
|
requirements: []
|
94
|
-
|
95
|
-
rubygems_version: 2.7.4
|
136
|
+
rubygems_version: 3.3.7
|
96
137
|
signing_key:
|
97
138
|
specification_version: 4
|
98
139
|
summary: HTTP/REST API client library.
|