mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
[rubygems/rubygems] Refactor tests to use Net::HTTPResponse instances for fetcher.data[:path]
https://github.com/rubygems/rubygems/commit/4d91cacb1f Co-authored-by: Jacques Chester <jacques.chester@shopify.com>
This commit is contained in:
parent
17b783ad9e
commit
0522e31d57
6 changed files with 87 additions and 83 deletions
|
@ -36,7 +36,7 @@ class TestGemCommandsOwnerCommand < Gem::TestCase
|
|||
- id: 4
|
||||
EOF
|
||||
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners.yaml"] = [response, 200, "OK"]
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners.yaml"] = HTTPResponseFactory.create(body: response, code: 200, msg: "OK")
|
||||
|
||||
use_ui @stub_ui do
|
||||
@cmd.show_owners("freewill")
|
||||
|
@ -66,7 +66,7 @@ EOF
|
|||
- id: 4
|
||||
EOF
|
||||
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners.yaml"] = [response, 200, "OK"]
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners.yaml"] = HTTPResponseFactory.create(body: response, code: 200, msg: "OK")
|
||||
|
||||
assert_raise Psych::DisallowedClass do
|
||||
use_ui @ui do
|
||||
|
@ -80,7 +80,7 @@ EOF
|
|||
host = "http://rubygems.example"
|
||||
ENV["RUBYGEMS_HOST"] = host
|
||||
|
||||
@stub_fetcher.data["#{host}/api/v1/gems/freewill/owners.yaml"] = [response, 200, "OK"]
|
||||
@stub_fetcher.data["#{host}/api/v1/gems/freewill/owners.yaml"] = HTTPResponseFactory.create(body: response, code: 200, msg: "OK")
|
||||
|
||||
use_ui @stub_ui do
|
||||
@cmd.show_owners("freewill")
|
||||
|
@ -95,7 +95,7 @@ EOF
|
|||
host = "http://rubygems.example"
|
||||
@cmd.host = host
|
||||
|
||||
@stub_fetcher.data["#{host}/api/v1/gems/freewill/owners.yaml"] = [response, 200, "OK"]
|
||||
@stub_fetcher.data["#{host}/api/v1/gems/freewill/owners.yaml"] = HTTPResponseFactory.create(body: response, code: 200, msg: "OK")
|
||||
|
||||
use_ui @stub_ui do
|
||||
@cmd.show_owners("freewill")
|
||||
|
@ -107,7 +107,7 @@ EOF
|
|||
|
||||
def test_show_owners_denied
|
||||
response = "You don't have permission to push to this gem"
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners.yaml"] = [response, 403, "Forbidden"]
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners.yaml"] = HTTPResponseFactory.create(body: response, code: 403, msg: "Forbidden")
|
||||
|
||||
assert_raise Gem::MockGemUi::TermError do
|
||||
use_ui @stub_ui do
|
||||
|
@ -143,7 +143,7 @@ EOF
|
|||
|
||||
def test_show_owners_key
|
||||
response = "- email: user1@example.com\n"
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners.yaml"] = [response, 200, "OK"]
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners.yaml"] = HTTPResponseFactory.create(body: response, code: 200, msg: "OK")
|
||||
File.open Gem.configuration.credentials_path, "a" do |f|
|
||||
f.write ":other: 701229f217cdf23b1344c7b4b54ca97"
|
||||
end
|
||||
|
@ -157,7 +157,7 @@ EOF
|
|||
|
||||
def test_add_owners
|
||||
response = "Owner added successfully."
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = [response, 200, "OK"]
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = HTTPResponseFactory.create(body: response, code: 200, msg: "OK")
|
||||
|
||||
use_ui @stub_ui do
|
||||
@cmd.add_owners("freewill", ["user-new1@example.com"])
|
||||
|
@ -172,7 +172,7 @@ EOF
|
|||
|
||||
def test_add_owners_denied
|
||||
response = "You don't have permission to push to this gem"
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = [response, 403, "Forbidden"]
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = HTTPResponseFactory.create(body: response, code: 403, msg: "Forbidden")
|
||||
|
||||
use_ui @stub_ui do
|
||||
@cmd.add_owners("freewill", ["user-new1@example.com"])
|
||||
|
@ -206,8 +206,8 @@ EOF
|
|||
host = "http://rubygems.example"
|
||||
add_owner_response = "Owner added successfully."
|
||||
show_owners_response = "- email: user1@example.com\n"
|
||||
@stub_fetcher.data["#{host}/api/v1/gems/freewill/owners"] = [add_owner_response, 200, "OK"]
|
||||
@stub_fetcher.data["#{host}/api/v1/gems/freewill/owners.yaml"] = [show_owners_response, 200, "OK"]
|
||||
@stub_fetcher.data["#{host}/api/v1/gems/freewill/owners"] = HTTPResponseFactory.create(body: add_owner_response, code: 200, msg: "OK")
|
||||
@stub_fetcher.data["#{host}/api/v1/gems/freewill/owners.yaml"] = HTTPResponseFactory.create(body: show_owners_response, code: 200, msg: "OK")
|
||||
|
||||
@cmd.handle_options %W[--host #{host} --add user-new1@example.com freewill]
|
||||
|
||||
|
@ -222,7 +222,7 @@ EOF
|
|||
|
||||
def test_add_owners_key
|
||||
response = "Owner added successfully."
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = [response, 200, "OK"]
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = HTTPResponseFactory.create(body: response, code: 200, msg: "OK")
|
||||
File.open Gem.configuration.credentials_path, "a" do |f|
|
||||
f.write ":other: 701229f217cdf23b1344c7b4b54ca97"
|
||||
end
|
||||
|
@ -236,7 +236,7 @@ EOF
|
|||
|
||||
def test_remove_owners
|
||||
response = "Owner removed successfully."
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = [response, 200, "OK"]
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = HTTPResponseFactory.create(body: response, code: 200, msg: "OK")
|
||||
|
||||
use_ui @stub_ui do
|
||||
@cmd.remove_owners("freewill", ["user-remove1@example.com"])
|
||||
|
@ -251,7 +251,7 @@ EOF
|
|||
|
||||
def test_remove_owners_denied
|
||||
response = "You don't have permission to push to this gem"
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = [response, 403, "Forbidden"]
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = HTTPResponseFactory.create(body: response, code: 403, msg: "Forbidden")
|
||||
|
||||
use_ui @stub_ui do
|
||||
@cmd.remove_owners("freewill", ["user-remove1@example.com"])
|
||||
|
@ -299,7 +299,7 @@ EOF
|
|||
|
||||
def test_remove_owners_key
|
||||
response = "Owner removed successfully."
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = [response, 200, "OK"]
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = HTTPResponseFactory.create(body: response, code: 200, msg: "OK")
|
||||
File.open Gem.configuration.credentials_path, "a" do |f|
|
||||
f.write ":other: 701229f217cdf23b1344c7b4b54ca97"
|
||||
end
|
||||
|
@ -313,7 +313,7 @@ EOF
|
|||
|
||||
def test_remove_owners_missing
|
||||
response = "Owner could not be found."
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = [response, 404, "Not Found"]
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = HTTPResponseFactory.create(body: response, code: 404, msg: "Not Found")
|
||||
|
||||
use_ui @stub_ui do
|
||||
@cmd.remove_owners("freewill", ["missing@example"])
|
||||
|
@ -327,8 +327,8 @@ EOF
|
|||
response_success = "Owner added successfully."
|
||||
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = [
|
||||
[response_fail, 401, "Unauthorized"],
|
||||
[response_success, 200, "OK"],
|
||||
HTTPResponseFactory.create(body: response_fail, code: 401, msg: "Unauthorized"),
|
||||
HTTPResponseFactory.create(body: response_success, code: 200, msg: "OK"),
|
||||
]
|
||||
|
||||
@otp_ui = Gem::MockGemUi.new "111111\n"
|
||||
|
@ -344,7 +344,7 @@ EOF
|
|||
|
||||
def test_otp_verified_failure
|
||||
response = "You have enabled multifactor authentication but your request doesn't have the correct OTP code. Please check it and retry."
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = [response, 401, "Unauthorized"]
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = HTTPResponseFactory.create(body: response, code: 401, msg: "Unauthorized")
|
||||
|
||||
@otp_ui = Gem::MockGemUi.new "111111\n"
|
||||
use_ui @otp_ui do
|
||||
|
@ -362,10 +362,10 @@ EOF
|
|||
response_success = "Owner removed successfully."
|
||||
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = [
|
||||
[response_forbidden, 403, "Forbidden"],
|
||||
[response_success, 200, "OK"],
|
||||
HTTPResponseFactory.create(body: response_forbidden, code: 403, msg: "Forbidden"),
|
||||
HTTPResponseFactory.create(body: response_success, code: 200, msg: "OK"),
|
||||
]
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/api_key"] = ["", 200, "OK"]
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/api_key"] = HTTPResponseFactory.create(body: "", code: 200, msg: "OK")
|
||||
@cmd.instance_variable_set :@scope, :remove_owner
|
||||
|
||||
@stub_ui = Gem::MockGemUi.new "some@mail.com\npass\n"
|
||||
|
@ -386,10 +386,10 @@ EOF
|
|||
response_success = "Owner added successfully."
|
||||
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = [
|
||||
[response_forbidden, 403, "Forbidden"],
|
||||
[response_success, 200, "OK"],
|
||||
HTTPResponseFactory.create(body: response_forbidden, code: 403, msg: "Forbidden"),
|
||||
HTTPResponseFactory.create(body: response_success, code: 200, msg: "OK"),
|
||||
]
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/api_key"] = ["", 200, "OK"]
|
||||
@stub_fetcher.data["#{Gem.host}/api/v1/api_key"] = HTTPResponseFactory.create(body: "", code: 200, msg: "OK")
|
||||
@cmd.instance_variable_set :@scope, :add_owner
|
||||
|
||||
@stub_ui = Gem::MockGemUi.new "some@mail.com\npass\n"
|
||||
|
|
|
@ -68,7 +68,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
|
|||
|
||||
def test_execute
|
||||
@response = "Successfully registered gem: freewill (1.0.0)"
|
||||
@fetcher.data["#{Gem.host}/api/v1/gems"] = [@response, 200, "OK"]
|
||||
@fetcher.data["#{Gem.host}/api/v1/gems"] = HTTPResponseFactory.create(body: @response, code: 200, msg: "OK")
|
||||
|
||||
@cmd.options[:args] = [@path]
|
||||
|
||||
|
@ -84,7 +84,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
|
|||
host = "https://other.example"
|
||||
|
||||
@response = "Successfully registered gem: freewill (1.0.0)"
|
||||
@fetcher.data["#{host}/api/v1/gems"] = [@response, 200, "OK"]
|
||||
@fetcher.data["#{host}/api/v1/gems"] = HTTPResponseFactory.create(body: @response, code: 200, msg: "OK")
|
||||
@fetcher.data["#{Gem.host}/api/v1/gems"] =
|
||||
["fail", 500, "Internal Server Error"]
|
||||
|
||||
|
@ -105,7 +105,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
|
|||
end
|
||||
|
||||
@response = "Successfully registered gem: freewill (1.0.0)"
|
||||
@fetcher.data["#{@spec.metadata['allowed_push_host']}/api/v1/gems"] = [@response, 200, "OK"]
|
||||
@fetcher.data["#{@spec.metadata['allowed_push_host']}/api/v1/gems"] = HTTPResponseFactory.create(body: @response, code: 200, msg: "OK")
|
||||
@fetcher.data["#{Gem.host}/api/v1/gems"] =
|
||||
["fail", 500, "Internal Server Error"]
|
||||
|
||||
|
@ -136,7 +136,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
|
|||
ENV["RUBYGEMS_HOST"] = @host
|
||||
Gem.configuration.disable_default_gem_server = true
|
||||
@response = "Successfully registered gem: freewill (1.0.0)"
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, "OK"]
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = HTTPResponseFactory.create(body: @response, code: 200, msg: "OK")
|
||||
|
||||
send_battery
|
||||
end
|
||||
|
@ -163,14 +163,14 @@ class TestGemCommandsPushCommand < Gem::TestCase
|
|||
FileUtils.rm Gem.configuration.credentials_path
|
||||
|
||||
@response = "Successfully registered gem: freebird (1.0.1)"
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, "OK"]
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = HTTPResponseFactory.create(body: @response, code: 200, msg: "OK")
|
||||
|
||||
send_battery
|
||||
end
|
||||
|
||||
def test_sending_gem
|
||||
@response = "Successfully registered gem: freewill (1.0.0)"
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, "OK"]
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = HTTPResponseFactory.create(body: @response, code: 200, msg: "OK")
|
||||
|
||||
send_battery
|
||||
end
|
||||
|
@ -197,7 +197,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
|
|||
FileUtils.rm Gem.configuration.credentials_path
|
||||
|
||||
@response = "Successfully registered gem: freebird (1.0.1)"
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, "OK"]
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = HTTPResponseFactory.create(body: @response, code: 200, msg: "OK")
|
||||
send_battery
|
||||
end
|
||||
|
||||
|
@ -212,7 +212,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
|
|||
ENV["GEM_HOST_API_KEY"] = "PRIVKEY"
|
||||
|
||||
@response = "Successfully registered gem: freebird (1.0.1)"
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, "OK"]
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = HTTPResponseFactory.create(body: @response, code: 200, msg: "OK")
|
||||
send_battery
|
||||
end
|
||||
|
||||
|
@ -238,7 +238,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
|
|||
FileUtils.rm Gem.configuration.credentials_path
|
||||
|
||||
@response = "Successfully registered gem: freebird (1.0.1)"
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, "OK"]
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = HTTPResponseFactory.create(body: @response, code: 200, msg: "OK")
|
||||
send_battery
|
||||
end
|
||||
|
||||
|
@ -309,7 +309,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
|
|||
FileUtils.rm Gem.configuration.credentials_path
|
||||
|
||||
@response = "Successfully registered gem: freebird (1.0.1)"
|
||||
@fetcher.data["#{host}/api/v1/gems"] = [@response, 200, "OK"]
|
||||
@fetcher.data["#{host}/api/v1/gems"] = HTTPResponseFactory.create(body: @response, code: 200, msg: "OK")
|
||||
|
||||
# do not set @host
|
||||
use_ui(@ui) { @cmd.send_gem(@path) }
|
||||
|
@ -325,10 +325,15 @@ class TestGemCommandsPushCommand < Gem::TestCase
|
|||
assert_match @response, @ui.output
|
||||
end
|
||||
|
||||
def test_sending_gem_to_permanent_redirect_host
|
||||
def test_sending_gem_to_host_permanent_redirect
|
||||
@host = "http://rubygems.example"
|
||||
redirected_uri = "https://rubygems.example/api/v1/gems"
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = HTTPResponseFactory.create(body: "", code: 308, msg: "Permanent Redirect", headers: { "Location" => redirected_uri })
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = HTTPResponseFactory.create(
|
||||
body: "",
|
||||
code: 308,
|
||||
msg: "Permanent Redirect",
|
||||
headers: { "Location" => redirected_uri }
|
||||
)
|
||||
|
||||
assert_raise Gem::MockGemUi::TermError do
|
||||
use_ui @ui do
|
||||
|
@ -350,7 +355,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
|
|||
|
||||
def test_sending_gem_denied
|
||||
response = "You don't have permission to push to this gem"
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = [response, 403, "Forbidden"]
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = HTTPResponseFactory.create(body: response, code: 403, msg: "Forbidden")
|
||||
@cmd.instance_variable_set :@host, @host
|
||||
|
||||
assert_raise Gem::MockGemUi::TermError do
|
||||
|
@ -364,7 +369,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
|
|||
|
||||
def test_sending_gem_key
|
||||
@response = "Successfully registered gem: freewill (1.0.0)"
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, "OK"]
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = HTTPResponseFactory.create(body: @response, code: 200, msg: "OK")
|
||||
File.open Gem.configuration.credentials_path, "a" do |f|
|
||||
f.write ":other: 701229f217cdf23b1344c7b4b54ca97"
|
||||
end
|
||||
|
@ -383,8 +388,8 @@ class TestGemCommandsPushCommand < Gem::TestCase
|
|||
response_success = "Successfully registered gem: freewill (1.0.0)"
|
||||
|
||||
@fetcher.data["#{Gem.host}/api/v1/gems"] = [
|
||||
[response_fail, 401, "Unauthorized"],
|
||||
[response_success, 200, "OK"],
|
||||
HTTPResponseFactory.create(body: response_fail, code: 401, msg: "Unauthorized"),
|
||||
HTTPResponseFactory.create(body: response_success, code: 200, msg: "OK"),
|
||||
]
|
||||
|
||||
@otp_ui = Gem::MockGemUi.new "111111\n"
|
||||
|
@ -400,7 +405,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
|
|||
|
||||
def test_otp_verified_failure
|
||||
response = "You have enabled multifactor authentication but your request doesn't have the correct OTP code. Please check it and retry."
|
||||
@fetcher.data["#{Gem.host}/api/v1/gems"] = [response, 401, "Unauthorized"]
|
||||
@fetcher.data["#{Gem.host}/api/v1/gems"] = HTTPResponseFactory.create(body: response, code: 401, msg: "Unauthorized")
|
||||
|
||||
@otp_ui = Gem::MockGemUi.new "111111\n"
|
||||
assert_raise Gem::MockGemUi::TermError do
|
||||
|
@ -421,12 +426,12 @@ class TestGemCommandsPushCommand < Gem::TestCase
|
|||
response_success = "Successfully registered gem: freewill (1.0.0)"
|
||||
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = [
|
||||
[response_mfa_enabled, 401, "Unauthorized"],
|
||||
[response_forbidden, 403, "Forbidden"],
|
||||
[response_success, 200, "OK"],
|
||||
HTTPResponseFactory.create(body: response_mfa_enabled, code: 401, msg: "Unauthorized"),
|
||||
HTTPResponseFactory.create(body: response_forbidden, code: 403, msg: "Forbidden"),
|
||||
HTTPResponseFactory.create(body: response_success, code: 200, msg: "OK"),
|
||||
]
|
||||
|
||||
@fetcher.data["#{@host}/api/v1/api_key"] = ["", 200, "OK"]
|
||||
@fetcher.data["#{@host}/api/v1/api_key"] = HTTPResponseFactory.create(body: "", code: 200, msg: "OK")
|
||||
@cmd.instance_variable_set :@host, @host
|
||||
@cmd.instance_variable_set :@scope, :push_rubygem
|
||||
|
||||
|
@ -454,16 +459,16 @@ class TestGemCommandsPushCommand < Gem::TestCase
|
|||
response_profile = "mfa: disabled\n"
|
||||
|
||||
@fetcher.data["#{@host}/api/v1/gems"] = [
|
||||
[response_success, 200, "OK"],
|
||||
HTTPResponseFactory.create(body: response_success, code: 200, msg: "OK"),
|
||||
]
|
||||
|
||||
@fetcher.data["#{@host}/api/v1/api_key"] = [
|
||||
[response_mfa_enabled, 401, "Unauthorized"],
|
||||
["", 200, "OK"],
|
||||
HTTPResponseFactory.create(body: response_mfa_enabled, code: 401, msg: "Unauthorized"),
|
||||
HTTPResponseFactory.create(body: "", code: 200, msg: "OK"),
|
||||
]
|
||||
|
||||
@fetcher.data["#{@host}/api/v1/profile/me.yaml"] = [
|
||||
[response_profile, 200, "OK"],
|
||||
HTTPResponseFactory.create(body: response_profile, code: 200, msg: "OK"),
|
||||
]
|
||||
|
||||
@cmd.instance_variable_set :@scope, :push_rubygem
|
||||
|
|
|
@ -211,7 +211,7 @@ class TestGemCommandsSigninCommand < Gem::TestCase
|
|||
# Set the expected response for the Web-API supplied
|
||||
ENV["RUBYGEMS_HOST"] = host
|
||||
data_key = "#{ENV['RUBYGEMS_HOST']}/api/v1/api_key"
|
||||
fetcher.data[data_key] = [api_key, 200, "OK"]
|
||||
fetcher.data[data_key] = HTTPResponseFactory.create(body: api_key, code: 200, msg: "OK")
|
||||
|
||||
use_ui key_name_ui do
|
||||
@cmd.execute
|
||||
|
@ -234,8 +234,8 @@ class TestGemCommandsSigninCommand < Gem::TestCase
|
|||
|
||||
def util_capture(ui_stub = nil, host = nil, api_key = nil, fetcher = Gem::FakeFetcher.new, mfa_level = "disabled", warning = nil)
|
||||
api_key ||= "a5fdbb6ba150cbb83aad2bb2fede64cf040453903"
|
||||
response = [api_key, 200, "OK"]
|
||||
profile_response = [ "mfa: #{mfa_level}\nwarning: #{warning}" , 200, "OK"]
|
||||
response = HTTPResponseFactory.create(body: api_key, code: 200, msg: "OK")
|
||||
profile_response = HTTPResponseFactory.create(body: "mfa: #{mfa_level}\nwarning: #{warning}", code: 200, msg: "OK")
|
||||
email = "you@example.com"
|
||||
password = "secret"
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ class TestGemCommandsYankCommand < Gem::TestCase
|
|||
|
||||
def test_execute
|
||||
yank_uri = "http://example/api/v1/gems/yank"
|
||||
@fetcher.data[yank_uri] = ["Successfully yanked", 200, "OK"]
|
||||
@fetcher.data[yank_uri] = HTTPResponseFactory.create(body: "Successfully yanked", code: 200, msg: "OK")
|
||||
|
||||
@cmd.options[:args] = %w[a]
|
||||
@cmd.options[:added_platform] = true
|
||||
|
@ -69,8 +69,8 @@ class TestGemCommandsYankCommand < Gem::TestCase
|
|||
response_fail = "You have enabled multifactor authentication but your request doesn't have the correct OTP code. Please check it and retry."
|
||||
yank_uri = "http://example/api/v1/gems/yank"
|
||||
@fetcher.data[yank_uri] = [
|
||||
[response_fail, 401, "Unauthorized"],
|
||||
["Successfully yanked", 200, "OK"],
|
||||
HTTPResponseFactory.create(body: response_fail, code: 401, msg: "Unauthorized"),
|
||||
HTTPResponseFactory.create(body: "Successfully yanked", code: 200, msg: "OK"),
|
||||
]
|
||||
|
||||
@cmd.options[:args] = %w[a]
|
||||
|
@ -92,7 +92,7 @@ class TestGemCommandsYankCommand < Gem::TestCase
|
|||
def test_execute_with_otp_failure
|
||||
response = "You have enabled multifactor authentication but your request doesn't have the correct OTP code. Please check it and retry."
|
||||
yank_uri = "http://example/api/v1/gems/yank"
|
||||
@fetcher.data[yank_uri] = [response, 401, "Unauthorized"]
|
||||
@fetcher.data[yank_uri] = HTTPResponseFactory.create(body: response, code: 401, msg: "Unauthorized")
|
||||
|
||||
@cmd.options[:args] = %w[a]
|
||||
@cmd.options[:added_platform] = true
|
||||
|
@ -111,7 +111,7 @@ class TestGemCommandsYankCommand < Gem::TestCase
|
|||
|
||||
def test_execute_key
|
||||
yank_uri = "http://example/api/v1/gems/yank"
|
||||
@fetcher.data[yank_uri] = ["Successfully yanked", 200, "OK"]
|
||||
@fetcher.data[yank_uri] = HTTPResponseFactory.create(body: "Successfully yanked", code: 200, msg: "OK")
|
||||
|
||||
@cmd.options[:args] = %w[a]
|
||||
@cmd.options[:version] = req("= 1.0")
|
||||
|
@ -129,7 +129,7 @@ class TestGemCommandsYankCommand < Gem::TestCase
|
|||
def test_execute_host
|
||||
host = "https://other.example"
|
||||
yank_uri = "#{host}/api/v1/gems/yank"
|
||||
@fetcher.data[yank_uri] = ["Successfully yanked", 200, "OK"]
|
||||
@fetcher.data[yank_uri] = HTTPResponseFactory.create(body: "Successfully yanked", code: 200, msg: "OK")
|
||||
|
||||
@cmd.options[:args] = %w[a]
|
||||
@cmd.options[:version] = req("= 1.0")
|
||||
|
@ -154,11 +154,11 @@ class TestGemCommandsYankCommand < Gem::TestCase
|
|||
host = "http://example"
|
||||
|
||||
@fetcher.data["#{host}/api/v1/gems/yank"] = [
|
||||
[response_forbidden, 403, "Forbidden"],
|
||||
[response_success, 200, "OK"],
|
||||
HTTPResponseFactory.create(body: response_forbidden, code: 403, msg: "Forbidden"),
|
||||
HTTPResponseFactory.create(body: response_success, code: 200, msg: "OK"),
|
||||
]
|
||||
|
||||
@fetcher.data["#{host}/api/v1/api_key"] = ["", 200, "OK"]
|
||||
@fetcher.data["#{host}/api/v1/api_key"] = HTTPResponseFactory.create(body: "", code: 200, msg: "OK")
|
||||
@cmd.options[:args] = %w[a]
|
||||
@cmd.options[:added_platform] = true
|
||||
@cmd.options[:version] = req("= 1.0")
|
||||
|
|
|
@ -93,7 +93,7 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|||
|
||||
def test_sign_in
|
||||
api_key = "a5fdbb6ba150cbb83aad2bb2fede64cf040453903"
|
||||
util_sign_in [api_key, 200, "OK"]
|
||||
util_sign_in HTTPResponseFactory.create(body: api_key, code: 200, msg: "OK")
|
||||
|
||||
assert_match %r{Enter your RubyGems.org credentials.}, @sign_in_ui.output
|
||||
assert @fetcher.last_request["authorization"]
|
||||
|
@ -106,7 +106,7 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|||
def test_sign_in_with_host
|
||||
api_key = "a5fdbb6ba150cbb83aad2bb2fede64cf040453903"
|
||||
|
||||
util_sign_in [api_key, 200, "OK"], "http://example.com", ["http://example.com"]
|
||||
util_sign_in HTTPResponseFactory.create(body: api_key, code: 200, msg: "OK"), "http://example.com", ["http://example.com"]
|
||||
|
||||
assert_match "Enter your http://example.com credentials.",
|
||||
@sign_in_ui.output
|
||||
|
@ -120,7 +120,7 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|||
def test_sign_in_with_host_nil
|
||||
api_key = "a5fdbb6ba150cbb83aad2bb2fede64cf040453903"
|
||||
|
||||
util_sign_in [api_key, 200, "OK"], nil, [nil]
|
||||
util_sign_in HTTPResponseFactory.create(body: api_key, code: 200, msg: "OK"), nil, [nil]
|
||||
|
||||
assert_match "Enter your RubyGems.org credentials.",
|
||||
@sign_in_ui.output
|
||||
|
@ -133,7 +133,7 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|||
|
||||
def test_sign_in_with_host_ENV
|
||||
api_key = "a5fdbb6ba150cbb83aad2bb2fede64cf040453903"
|
||||
util_sign_in [api_key, 200, "OK"], "http://example.com"
|
||||
util_sign_in HTTPResponseFactory.create(body: api_key, code: 200, msg: "OK"), "http://example.com"
|
||||
|
||||
assert_match "Enter your http://example.com credentials.",
|
||||
@sign_in_ui.output
|
||||
|
@ -148,7 +148,7 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|||
api_key = "a5fdbb6ba150cbb83aad2bb2fede64cf040453903"
|
||||
Gem.configuration.rubygems_api_key = api_key
|
||||
|
||||
util_sign_in [api_key, 200, "OK"]
|
||||
util_sign_in HTTPResponseFactory.create(body: api_key, code: 200, msg: "OK")
|
||||
|
||||
assert_equal "", @sign_in_ui.output
|
||||
end
|
||||
|
@ -157,7 +157,7 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|||
api_key = "a5fdbb6ba150cbb83aad2bb2fede64cf040453903"
|
||||
Gem.configuration.api_keys[:KEY] = "other"
|
||||
@cmd.options[:key] = :KEY
|
||||
util_sign_in [api_key, 200, "OK"]
|
||||
util_sign_in HTTPResponseFactory.create(body: api_key, code: 200, msg: "OK")
|
||||
|
||||
assert_equal "", @sign_in_ui.output
|
||||
end
|
||||
|
@ -169,7 +169,7 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|||
File.open Gem.configuration.credentials_path, "w" do |f|
|
||||
f.write Hash[:other_api_key, other_api_key].to_yaml
|
||||
end
|
||||
util_sign_in [api_key, 200, "OK"]
|
||||
util_sign_in HTTPResponseFactory.create(body: api_key, code: 200, msg: "OK")
|
||||
|
||||
assert_match %r{Enter your RubyGems.org credentials.}, @sign_in_ui.output
|
||||
assert_match %r{Signed in.}, @sign_in_ui.output
|
||||
|
@ -181,7 +181,7 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|||
|
||||
def test_sign_in_with_bad_credentials
|
||||
assert_raise Gem::MockGemUi::TermError do
|
||||
util_sign_in ["Access Denied.", 403, "Forbidden"]
|
||||
util_sign_in HTTPResponseFactory.create(body: "Access Denied.", code: 403, msg: "Forbidden")
|
||||
end
|
||||
|
||||
assert_match %r{Enter your RubyGems.org credentials.}, @sign_in_ui.output
|
||||
|
@ -192,7 +192,7 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|||
ENV["GEM_HOST_OTP_CODE"] = "111111"
|
||||
api_key = "a5fdbb6ba150cbb83aad2bb2fede64cf040453903"
|
||||
|
||||
util_sign_in [api_key, 200, "OK"]
|
||||
util_sign_in HTTPResponseFactory.create(body: api_key, code: 200, msg: "OK")
|
||||
|
||||
assert_match "Signed in with API key:", @sign_in_ui.output
|
||||
assert_equal "111111", @fetcher.last_request["OTP"]
|
||||
|
@ -204,7 +204,11 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|||
|
||||
util_sign_in(proc do
|
||||
@call_count ||= 0
|
||||
(@call_count += 1).odd? ? [response_fail, 401, "Unauthorized"] : [api_key, 200, "OK"]
|
||||
if (@call_count += 1).odd?
|
||||
HTTPResponseFactory.create(body: response_fail, code: 401, msg: "Unauthorized")
|
||||
else
|
||||
HTTPResponseFactory.create(body: api_key, code: 200, msg: "OK")
|
||||
end
|
||||
end, nil, [], "111111\n")
|
||||
|
||||
assert_match "You have enabled multi-factor authentication. Please enter OTP code.", @sign_in_ui.output
|
||||
|
@ -217,7 +221,7 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|||
response = "You have enabled multifactor authentication but your request doesn't have the correct OTP code. Please check it and retry."
|
||||
|
||||
assert_raise Gem::MockGemUi::TermError do
|
||||
util_sign_in [response, 401, "Unauthorized"], nil, [], "111111\n"
|
||||
util_sign_in HTTPResponseFactory.create(body: response, code: 401, msg: "Unauthorized"), nil, [], "111111\n"
|
||||
end
|
||||
|
||||
assert_match "You have enabled multi-factor authentication. Please enter OTP code.", @sign_in_ui.output
|
||||
|
@ -229,7 +233,7 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|||
def util_sign_in(response, host = nil, args = [], extra_input = "")
|
||||
email = "you@example.com"
|
||||
password = "secret"
|
||||
profile_response = [ "mfa: disabled\n" , 200, "OK"]
|
||||
profile_response = HTTPResponseFactory.create(body: "mfa: disabled\n", code: 200, msg: "OK")
|
||||
|
||||
if host
|
||||
ENV["RUBYGEMS_HOST"] = host
|
||||
|
|
|
@ -54,7 +54,7 @@ class Gem::FakeFetcher
|
|||
raise Gem::RemoteFetcher::FetchError.new("no data for #{path}", path)
|
||||
end
|
||||
|
||||
if @data[path].kind_of?(Array) && @data[path].first.kind_of?(Array)
|
||||
if @data[path].kind_of?(Array)
|
||||
@data[path].shift
|
||||
else
|
||||
@data[path]
|
||||
|
@ -63,15 +63,10 @@ class Gem::FakeFetcher
|
|||
|
||||
def create_response(uri)
|
||||
data = find_data(uri)
|
||||
if data.kind_of?(Array)
|
||||
body, code, msg = data
|
||||
HTTPResponseFactory.create(body: body, code: code, msg: msg)
|
||||
elsif data.respond_to?(:call)
|
||||
body, code, msg = data.call
|
||||
HTTPResponseFactory.create(body: body, code: code, msg: msg)
|
||||
else
|
||||
data
|
||||
end
|
||||
response = data.respond_to?(:call) ? data.call : data
|
||||
raise TypeError, "#{response.class} is not a type of Net::HTTPResponse" unless response.kind_of?(Net::HTTPResponse)
|
||||
|
||||
response
|
||||
end
|
||||
|
||||
def fetch_path(path, mtime = nil, head = false)
|
||||
|
|
Loading…
Reference in a new issue