summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Van Landuyt <bob@vanlanduyt.co>2017-08-07 14:00:09 +0200
committerBob Van Landuyt <bob@vanlanduyt.co>2017-08-07 14:37:01 +0200
commitfaabcbd3ae06d5587713cbb466d1f3666aeaa96b (patch)
treece611c19fb9dfca7cd476e979410814ef7c7afc2
parent7de6f742dc63e10212b7d58b92176456ff354abc (diff)
downloadgitlab-ce-faabcbd3ae06d5587713cbb466d1f3666aeaa96b.tar.gz
GRPC::Unavailable (< GRPC::BadStatus) is wrapped in a CommandError
-rw-r--r--app/controllers/application_controller.rb2
-rw-r--r--spec/models/repository_spec.rb35
2 files changed, 19 insertions, 18 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 34d948bc3d2..5b448008a1b 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -52,7 +52,7 @@ class ApplicationController < ActionController::Base
head :forbidden, retry_after: Gitlab::Auth::UniqueIpsLimiter.config.unique_ips_limit_time_window
end
- rescue_from Gitlab::Git::Storage::Inaccessible, GRPC::Unavailable do |exception|
+ rescue_from Gitlab::Git::Storage::Inaccessible, GRPC::Unavailable, Gitlab::Git::CommandError do |exception|
Raven.capture_exception(exception) if sentry_enabled?
log_exception(exception)
diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb
index b2039291699..4ddda5b638c 100644
--- a/spec/models/repository_spec.rb
+++ b/spec/models/repository_spec.rb
@@ -30,7 +30,8 @@ describe Repository, models: true do
def expect_to_raise_storage_error
expect { yield }.to raise_error do |exception|
- expect(exception.class).to be_in([Gitlab::Git::Storage::Inaccessible, GRPC::Unavailable])
+ storage_exceptions = [Gitlab::Git::Storage::Inaccessible, Gitlab::Git::CommandError, GRPC::Unavailable]
+ expect(exception.class).to be_in(storage_exceptions)
end
end
@@ -158,6 +159,14 @@ describe Repository, models: true do
subject { repository.last_commit_for_path(sample_commit.id, '.gitignore').id }
it { is_expected.to eq('c1acaa58bbcbc3eafe538cb8274ba387047b69f8') }
+
+ describe 'when storage is broken', broken_storage: true do
+ it 'should raise a storage error' do
+ expect_to_raise_storage_error do
+ broken_repository.last_commit_id_for_path(sample_commit.id, '.gitignore')
+ end
+ end
+ end
end
context 'when Gitaly feature last_commit_for_path is enabled' do
@@ -167,14 +176,6 @@ describe Repository, models: true do
context 'when Gitaly feature last_commit_for_path is disabled', skip_gitaly_mock: true do
it_behaves_like 'getting last commit for path'
end
-
- describe 'when storage is broken', broken_storage: true do
- it 'should raise a storage error' do
- expect_to_raise_storage_error do
- broken_repository.last_commit_for_path(sample_commit.id, '.gitignore').id
- end
- end
- end
end
describe '#last_commit_id_for_path' do
@@ -192,6 +193,14 @@ describe Repository, models: true do
expect(cache).to receive(:fetch).with(key).and_return('c1acaa5')
is_expected.to eq('c1acaa5')
end
+
+ describe 'when storage is broken', broken_storage: true do
+ it 'should raise a storage error' do
+ expect_to_raise_storage_error do
+ broken_repository.last_commit_for_path(sample_commit.id, '.gitignore').id
+ end
+ end
+ end
end
context 'when Gitaly feature last_commit_for_path is enabled' do
@@ -201,14 +210,6 @@ describe Repository, models: true do
context 'when Gitaly feature last_commit_for_path is disabled', skip_gitaly_mock: true do
it_behaves_like 'getting last commit ID for path'
end
-
- describe 'when storage is broken', broken_storage: true do
- it 'should raise a storage error' do
- expect_to_raise_storage_error do
- broken_repository.last_commit_id_for_path(sample_commit.id, '.gitignore')
- end
- end
- end
end
describe '#commits' do