1 # Copyright (C) The Arvados Authors. All rights reserved.
3 # SPDX-License-Identifier: AGPL-3.0
8 # Commit log for "foo" repository in test.git.tar
9 # master is the main branch
10 # b1 is a branch off of master
19 def self.included base
21 # Extract the test repository data into the default test
22 # environment's Rails.configuration.Git.Repositories. (We
23 # don't use that config setting here, though: it doesn't seem
24 # worth the risk of stepping on a real git repo root.)
25 @tmpdir = Rails.root.join 'tmp', 'git'
26 FileUtils.mkdir_p @tmpdir
27 system("tar", "-xC", @tmpdir.to_s, "-f", "test/test.git.tar")
28 Rails.configuration.Git.Repositories = "#{@tmpdir}/test"
29 Rails.configuration.Containers.JobsAPI.GitInternalDir = "#{@tmpdir}/internal.git"
33 FileUtils.remove_entry CommitsHelper.cache_dir_base, true
34 FileUtils.mkdir_p @tmpdir
35 system("tar", "-xC", @tmpdir.to_s, "-f", "test/test.git.tar")
40 IO.read "|git --git-dir #{Rails.configuration.Containers.JobsAPI.GitInternalDir.shellescape} log --format=format:%H -n1 #{tag.shellescape}"
43 # Intercept fetch_remote_repository and fetch from a specified url
44 # or local fixture instead of the remote url requested. fakeurl can
45 # be a url (probably starting with file:///) or the name of a
46 # fixture (as a symbol)
47 def fetch_remote_from_local_repo url, fakeurl
48 if fakeurl.is_a? Symbol
49 fakeurl = 'file://' + repositories(fakeurl).server_path
51 CommitsHelper.expects(:fetch_remote_repository).once.with do |gitdir, giturl|
53 CommitsHelper.unstub(:fetch_remote_repository)
54 CommitsHelper.fetch_remote_repository gitdir, fakeurl