X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b05e1bb447b7349d99ece17cd7876c08e2ade0ab..79bce4a71a58118a9003882e0ca9bbfb9d2957a9:/services/api/test/helpers/git_test_helper.rb?ds=sidebyside diff --git a/services/api/test/helpers/git_test_helper.rb b/services/api/test/helpers/git_test_helper.rb index 9abdc4f0d9..59debc5760 100644 --- a/services/api/test/helpers/git_test_helper.rb +++ b/services/api/test/helpers/git_test_helper.rb @@ -1,3 +1,7 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + require 'fileutils' require 'tmpdir' @@ -14,25 +18,26 @@ require 'tmpdir' module GitTestHelper def self.included base base.setup do - @tmpdir = Dir.mktmpdir() - system("tar", "-xC", @tmpdir, "-f", "test/test.git.tar") - Rails.configuration.git_repositories_dir = "#{@tmpdir}/test" - intdir = Rails.configuration.git_internal_dir - if not File.exist? intdir - FileUtils.mkdir_p intdir - IO.read("|git --git-dir #{intdir.to_s.shellescape} init") - assert $?.success? - end + # Extract the test repository data into the default test + # environment's Rails.configuration.Git.Repositories. (We + # don't use that config setting here, though: it doesn't seem + # worth the risk of stepping on a real git repo root.) + @tmpdir = Rails.root.join 'tmp', 'git' + FileUtils.mkdir_p @tmpdir + system("tar", "-xC", @tmpdir.to_s, "-f", "test/test.git.tar") + Rails.configuration.Git.Repositories = "#{@tmpdir}/test" + Rails.configuration.Containers.JobsAPI.GitInternalDir = "#{@tmpdir}/internal.git" end base.teardown do - FileUtils.remove_entry @tmpdir, true - FileUtils.remove_entry Commit.cache_dir_base, true + FileUtils.remove_entry CommitsHelper.cache_dir_base, true + FileUtils.mkdir_p @tmpdir + system("tar", "-xC", @tmpdir.to_s, "-f", "test/test.git.tar") end end def internal_tag tag - IO.read "|git --git-dir #{Rails.configuration.git_internal_dir.shellescape} log --format=format:%H -n1 #{tag.shellescape}" + IO.read "|git --git-dir #{Rails.configuration.Containers.JobsAPI.GitInternalDir.shellescape} log --format=format:%H -n1 #{tag.shellescape}" end # Intercept fetch_remote_repository and fetch from a specified url @@ -43,10 +48,10 @@ module GitTestHelper if fakeurl.is_a? Symbol fakeurl = 'file://' + repositories(fakeurl).server_path end - Commit.expects(:fetch_remote_repository).once.with do |gitdir, giturl| + CommitsHelper.expects(:fetch_remote_repository).once.with do |gitdir, giturl| if giturl == url - Commit.unstub(:fetch_remote_repository) - Commit.fetch_remote_repository gitdir, fakeurl + CommitsHelper.unstub(:fetch_remote_repository) + CommitsHelper.fetch_remote_repository gitdir, fakeurl true end end