diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-20 17:22:11 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-20 17:22:11 +0300 |
commit | 0c872e02b2c822e3397515ec324051ff540f0cd5 (patch) | |
tree | ce2fb6ce7030e4dad0f4118d21ab6453e5938cdd /spec/uploaders | |
parent | f7e05a6853b12f02911494c4b3fe53d9540d74fc (diff) |
Add latest changes from gitlab-org/gitlab@15-7-stable-eev15.7.0-rc42
Diffstat (limited to 'spec/uploaders')
13 files changed, 18 insertions, 198 deletions
diff --git a/spec/uploaders/ci/secure_file_uploader_spec.rb b/spec/uploaders/ci/secure_file_uploader_spec.rb index 4bac591704b..ec7bbf637a1 100644 --- a/spec/uploaders/ci/secure_file_uploader_spec.rb +++ b/spec/uploaders/ci/secure_file_uploader_spec.rb @@ -46,12 +46,6 @@ RSpec.describe Ci::SecureFileUploader do end end - describe '.background_upload_enabled?' do - it 'returns false' do - expect(described_class.background_upload_enabled?).to eq(false) - end - end - describe '.default_store' do context 'when object storage is enabled' do it 'returns REMOTE' do diff --git a/spec/uploaders/external_diff_uploader_spec.rb b/spec/uploaders/external_diff_uploader_spec.rb index ee23c1e36b7..a889181b72c 100644 --- a/spec/uploaders/external_diff_uploader_spec.rb +++ b/spec/uploaders/external_diff_uploader_spec.rb @@ -24,29 +24,6 @@ RSpec.describe ExternalDiffUploader do store_dir: %r[merge_request_diffs/mr-\d+] end - describe 'migration to object storage' do - context 'with object storage disabled' do - it "is skipped" do - expect(ObjectStorage::BackgroundMoveWorker).not_to receive(:perform_async) - - diff - end - end - - context 'with object storage enabled' do - before do - stub_external_diffs_setting(enabled: true) - stub_external_diffs_object_storage(background_upload: true) - end - - it 'is scheduled to run after creation' do - expect(ObjectStorage::BackgroundMoveWorker).to receive(:perform_async).with(described_class.name, 'MergeRequestDiff', :external_diff, kind_of(Numeric)) - - diff - end - end - end - describe 'remote file' do context 'with object storage enabled' do before do @@ -57,8 +34,6 @@ RSpec.describe ExternalDiffUploader do end it 'can store file remotely' do - allow(ObjectStorage::BackgroundMoveWorker).to receive(:perform_async) - diff expect(diff.external_diff_store).to eq(described_class::Store::REMOTE) diff --git a/spec/uploaders/file_mover_spec.rb b/spec/uploaders/file_mover_spec.rb index 3b8c6f6f881..13a5a7e0549 100644 --- a/spec/uploaders/file_mover_spec.rb +++ b/spec/uploaders/file_mover_spec.rb @@ -57,12 +57,6 @@ RSpec.describe FileMover do .to change { tmp_upload.reload.attributes.values_at('model_id', 'model_type') } .from([user.id, 'User']).to([snippet.id, 'Snippet']) end - - it 'schedules a background migration' do - expect_any_instance_of(PersonalFileUploader).to receive(:schedule_background_upload).once - - subject - end end context 'when update_markdown fails' do diff --git a/spec/uploaders/gitlab_uploader_spec.rb b/spec/uploaders/gitlab_uploader_spec.rb index db70441aaf5..f62ab726631 100644 --- a/spec/uploaders/gitlab_uploader_spec.rb +++ b/spec/uploaders/gitlab_uploader_spec.rb @@ -6,7 +6,7 @@ require 'carrierwave/storage/fog' RSpec.describe GitlabUploader do let(:uploader_class) { Class.new(described_class) } - subject { uploader_class.new(double) } + subject(:uploader) { uploader_class.new(double) } describe '#file_storage?' do context 'when file storage is used' do @@ -161,6 +161,19 @@ RSpec.describe GitlabUploader do end end + describe '#multi_read' do + let(:file) { fixture_file_upload('spec/fixtures/trace/sample_trace', 'text/plain') } + let(:byte_offsets) { [[4, 10], [17, 29]] } + + subject { uploader.multi_read(byte_offsets) } + + before do + uploader.store!(file) + end + + it { is_expected.to eq(%w[Running gitlab-runner]) } + end + describe '.version' do subject { uploader_class.version } diff --git a/spec/uploaders/lfs_object_uploader_spec.rb b/spec/uploaders/lfs_object_uploader_spec.rb index d1a3fb243ac..b85892a42b5 100644 --- a/spec/uploaders/lfs_object_uploader_spec.rb +++ b/spec/uploaders/lfs_object_uploader_spec.rb @@ -25,28 +25,6 @@ RSpec.describe LfsObjectUploader do store_dir: %r[\h{2}/\h{2}] end - describe 'migration to object storage' do - context 'with object storage disabled' do - it "is skipped" do - expect(ObjectStorage::BackgroundMoveWorker).not_to receive(:perform_async) - - lfs_object - end - end - - context 'with object storage enabled' do - before do - stub_lfs_object_storage(background_upload: true) - end - - it 'is scheduled to run after creation' do - expect(ObjectStorage::BackgroundMoveWorker).to receive(:perform_async).with(described_class.name, 'LfsObject', :file, kind_of(Numeric)) - - lfs_object - end - end - end - describe 'remote file' do let(:lfs_object) { create(:lfs_object, :object_storage, :with_file) } @@ -56,8 +34,6 @@ RSpec.describe LfsObjectUploader do end it 'can store file remotely' do - allow(ObjectStorage::BackgroundMoveWorker).to receive(:perform_async) - lfs_object expect(lfs_object.file_store).to eq(described_class::Store::REMOTE) diff --git a/spec/uploaders/packages/composer/cache_uploader_spec.rb b/spec/uploaders/packages/composer/cache_uploader_spec.rb index a4ba4cc2a1e..7ceaa24f463 100644 --- a/spec/uploaders/packages/composer/cache_uploader_spec.rb +++ b/spec/uploaders/packages/composer/cache_uploader_spec.rb @@ -33,8 +33,6 @@ RSpec.describe Packages::Composer::CacheUploader do end it 'can store file remotely' do - allow(ObjectStorage::BackgroundMoveWorker).to receive(:perform_async) - cache_file expect(cache_file.file_store).to eq(described_class::Store::REMOTE) diff --git a/spec/uploaders/packages/debian/component_file_uploader_spec.rb b/spec/uploaders/packages/debian/component_file_uploader_spec.rb index de60ec94acf..bee82fb2715 100644 --- a/spec/uploaders/packages/debian/component_file_uploader_spec.rb +++ b/spec/uploaders/packages/debian/component_file_uploader_spec.rb @@ -38,8 +38,6 @@ RSpec.describe Packages::Debian::ComponentFileUploader do end it 'can store file remotely' do - allow(ObjectStorage::BackgroundMoveWorker).to receive(:perform_async) - component_file expect(component_file.file_store).to eq(described_class::Store::REMOTE) diff --git a/spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb b/spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb index dbbf69e3c8d..96655edb186 100644 --- a/spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb +++ b/spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb @@ -38,8 +38,6 @@ RSpec.describe Packages::Debian::DistributionReleaseFileUploader do end it 'can store file remotely' do - allow(ObjectStorage::BackgroundMoveWorker).to receive(:perform_async) - distribution expect(distribution.file_store).to eq(described_class::Store::REMOTE) diff --git a/spec/uploaders/packages/package_file_uploader_spec.rb b/spec/uploaders/packages/package_file_uploader_spec.rb index 0c7bf6432cb..7d270ad03c9 100644 --- a/spec/uploaders/packages/package_file_uploader_spec.rb +++ b/spec/uploaders/packages/package_file_uploader_spec.rb @@ -33,8 +33,6 @@ RSpec.describe Packages::PackageFileUploader do end it 'can store file remotely' do - allow(ObjectStorage::BackgroundMoveWorker).to receive(:perform_async) - package_file expect(package_file.file_store).to eq(described_class::Store::REMOTE) diff --git a/spec/uploaders/packages/rpm/repository_file_uploader_spec.rb b/spec/uploaders/packages/rpm/repository_file_uploader_spec.rb index 720e109533b..b3767ae179a 100644 --- a/spec/uploaders/packages/rpm/repository_file_uploader_spec.rb +++ b/spec/uploaders/packages/rpm/repository_file_uploader_spec.rb @@ -33,8 +33,6 @@ RSpec.describe Packages::Rpm::RepositoryFileUploader do end it 'can store file remotely' do - allow(ObjectStorage::BackgroundMoveWorker).to receive(:perform_async) - repository_file expect(repository_file.file_store).to eq(described_class::Store::REMOTE) diff --git a/spec/uploaders/personal_file_uploader_spec.rb b/spec/uploaders/personal_file_uploader_spec.rb index d2eae5d7a54..1373ccac23d 100644 --- a/spec/uploaders/personal_file_uploader_spec.rb +++ b/spec/uploaders/personal_file_uploader_spec.rb @@ -43,8 +43,8 @@ RSpec.describe PersonalFileUploader do it 'builds correct paths for both local and remote storage' do paths = uploader.upload_paths('test.jpg') - expect(paths.first).to match(%r[\h+\/test.jpg]) - expect(paths.second).to match(%r[^personal_snippet\/\d+\/\h+\/test.jpg]) + expect(paths.first).to match(%r[\h+/test.jpg]) + expect(paths.second).to match(%r[^personal_snippet/\d+/\h+/test.jpg]) end end @@ -52,7 +52,7 @@ RSpec.describe PersonalFileUploader do it_behaves_like 'builds correct paths', store_dir: %r[uploads/-/system/personal_snippet/\d+/\h+], upload_path: %r[\h+/\S+], - absolute_path: %r[#{CarrierWave.root}/uploads/-/system/personal_snippet\/\d+\/\h+\/\S+$] + absolute_path: %r[#{CarrierWave.root}/uploads/-/system/personal_snippet/\d+/\h+/\S+$] it_behaves_like '#base_dir' it_behaves_like '#to_h' @@ -67,7 +67,7 @@ RSpec.describe PersonalFileUploader do it_behaves_like 'builds correct paths', store_dir: %r[\d+/\h+], - upload_path: %r[^personal_snippet\/\d+\/\h+\/<filename>] + upload_path: %r[^personal_snippet/\d+/\h+/<filename>] it_behaves_like '#base_dir' it_behaves_like '#to_h' diff --git a/spec/uploaders/terraform/state_uploader_spec.rb b/spec/uploaders/terraform/state_uploader_spec.rb index bd8e7fbc016..2c17edf4e67 100644 --- a/spec/uploaders/terraform/state_uploader_spec.rb +++ b/spec/uploaders/terraform/state_uploader_spec.rb @@ -72,12 +72,6 @@ RSpec.describe Terraform::StateUploader do end end - describe '.background_upload_enabled?' do - it 'returns false' do - expect(described_class.background_upload_enabled?).to eq(false) - end - end - describe '.proxy_download_enabled?' do it 'returns true' do expect(described_class.proxy_download_enabled?).to eq(true) diff --git a/spec/uploaders/workers/object_storage/background_move_worker_spec.rb b/spec/uploaders/workers/object_storage/background_move_worker_spec.rb deleted file mode 100644 index a481939ed7a..00000000000 --- a/spec/uploaders/workers/object_storage/background_move_worker_spec.rb +++ /dev/null @@ -1,116 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe ObjectStorage::BackgroundMoveWorker do - let(:local) { ObjectStorage::Store::LOCAL } - let(:remote) { ObjectStorage::Store::REMOTE } - - def perform - described_class.perform_async(uploader_class.name, subject_class, file_field, subject_id) - end - - context 'for LFS' do - let!(:lfs_object) { create(:lfs_object, :with_file, file_store: local) } - let(:uploader_class) { LfsObjectUploader } - let(:subject_class) { LfsObject } - let(:file_field) { :file } - let(:subject_id) { lfs_object.id } - - context 'when object storage is enabled' do - before do - stub_lfs_object_storage(background_upload: true) - end - - it 'uploads object to storage', :sidekiq_might_not_need_inline do - expect { perform }.to change { lfs_object.reload.file_store }.from(local).to(remote) - end - - context 'when background upload is disabled' do - before do - allow(Gitlab.config.lfs.object_store).to receive(:background_upload) { false } - end - - it 'is skipped' do - expect { perform }.not_to change { lfs_object.reload.file_store } - end - end - end - - context 'when object storage is disabled' do - before do - stub_lfs_object_storage(enabled: false) - end - - it "doesn't migrate files" do - perform - - expect(lfs_object.reload.file_store).to eq(local) - end - end - end - - context 'for job artifacts' do - let(:artifact) { create(:ci_job_artifact, :archive) } - let(:uploader_class) { JobArtifactUploader } - let(:subject_class) { Ci::JobArtifact } - let(:file_field) { :file } - let(:subject_id) { artifact.id } - - context 'when local storage is used' do - let(:store) { local } - - context 'and remote storage is defined' do - before do - stub_artifacts_object_storage(background_upload: true) - end - - it "migrates file to remote storage", :sidekiq_might_not_need_inline do - perform - - expect(artifact.reload.file_store).to eq(remote) - end - end - end - end - - context 'for uploads' do - let!(:project) { create(:project, :with_avatar) } - let(:uploader_class) { AvatarUploader } - let(:file_field) { :avatar } - - context 'when local storage is used' do - let(:store) { local } - - context 'and remote storage is defined' do - before do - stub_uploads_object_storage(uploader_class, background_upload: true) - end - - describe 'supports using the model' do - let(:subject_class) { project.class } - let(:subject_id) { project.id } - - it "migrates file to remote storage", :sidekiq_might_not_need_inline do - perform - project.reload - BatchLoader::Executor.clear_current - - expect(project.avatar).not_to be_file_storage - end - end - - describe 'supports using the Upload' do - let(:subject_class) { Upload } - let(:subject_id) { project.avatar.upload.id } - - it "migrates file to remote storage", :sidekiq_might_not_need_inline do - perform - - expect(project.reload.avatar).not_to be_file_storage - end - end - end - end - end -end |