Commit 6dbf634e authored by Mark Lapierre's avatar Mark Lapierre

Fix push file size test

And remove it from quarantine
parent f288447b
# frozen_string_literal: true
module QA
# Failure issue: https://gitlab.com/gitlab-org/quality/nightly/issues/113
context 'Create', :requires_admin, :quarantine do
context 'Create', :requires_admin do
describe 'push after setting the file size limit via admin/application_settings' do
before(:context) do
@project = Resource::Project.fabricate_via_api! do |p|
......@@ -21,15 +20,22 @@ module QA
it 'push successful when the file size is under the limit' do
set_file_size_limit(5)
retry_on_fail do
push = push_new_file('oversize_file_1.bin', wait_for_push: true)
expect(push.output).not_to have_content 'remote: fatal: pack exceeds maximum allowed size'
end
end
it 'push fails when the file size is above the limit' do
set_file_size_limit(1)
retry_on_fail do
expect { push_new_file('oversize_file_2.bin', wait_for_push: false) }
.to raise_error(QA::Git::Repository::RepositoryCommandError, /remote: fatal: pack exceeds maximum allowed size/)
end
end
def set_file_size_limit(limit)
request = Runtime::API::Request.new(@api_client, '/application/settings')
......@@ -54,6 +60,22 @@ module QA
output
end
# Application settings are cached for up to a minute. So when we change
# the `receive_max_input_size` setting, the setting might not be applied
# for minute. This caused the tests to intermittently fail.
# See https://gitlab.com/gitlab-org/quality/nightly/issues/113
#
# Instead of waiting a minute after changing the setting, we retry the
# attempt to push if it fails. Most of the time the setting is updated in
# under a minute, i.e., in fewer than 6 attempts with a 10 second sleep
# between attempts.
# See https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/30233#note_188616863
def retry_on_fail
Support::Retrier.retry_on_exception(max_attempts: 6, reload_page: nil, sleep_interval: 10) do
yield
end
end
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment