From c688f4f607a558bf29589376420fec8fc1d87320 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Rodr=C3=ADguez?= Date: Mon, 18 Jul 2016 17:28:26 -0400 Subject: Skip repository storage path valitaions on test environment Storage path are not created until `TestEnv.init`, so we must skip their validation on initialization. --- config/initializers/6_validations.rb | 16 ++++++++++------ spec/initializers/6_validations_spec.rb | 13 +++++-------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/config/initializers/6_validations.rb b/config/initializers/6_validations.rb index 8610b695225..34968a768ad 100644 --- a/config/initializers/6_validations.rb +++ b/config/initializers/6_validations.rb @@ -13,13 +13,17 @@ def error(message) raise "#{message}. Please fix this in your gitlab.yml before starting GitLab." end -error('No repository storage path defined') if Gitlab.config.repositories.storages.empty? +def validate_storages + error('No repository storage path defined') if Gitlab.config.repositories.storages.empty? -Gitlab.config.repositories.storages.each do |name, path| - error("\"#{name}\" is not a valid storage name") unless storage_name_valid?(name) + Gitlab.config.repositories.storages.each do |name, path| + error("\"#{name}\" is not a valid storage name") unless storage_name_valid?(name) - parent_name, _parent_path = find_parent_path(name, path) - if parent_name - error("#{name} is a nested path of #{parent_name}. Nested paths are not supported for repository storages") + parent_name, _parent_path = find_parent_path(name, path) + if parent_name + error("#{name} is a nested path of #{parent_name}. Nested paths are not supported for repository storages") + end end end + +validate_storages unless Rails.env.test? diff --git a/spec/initializers/6_validations_spec.rb b/spec/initializers/6_validations_spec.rb index 05d0aa63488..baab30f482f 100644 --- a/spec/initializers/6_validations_spec.rb +++ b/spec/initializers/6_validations_spec.rb @@ -1,4 +1,5 @@ require 'spec_helper' +require_relative '../../config/initializers/6_validations.rb' describe '6_validations', lib: true do before :all do @@ -17,7 +18,7 @@ describe '6_validations', lib: true do end it 'passes through' do - expect { load_validations }.not_to raise_error + expect { validate_storages }.not_to raise_error end end @@ -27,7 +28,7 @@ describe '6_validations', lib: true do end it 'throws an error' do - expect { load_validations }.to raise_error('"name with spaces" is not a valid storage name. Please fix this in your gitlab.yml before starting GitLab.') + expect { validate_storages }.to raise_error('"name with spaces" is not a valid storage name. Please fix this in your gitlab.yml before starting GitLab.') end end @@ -37,7 +38,7 @@ describe '6_validations', lib: true do end it 'throws an error' do - expect { load_validations }.to raise_error('bar is a nested path of foo. Nested paths are not supported for repository storages. Please fix this in your gitlab.yml before starting GitLab.') + expect { validate_storages }.to raise_error('bar is a nested path of foo. Nested paths are not supported for repository storages. Please fix this in your gitlab.yml before starting GitLab.') end end @@ -47,15 +48,11 @@ describe '6_validations', lib: true do end it 'passes through' do - expect { load_validations }.not_to raise_error + expect { validate_storages }.not_to raise_error end end def mock_storages(storages) allow(Gitlab.config.repositories).to receive(:storages).and_return(storages) end - - def load_validations - load File.join(__dir__, '../../config/initializers/6_validations.rb') - end end -- cgit v1.2.1