summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Thomas <nick@gitlab.com>2019-05-09 15:06:54 +0100
committerNick Thomas <nick@gitlab.com>2019-05-09 15:06:54 +0100
commit8bd6d0cf8b7e0fa010a57a3c7862318ec5b884f9 (patch)
treec27005bcb175e336b9f085b6fd00abb362b9a889
parent269110b9bbce21cac2b5ef328e5e20618bd5181f (diff)
downloadgitlab-ce-8bd6d0cf8b7e0fa010a57a3c7862318ec5b884f9.tar.gz
Whitelist Gitaly N+1 for forking in tests
This helper is right on the limit of the number of calls being made. When the request store is enabled, and Sidekiq is running in inline mode, just a couple of additional actions result in it being pushed over the line. The operation is entirely artificial, since in reality we'd perform these requests in multiple separate processes, so just whitelist it for now.
-rw-r--r--spec/support/helpers/project_forks_helper.rb23
1 files changed, 17 insertions, 6 deletions
diff --git a/spec/support/helpers/project_forks_helper.rb b/spec/support/helpers/project_forks_helper.rb
index 9a86560da2a..bcb11a09b36 100644
--- a/spec/support/helpers/project_forks_helper.rb
+++ b/spec/support/helpers/project_forks_helper.rb
@@ -1,5 +1,11 @@
module ProjectForksHelper
def fork_project(project, user = nil, params = {})
+ Gitlab::GitalyClient.allow_n_plus_1_calls do
+ fork_project_direct(project, user, params)
+ end
+ end
+
+ def fork_project_direct(project, user = nil, params = {})
# Load the `fork_network` for the project to fork as there might be one that
# wasn't loaded yet.
project.reload unless project.fork_network
@@ -44,11 +50,16 @@ module ProjectForksHelper
end
def fork_project_with_submodules(project, user = nil, params = {})
- forked_project = fork_project(project, user, params)
- TestEnv.copy_repo(forked_project,
- bare_repo: TestEnv.forked_repo_path_bare,
- refs: TestEnv::FORKED_BRANCH_SHA)
- forked_project.repository.after_import
- forked_project
+ Gitlab::GitalyClient.allow_n_plus_1_calls do
+ forked_project = fork_project_direct(project, user, params)
+ TestEnv.copy_repo(
+ forked_project,
+ bare_repo: TestEnv.forked_repo_path_bare,
+ refs: TestEnv::FORKED_BRANCH_SHA
+ )
+ forked_project.repository.after_import
+
+ forked_project
+ end
end
end