summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Giddins <segiddins@segiddins.me>2016-11-28 18:42:37 -0600
committerSamuel Giddins <segiddins@segiddins.me>2016-12-21 18:28:14 +0100
commitac133e3e15b05cec170fa4971d5af30781090508 (patch)
tree8b884d5817c94ca3230fbf09c64ff6198a5420bb
parent7782a06eb7b249e5908b922adb63ace7f6045434 (diff)
downloadbundler-ac133e3e15b05cec170fa4971d5af30781090508.tar.gz
Also load net/https before stubbing Net::HTTP
-rw-r--r--spec/support/artifice/fail.rb12
1 files changed, 11 insertions, 1 deletions
diff --git a/spec/support/artifice/fail.rb b/spec/support/artifice/fail.rb
index dbb7ab9b7a..572fa5613e 100644
--- a/spec/support/artifice/fail.rb
+++ b/spec/support/artifice/fail.rb
@@ -1,10 +1,20 @@
# frozen_string_literal: true
require "net/http"
+begin
+ require "net/https"
+rescue LoadError
+ nil # net/https or openssl
+end
# We can't use artifice here because it uses rack
class Fail < Net::HTTP
+ # Net::HTTP uses a @newimpl instance variable to decide whether
+ # to use a legacy implementation. Since we are subclassing
+ # Net::HTTP, we must set it
+ @newimpl = true
+
def request(req, body = nil, &block)
raise(exception(req))
end
@@ -23,5 +33,5 @@ end
# Replace Net::HTTP with our failing subclass
::Net.class_eval do
remove_const(:HTTP)
- const_set(:HTTP, Fail)
+ const_set(:HTTP, ::Fail)
end