summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorick Peterse <yorickpeterse@gmail.com>2018-01-08 15:29:23 +0100
committerYorick Peterse <yorickpeterse@gmail.com>2018-01-09 15:35:12 +0100
commit6d525c8f065e3a0419f1718587182ffb4e6465f3 (patch)
tree036d19c988e1a0bc38dbf855b70c53022108e333
parent912c5ab2847aa20857d29db9d0a7111367f2f32a (diff)
downloadgitlab-ce-bullet-test-suite.tar.gz
Allow N+1 in NamespacelessProjectDestroyWorker specbullet-test-suite
-rw-r--r--lib/gitlab/database.rb11
-rw-r--r--spec/workers/namespaceless_project_destroy_worker_spec.rb16
2 files changed, 21 insertions, 6 deletions
diff --git a/lib/gitlab/database.rb b/lib/gitlab/database.rb
index e51794fef99..cc0337ec890 100644
--- a/lib/gitlab/database.rb
+++ b/lib/gitlab/database.rb
@@ -9,6 +9,17 @@ module Gitlab
# https://dev.mysql.com/doc/refman/5.7/en/datetime.html
MAX_TIMESTAMP_VALUE = Time.at((1 << 31) - 1).freeze
+ def self.allow_n_plus_1_calls
+ enabled = Bullet.enable?
+
+ begin
+ Bullet.enable = false
+ yield
+ ensure
+ Bullet.enable = enabled
+ end
+ end
+
def self.config
ActiveRecord::Base.configurations[Rails.env]
end
diff --git a/spec/workers/namespaceless_project_destroy_worker_spec.rb b/spec/workers/namespaceless_project_destroy_worker_spec.rb
index ed8cedc0079..0156aeabbad 100644
--- a/spec/workers/namespaceless_project_destroy_worker_spec.rb
+++ b/spec/workers/namespaceless_project_destroy_worker_spec.rb
@@ -24,9 +24,11 @@ describe NamespacelessProjectDestroyWorker do
context 'project has no namespace' do
let!(:project) do
- project = build(:project, namespace_id: nil)
- project.save(validate: false)
- project
+ Gitlab::Database.allow_n_plus_1_calls do
+ project = build(:project, namespace_id: nil)
+ project.save(validate: false)
+ project
+ end
end
context 'project not a fork of another project' do
@@ -82,9 +84,11 @@ describe NamespacelessProjectDestroyWorker do
context 'project has non-existing namespace' do
let!(:project) do
- project = build(:project, namespace_id: Namespace.maximum(:id).to_i.succ)
- project.save(validate: false)
- project
+ Gitlab::Database.allow_n_plus_1_calls do
+ project = build(:project, namespace_id: Namespace.maximum(:id).to_i.succ)
+ project.save(validate: false)
+ project
+ end
end
it 'deletes the project' do