faraday 0.17.0 → 0.17.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +232 -0
  3. data/README.md +11 -0
  4. data/Rakefile +13 -0
  5. data/lib/faraday/adapter/em_http.rb +9 -9
  6. data/lib/faraday/adapter/em_synchrony.rb +5 -5
  7. data/lib/faraday/adapter/excon.rb +3 -3
  8. data/lib/faraday/adapter/httpclient.rb +4 -4
  9. data/lib/faraday/adapter/net_http.rb +3 -2
  10. data/lib/faraday/adapter/net_http_persistent.rb +4 -4
  11. data/lib/faraday/adapter/patron.rb +5 -5
  12. data/lib/faraday/adapter/rack.rb +1 -1
  13. data/lib/faraday/deprecate.rb +109 -0
  14. data/lib/faraday/error.rb +127 -35
  15. data/lib/faraday/options.rb +3 -3
  16. data/lib/faraday/rack_builder.rb +2 -2
  17. data/lib/faraday/request/retry.rb +6 -5
  18. data/lib/faraday/response/raise_error.rb +7 -3
  19. data/lib/faraday/response.rb +3 -3
  20. data/lib/faraday.rb +2 -3
  21. data/spec/faraday/deprecate_spec.rb +147 -0
  22. data/spec/faraday/error_spec.rb +102 -0
  23. data/spec/faraday/response/raise_error_spec.rb +106 -0
  24. data/spec/spec_helper.rb +105 -0
  25. data/test/adapters/default_test.rb +14 -0
  26. data/test/adapters/em_http_test.rb +30 -0
  27. data/test/adapters/em_synchrony_test.rb +32 -0
  28. data/test/adapters/excon_test.rb +30 -0
  29. data/test/adapters/httpclient_test.rb +34 -0
  30. data/test/adapters/integration.rb +263 -0
  31. data/test/adapters/logger_test.rb +136 -0
  32. data/test/adapters/net_http_persistent_test.rb +114 -0
  33. data/test/adapters/net_http_test.rb +79 -0
  34. data/test/adapters/patron_test.rb +40 -0
  35. data/test/adapters/rack_test.rb +38 -0
  36. data/test/adapters/test_middleware_test.rb +157 -0
  37. data/test/adapters/typhoeus_test.rb +38 -0
  38. data/test/authentication_middleware_test.rb +65 -0
  39. data/test/composite_read_io_test.rb +109 -0
  40. data/test/connection_test.rb +738 -0
  41. data/test/env_test.rb +268 -0
  42. data/test/helper.rb +75 -0
  43. data/test/live_server.rb +67 -0
  44. data/test/middleware/instrumentation_test.rb +88 -0
  45. data/test/middleware/retry_test.rb +282 -0
  46. data/test/middleware_stack_test.rb +260 -0
  47. data/test/multibyte.txt +1 -0
  48. data/test/options_test.rb +333 -0
  49. data/test/parameters_test.rb +157 -0
  50. data/test/request_middleware_test.rb +126 -0
  51. data/test/response_middleware_test.rb +72 -0
  52. data/test/strawberry.rb +2 -0
  53. data/test/utils_test.rb +98 -0
  54. metadata +48 -6
@@ -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.17.0
4
+ version: 0.17.4
5
5
  platform: ruby
6
6
  authors:
7
- - Rick Olson
7
+ - "@technoweenie"
8
+ - "@iMacTia"
9
+ - "@olleolleolle"
8
10
  autorequire:
9
11
  bindir: bin
10
12
  cert_chain: []
11
- date: 2019-10-06 00:00:00.000000000 Z
13
+ date: 2021-02-06 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
- homepage: https://github.com/lostisland/faraday
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,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
133
  - !ruby/object:Gem::Version
92
134
  version: '0'
93
135
  requirements: []
94
- rubygems_version: 3.0.3
136
+ rubygems_version: 3.2.3
95
137
  signing_key:
96
138
  specification_version: 4
97
139
  summary: HTTP/REST API client library.