mirror of
https://github.com/lostisland/faraday.git
synced 2025-10-08 00:03:41 -04:00
Merge branch 'master' into params-encoder
This commit is contained in:
commit
dedd377c8a
@ -70,6 +70,12 @@ module Faraday
|
||||
else
|
||||
raise Error::ConnectionFailed, err
|
||||
end
|
||||
rescue RuntimeError => err
|
||||
if err.message == "connection closed by server"
|
||||
raise Error::ConnectionFailed, err
|
||||
else
|
||||
raise
|
||||
end
|
||||
rescue => err
|
||||
if defined?(OpenSSL) && OpenSSL::SSL::SSLError === err
|
||||
raise Faraday::SSLError, err
|
||||
|
@ -269,6 +269,15 @@ module Faraday
|
||||
|
||||
def_delegators :request, :params_encoder
|
||||
|
||||
# Public
|
||||
def self.from(value)
|
||||
env = super(value)
|
||||
if value.respond_to?(:custom_members)
|
||||
env.custom_members.update(value.custom_members)
|
||||
end
|
||||
env
|
||||
end
|
||||
|
||||
# Public
|
||||
def [](key)
|
||||
if in_member_set?(key)
|
||||
|
@ -132,6 +132,7 @@ if [ -n "$(filter_matching "adapters" "${test_files[@]}")" ]; then
|
||||
cleanup() {
|
||||
if [ $? -ne 0 ] && [ -n "$TRAVIS" ]; then
|
||||
cat log/test.log
|
||||
cat log/proxy.log
|
||||
fi
|
||||
kill "$server_pid"
|
||||
kill "$proxy_pid"
|
||||
|
@ -207,8 +207,10 @@ module Adapters
|
||||
conn.get '/echo'
|
||||
end
|
||||
|
||||
unless self.class.ssl_mode? && self.class.jruby?
|
||||
unless self.class.ssl_mode? && (self.class.jruby? ||
|
||||
adapter == :em_http || adapter == :em_synchrony)
|
||||
# JRuby raises "End of file reached" which cannot be distinguished from a 407
|
||||
# EM raises "connection closed by server" due to https://github.com/igrigorik/em-socksify/pull/19
|
||||
assert_equal %{407 "Proxy Authentication Required "}, err.message
|
||||
end
|
||||
end
|
||||
|
@ -70,6 +70,17 @@ class EnvTest < Faraday::TestCase
|
||||
assert_equal 'proxy.com', env.request.proxy.host
|
||||
end
|
||||
|
||||
def test_custom_members_are_retained
|
||||
env = make_env
|
||||
env[:foo] = "custom 1"
|
||||
env[:bar] = :custom_2
|
||||
env2 = Faraday::Env.from(env)
|
||||
assert_equal "custom 1", env2[:foo]
|
||||
assert_equal :custom_2, env2[:bar]
|
||||
env2[:baz] = "custom 3"
|
||||
assert_nil env[:baz]
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def make_env(method = :get, connection = @conn, &block)
|
||||
|
Loading…
x
Reference in New Issue
Block a user