Sha256: 523688ce3ac9c16c180f0f017ffe4113a1a3edda92677ca22ee0e44ba7b12d43
Contents?: true
Size: 1.46 KB
Versions: 10
Compression:
Stored size: 1.46 KB
Contents
require 'thin' require 'support/integration_helper' require 'chef/knife/list_essentials' describe 'redirection' do extend IntegrationSupport include KnifeSupport when_the_chef_server 'has a role' do role 'x', {} context 'and another server redirects to it with 302' do before :each do @real_chef_server_url = Chef::Config.chef_server_url Chef::Config.chef_server_url = "http://127.0.0.1:9018" app = lambda do |env| [302, {'Content-Type' => 'text','Location' => "#{@real_chef_server_url}#{env['PATH_INFO']}" }, ['302 found'] ] end @redirector_server = Thin::Server.new('127.0.0.1', 9018, app, { :signals => false }) @redirector_thread = Thread.new do begin @redirector_server.start rescue @server_error = $! Chef::Log.error("#{$!.message}\n#{$!.backtrace.join("\n")}") end end Timeout::timeout(5) do until @redirector_server.running? || @server_error sleep(0.01) end raise @server_error if @server_error end end after :each do Chef::Config.chef_server_url = @real_chef_server_url @redirector_thread.kill @redirector_thread.join(nil) @redirector_thread = nil @redirector_server = nil end it 'knife list /roles returns the role' do knife('list /roles').should_succeed "/roles/x.json\n" end end end end
Version data entries
10 entries across 10 versions & 1 rubygems