Skip to content

Commit

Permalink
test: don't hide online skipped tests behind definition-time conditio…
Browse files Browse the repository at this point in the history
…nals

Instead do show them as skipped to more accurately represent to the caller that
we have tests which are being skipped.
  • Loading branch information
carlosmn committed Sep 1, 2021
1 parent b4199b6 commit 3b099c5
Show file tree
Hide file tree
Showing 6 changed files with 207 additions and 192 deletions.
93 changes: 49 additions & 44 deletions test/online/clone_test.rb
@@ -1,66 +1,71 @@
require 'test_helper'

class OnlineCloneTest < Rugged::OnlineTestCase
if git_creds?
def test_clone_over_git
Dir.mktmpdir do |dir|
repo = Rugged::Repository.clone_at(ENV['GITTEST_REMOTE_GIT_URL'], dir)
def test_clone_over_git
skip unless git_creds?
Dir.mktmpdir do |dir|
repo = Rugged::Repository.clone_at(ENV['GITTEST_REMOTE_GIT_URL'], dir)

assert_instance_of Rugged::Repository, repo
end
assert_instance_of Rugged::Repository, repo
end
end

if Rugged.features.include?(:ssh) && ssh_creds?
def test_clone_over_ssh_with_credentials
Dir.mktmpdir do |dir|
repo = Rugged::Repository.clone_at(ENV['GITTEST_REMOTE_SSH_URL'], dir, {
credentials: ssh_key_credential
})
def test_clone_over_ssh_with_credentials
skip unless Rugged.features.include?(:ssh) && ssh_creds?

assert_instance_of Rugged::Repository, repo
end
Dir.mktmpdir do |dir|
repo = Rugged::Repository.clone_at(ENV['GITTEST_REMOTE_SSH_URL'], dir, {
credentials: ssh_key_credential
})

assert_instance_of Rugged::Repository, repo
end
end

def test_clone_over_ssh_with_credentials_from_agent
Dir.mktmpdir do |dir|
repo = Rugged::Repository.clone_at(ENV['GITTEST_REMOTE_SSH_URL'], dir, {
credentials: ssh_key_credential_from_agent
})
def test_clone_over_ssh_with_credentials_from_agent
skip unless Rugged.features.include?(:ssh) && ssh_creds?

assert_instance_of Rugged::Repository, repo
end
Dir.mktmpdir do |dir|
repo = Rugged::Repository.clone_at(ENV['GITTEST_REMOTE_SSH_URL'], dir, {
credentials: ssh_key_credential_from_agent
})

assert_instance_of Rugged::Repository, repo
end
end

def test_clone_over_ssh_with_credentials_callback
Dir.mktmpdir do |dir|
repo = Rugged::Repository.clone_at(ENV['GITTEST_REMOTE_SSH_URL'], dir, {
credentials: lambda { |url, username, allowed_types|
return ssh_key_credential
}
})
def test_clone_over_ssh_with_credentials_callback
skip unless Rugged.features.include?(:ssh) && ssh_creds?

assert_instance_of Rugged::Repository, repo
end
Dir.mktmpdir do |dir|
repo = Rugged::Repository.clone_at(ENV['GITTEST_REMOTE_SSH_URL'], dir, {
credentials: lambda { |url, username, allowed_types|
return ssh_key_credential
}
})

assert_instance_of Rugged::Repository, repo
end
end

def test_clone_callback_args_with_username
Dir.mktmpdir do |dir|
url, username, allowed_types = nil, nil, nil
def test_clone_callback_args_with_username
skip unless Rugged.features.include?(:ssh) && ssh_creds?

assert_raises Rugged::SshError do
Rugged::Repository.clone_at("git@github.com:libgit2/TestGitRepository", dir, {
credentials: lambda { |*args|
url, username, allowed_types = *args
return nil
}
})
end
Dir.mktmpdir do |dir|
url, username, allowed_types = nil, nil, nil

assert_equal "git@github.com:libgit2/TestGitRepository", url
assert_equal "git", username
assert_equal [:ssh_key].sort, allowed_types.sort
assert_raises Rugged::SshError do
Rugged::Repository.clone_at("git@github.com:libgit2/TestGitRepository", dir, {
credentials: lambda { |*args|
url, username, allowed_types = *args
return nil
}
})
end

assert_equal "git@github.com:libgit2/TestGitRepository", url
assert_equal "git", username
assert_equal [:ssh_key].sort, allowed_types.sort
end
end
end
149 changes: 79 additions & 70 deletions test/online/fetch_test.rb
Expand Up @@ -5,100 +5,109 @@ def setup
@repo = FixtureRepo.empty
end

if git_creds?
def test_fetch_over_git
@repo.remotes.create("origin", ENV['GITTEST_REMOTE_GIT_URL'])
def test_fetch_over_git
skip unless git_creds?
@repo.remotes.create("origin", ENV['GITTEST_REMOTE_GIT_URL'])

@repo.fetch("origin")
end
@repo.fetch("origin")
end

if Rugged.features.include?(:https)
def test_fetch_over_https
@repo.remotes.create("origin", "https://github.com/libgit2/TestGitRepository.git")
def test_fetch_over_https
skip unless Rugged.features.include?(:https)

@repo.fetch("origin")
@repo.remotes.create("origin", "https://github.com/libgit2/TestGitRepository.git")

assert_equal [
"refs/remotes/origin/first-merge",
"refs/remotes/origin/master",
"refs/remotes/origin/no-parent",
"refs/tags/annotated_tag",
"refs/tags/blob",
"refs/tags/commit_tree"
], @repo.refs.map(&:name).sort
end
@repo.fetch("origin")

assert_equal [
"refs/remotes/origin/first-merge",
"refs/remotes/origin/master",
"refs/remotes/origin/no-parent",
"refs/tags/annotated_tag",
"refs/tags/blob",
"refs/tags/commit_tree"
], @repo.refs.map(&:name).sort
end

def test_fetch_over_https_with_certificate_callback
@repo.remotes.create("origin", "https://github.com/libgit2/TestGitRepository.git")
def test_fetch_over_https_with_certificate_callback
skip unless Rugged.features.include?(:https)

@repo.remotes.create("origin", "https://github.com/libgit2/TestGitRepository.git")

args = {}
@repo.fetch(
"origin",
certificate_check: lambda { |valid, host|
args[:valid] = valid
args[:host] = host
true
}
)

assert_equal({ valid: true, host: "github.com" }, args)
end

args = {}
def test_fetch_over_https_with_certificate_callback_fail
skip unless Rugged.features.include?(:https)

@repo.remotes.create("origin", "https://github.com/libgit2/TestGitRepository.git")

exception = assert_raises Rugged::HTTPError do
@repo.fetch(
"origin",
certificate_check: lambda { |valid, host|
args[:valid] = valid
args[:host] = host
true
}
certificate_check: lambda { |valid, host| false }
)

assert_equal({ valid: true, host: "github.com" }, args)
end

def test_fetch_over_https_with_certificate_callback_fail
@repo.remotes.create("origin", "https://github.com/libgit2/TestGitRepository.git")
assert_equal "user rejected certificate for github.com", exception.message
end

def test_fetch_over_https_with_certificate_callback_exception
skip unless Rugged.features.include?(:https)

exception = assert_raises Rugged::HTTPError do
@repo.fetch(
"origin",
certificate_check: lambda { |valid, host| false }
)
end
@repo.remotes.create("origin", "https://github.com/libgit2/TestGitRepository.git")

assert_equal "user rejected certificate for github.com", exception.message
exception = assert_raises RuntimeError do
@repo.fetch(
"origin",
certificate_check: lambda { |valid, host|
raise "Exception from callback"
}
)
end

def test_fetch_over_https_with_certificate_callback_exception
@repo.remotes.create("origin", "https://github.com/libgit2/TestGitRepository.git")
assert_equal "Exception from callback", exception.message
end

exception = assert_raises RuntimeError do
@repo.fetch(
"origin",
certificate_check: lambda { |valid, host|
raise "Exception from callback"
}
)
end
def test_fetch_over_ssh_with_credentials
skip unless Rugged.features.include?(:ssh) && ssh_creds?

assert_equal "Exception from callback", exception.message
end
@repo.remotes.create("origin", ENV['GITTEST_REMOTE_SSH_URL'])

@repo.fetch("origin", {
credentials: ssh_key_credential
})
end

if Rugged.features.include?(:ssh) && ssh_creds?
def test_fetch_over_ssh_with_credentials
@repo.remotes.create("origin", ENV['GITTEST_REMOTE_SSH_URL'])
def test_fetch_over_ssh_with_credentials_from_agent
skip unless Rugged.features.include?(:ssh) && ssh_creds?

@repo.fetch("origin", {
credentials: ssh_key_credential
})
end
@repo.remotes.create("origin", ENV['GITTEST_REMOTE_SSH_URL'])

def test_fetch_over_ssh_with_credentials_from_agent
@repo.remotes.create("origin", ENV['GITTEST_REMOTE_SSH_URL'])
@repo.fetch("origin", {
credentials: ssh_key_credential_from_agent
})
end

@repo.fetch("origin", {
credentials: ssh_key_credential_from_agent
})
end
def test_fetch_over_ssh_with_credentials_callback
skip unless Rugged.features.include?(:ssh) && ssh_creds?

def test_fetch_over_ssh_with_credentials_callback
@repo.remotes.create("origin", ENV['GITTEST_REMOTE_SSH_URL'])
@repo.remotes.create("origin", ENV['GITTEST_REMOTE_SSH_URL'])

@repo.fetch("origin",
credentials: lambda { |url, username, allowed_types|
return ssh_key_credential
}
)
end
@repo.fetch("origin",
credentials: lambda { |url, username, allowed_types|
return ssh_key_credential
}
)
end
end
64 changes: 32 additions & 32 deletions test/online/ls_test.rb
Expand Up @@ -5,43 +5,43 @@ def setup
@repo = FixtureRepo.from_libgit2("push_src")
end

if Rugged.features.include?(:https)
def test_ls_over_https
remote = @repo.remotes.create("origin", "https://github.com/libgit2/TestGitRepository.git")

assert_equal [
{ :local? => false, :oid => "49322bb17d3acc9146f98c97d078513228bbf3c0", :loid => nil, :name => "HEAD" },
{ :local? => false, :oid => "0966a434eb1a025db6b71485ab63a3bfbea520b6", :loid => nil, :name => "refs/heads/first-merge" },
{ :local? => false, :oid => "49322bb17d3acc9146f98c97d078513228bbf3c0", :loid => nil, :name => "refs/heads/master" },
{ :local? => false, :oid => "42e4e7c5e507e113ebbb7801b16b52cf867b7ce1", :loid => nil, :name => "refs/heads/no-parent" },
{ :local? => false, :oid => "d96c4e80345534eccee5ac7b07fc7603b56124cb", :loid => nil, :name => "refs/tags/annotated_tag" },
{ :local? => false, :oid => "c070ad8c08840c8116da865b2d65593a6bb9cd2a", :loid => nil, :name => "refs/tags/annotated_tag^{}" },
{ :local? => false, :oid => "55a1a760df4b86a02094a904dfa511deb5655905", :loid => nil, :name => "refs/tags/blob" },
{ :local? => false, :oid => "8f50ba15d49353813cc6e20298002c0d17b0a9ee", :loid => nil, :name => "refs/tags/commit_tree" },
{ :local? => false, :oid => "6e0c7bdb9b4ed93212491ee778ca1c65047cab4e", :loid => nil, :name => "refs/tags/nearly-dangling"}
], remote.ls.to_a
end
def test_ls_over_https
skip unless Rugged.features.include?(:https)

remote = @repo.remotes.create("origin", "https://github.com/libgit2/TestGitRepository.git")

assert_equal [
{ :local? => false, :oid => "49322bb17d3acc9146f98c97d078513228bbf3c0", :loid => nil, :name => "HEAD" },
{ :local? => false, :oid => "0966a434eb1a025db6b71485ab63a3bfbea520b6", :loid => nil, :name => "refs/heads/first-merge" },
{ :local? => false, :oid => "49322bb17d3acc9146f98c97d078513228bbf3c0", :loid => nil, :name => "refs/heads/master" },
{ :local? => false, :oid => "42e4e7c5e507e113ebbb7801b16b52cf867b7ce1", :loid => nil, :name => "refs/heads/no-parent" },
{ :local? => false, :oid => "d96c4e80345534eccee5ac7b07fc7603b56124cb", :loid => nil, :name => "refs/tags/annotated_tag" },
{ :local? => false, :oid => "c070ad8c08840c8116da865b2d65593a6bb9cd2a", :loid => nil, :name => "refs/tags/annotated_tag^{}" },
{ :local? => false, :oid => "55a1a760df4b86a02094a904dfa511deb5655905", :loid => nil, :name => "refs/tags/blob" },
{ :local? => false, :oid => "8f50ba15d49353813cc6e20298002c0d17b0a9ee", :loid => nil, :name => "refs/tags/commit_tree" },
{ :local? => false, :oid => "6e0c7bdb9b4ed93212491ee778ca1c65047cab4e", :loid => nil, :name => "refs/tags/nearly-dangling"}
], remote.ls.to_a
end

if git_creds?
def test_ls_over_git
remote = @repo.remotes.create("origin", ENV['GITTEST_REMOTE_GIT_URL'])
remote.push(["refs/heads/b1:refs/heads/b1"])
def test_ls_over_git
skip unless git_creds?

assert_equal [
{ :local? => false, :oid => "a78705c3b2725f931d3ee05348d83cc26700f247", :loid => nil, :name => "refs/heads/b1" }
], remote.ls.to_a
end
remote = @repo.remotes.create("origin", ENV['GITTEST_REMOTE_GIT_URL'])
remote.push(["refs/heads/b1:refs/heads/b1"])

assert_equal [
{ :local? => false, :oid => "a78705c3b2725f931d3ee05348d83cc26700f247", :loid => nil, :name => "refs/heads/b1" }
], remote.ls.to_a
end

if Rugged.features.include?(:ssh) && ssh_creds?
def test_ls_over_ssh_with_credentials
remote = @repo.remotes.create("origin", ENV['GITTEST_REMOTE_SSH_URL'])
remote.push(["refs/heads/b1:refs/heads/b1"], credentials: ssh_key_credential)
def test_ls_over_ssh_with_credentials
skip unless Rugged.features.include?(:ssh) && ssh_creds?

remote = @repo.remotes.create("origin", ENV['GITTEST_REMOTE_SSH_URL'])
remote.push(["refs/heads/b1:refs/heads/b1"], credentials: ssh_key_credential)

assert_equal [
{ :local? => false, :oid => "a78705c3b2725f931d3ee05348d83cc26700f247", :loid => nil, :name => "refs/heads/b1" }
], remote.ls(credentials: ssh_key_credential).to_a
end
assert_equal [
{ :local? => false, :oid => "a78705c3b2725f931d3ee05348d83cc26700f247", :loid => nil, :name => "refs/heads/b1" }
], remote.ls(credentials: ssh_key_credential).to_a
end
end

0 comments on commit 3b099c5

Please sign in to comment.