Sha256: e49f9c9b229636793262aab931224f221e1f88ecfa31521dfceb521d33ca7cf9
Contents?: true
Size: 1.59 KB
Versions: 7
Compression:
Stored size: 1.59 KB
Contents
require "spec_helper" describe "gemcutter's dependency API", :realworld => true do def wait_for_server(port, seconds = 15) tries = 0 TCPSocket.new("127.0.0.1", port) rescue => e raise(e) if tries > (seconds * 2) tries += 1 sleep 0.5 retry end context "when Gemcutter API takes too long to respond" do before do # need to hack, so we can require rack old_gem_home = ENV['GEM_HOME'] ENV['GEM_HOME'] = Spec::Path.base_system_gems.to_s require 'rack' ENV['GEM_HOME'] = old_gem_home port = 21453 port += 1 while TCPSocket.new("127.0.0.1", port) rescue false @server_uri = "http://127.0.0.1:#{port}" require File.expand_path('../../support/artifice/endpoint_timeout', __FILE__) require 'thread' @t = Thread.new { server = Rack::Server.start(:app => EndpointTimeout, :Host => '0.0.0.0', :Port => port, :server => 'webrick', :AccessLog => []) server.start } @t.run wait_for_server(port) end after do @t.kill end it "times out and falls back on the modern index" do gemfile <<-G source "#{@server_uri}" gem "rack" old_v, $VERBOSE = $VERBOSE, nil Bundler::Fetcher::API_TIMEOUT = 1 $VERBOSE = old_v G bundle :install expect(out).to include("\nFetching full source index from #{@server_uri}") should_be_installed "rack 1.0.0" end end end
Version data entries
7 entries across 7 versions & 1 rubygems