Commit 0194dd41 authored by Jacob Vosmaer's avatar Jacob Vosmaer

Add tests for custom backup archive file permissions

parent bb50b7fc
...@@ -60,7 +60,7 @@ describe 'gitlab:app namespace rake task' do ...@@ -60,7 +60,7 @@ describe 'gitlab:app namespace rake task' do
Dir.glob(File.join(Gitlab.config.backup.path, '*_gitlab_backup.tar')) Dir.glob(File.join(Gitlab.config.backup.path, '*_gitlab_backup.tar'))
end end
before :all do def create_backup
# Record the existing backup tars so we don't touch them # Record the existing backup tars so we don't touch them
existing_tars = tars_glob existing_tars = tars_glob
...@@ -73,13 +73,36 @@ describe 'gitlab:app namespace rake task' do ...@@ -73,13 +73,36 @@ describe 'gitlab:app namespace rake task' do
@backup_tar = (tars_glob - existing_tars).first @backup_tar = (tars_glob - existing_tars).first
end end
before :all do
create_backup
end
after :all do after :all do
FileUtils.rm(@backup_tar) FileUtils.rm(@backup_tar)
end end
it 'should set correct permissions on the tar file' do context 'archive file permissions' do
expect(File.exist?(@backup_tar)).to be_truthy it 'should set correct permissions on the tar file' do
expect(File::Stat.new(@backup_tar).mode.to_s(8)).to eq('100600') expect(File.exist?(@backup_tar)).to be_truthy
expect(File::Stat.new(@backup_tar).mode.to_s(8)).to eq('100600')
end
context 'with custom archive_permissions' do
before do
allow(Gitlab.config.backup).to receive(:archive_permissions).and_return(0651)
# We created a backup in a before(:all) so it got the default permissions.
# We now need to do some work to create a _new_ backup file using our stub.
FileUtils.rm(@backup_tar)
Rake::Task["gitlab:backup:db:create"].reenable
Rake::Task["gitlab:backup:repo:create"].reenable
Rake::Task["gitlab:backup:uploads:create"].reenable
create_backup
end
it 'uses the custom permissions' do
expect(File::Stat.new(@backup_tar).mode.to_s(8)).to eq('100651')
end
end
end end
it 'should set correct permissions on the tar contents' do it 'should set correct permissions on the tar contents' do
......
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