diff options
author | Yorick Peterse <yorickpeterse@gmail.com> | 2018-01-08 15:29:23 +0100 |
---|---|---|
committer | Yorick Peterse <yorickpeterse@gmail.com> | 2018-01-09 15:35:12 +0100 |
commit | 6d525c8f065e3a0419f1718587182ffb4e6465f3 (patch) | |
tree | 036d19c988e1a0bc38dbf855b70c53022108e333 | |
parent | 912c5ab2847aa20857d29db9d0a7111367f2f32a (diff) | |
download | gitlab-ce-bullet-test-suite.tar.gz |
Allow N+1 in NamespacelessProjectDestroyWorker specbullet-test-suite
-rw-r--r-- | lib/gitlab/database.rb | 11 | ||||
-rw-r--r-- | spec/workers/namespaceless_project_destroy_worker_spec.rb | 16 |
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 |