Commit 3a114c2d authored by James Lopez's avatar James Lopez

fix specs

parent 7c9f2168
......@@ -11,7 +11,7 @@ module Gitlab
end
def save
copy_files(@from, default_uploads_path) if File.directory?(@from)
copy_files(@from, uploads_export_path) if File.directory?(@from)
if File.file?(@from) && @relative_export_path == 'avatar'
copy_files(@from, File.join(uploads_export_path, @project.avatar.filename))
......@@ -29,9 +29,7 @@ module Gitlab
Dir["#{uploads_export_path}/**/*"].each do |upload|
next if File.directory?(upload)
upload_path = File.join(uploads_export_path, upload)
UploadService.new(@project, File.open(upload_path, 'r'), FileUploader).execute
UploadService.new(@project, File.open(upload, 'r'), FileUploader).execute
end
true
......
......@@ -2,9 +2,16 @@ module Gitlab
module ImportExport
class UploadsRestorer < UploadsSaver
def restore
return true unless File.directory?(uploads_export_path)
copy_files(uploads_export_path, uploads_path)
if Gitlab::ImportExport.object_storage?
Gitlab::ImportExport::UploadsManager.new(
project: @project,
shared: @shared
).restore
elsif File.directory?(uploads_export_path)
copy_files(uploads_export_path, uploads_path)
else
true
end
rescue => e
@shared.error(e)
false
......
......@@ -11,8 +11,8 @@ module Gitlab
def save
Gitlab::ImportExport::UploadsManager.new(
project: @project,
shared: @shared,
).copy
shared: @shared
).save
rescue => e
@shared.error(e)
false
......
......@@ -17,7 +17,7 @@ describe Gitlab::ImportExport::UploadsManager do
FileUtils.rm_rf(shared.export_path)
end
describe '#copy' do
describe '#save' do
context 'when the project has uploads locally stored' do
let(:upload) { create(:upload, :issuable_upload, :with_file, model: project) }
......@@ -26,13 +26,15 @@ describe Gitlab::ImportExport::UploadsManager do
end
it 'does not cause errors' do
manager.copy
manager.save
expect(shared.errors).to be_empty
end
it 'copies the file in the correct location when there is an upload' do
manager.copy
manager.save
puts exported_file_path
expect(File).to exist(exported_file_path)
end
......@@ -52,10 +54,29 @@ describe Gitlab::ImportExport::UploadsManager do
expect(fake_uri).to receive(:open).and_return(StringIO.new('File content'))
expect(URI).to receive(:parse).and_return(fake_uri)
manager.copy
manager.save
expect(File.read(exported_file_path)).to eq('File content')
end
end
describe '#restore' do
context 'using object storage' do
before do
stub_feature_flags(import_export_object_storage: true)
stub_uploads_object_storage(FileUploader)
FileUtils.mkdir_p(File.join(shared.export_path, 'uploads/random'))
FileUtils.touch(File.join(shared.export_path, 'uploads/random', "dummy.txt"))
end
it 'downloads the file to include in an archive' do
manager.restore
expect(project.uploads.size).to eq(1)
expect(project.uploads.first.build_uploader.filename).to eq('dummy.txt')
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