From 82ad9cac0dedeb3fe9223736c8357357c04d9fb7 Mon Sep 17 00:00:00 2001 From: Anton Chuchkalov Date: Tue, 1 Dec 2015 17:40:37 +0300 Subject: [PATCH] add specs config --- devops-service/spec/support/config.yml | 7 +++++ devops-service/spec/support/spec_support.rb | 33 +++++++++++++++++---- 2 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 devops-service/spec/support/config.yml diff --git a/devops-service/spec/support/config.yml b/devops-service/spec/support/config.yml new file mode 100644 index 0000000..fe15e15 --- /dev/null +++ b/devops-service/spec/support/config.yml @@ -0,0 +1,7 @@ +# only :db key is required +mongo: + :db: devops_test + :host: + :port: + :user: + :password: diff --git a/devops-service/spec/support/spec_support.rb b/devops-service/spec/support/spec_support.rb index 2c5a04e..664927f 100644 --- a/devops-service/spec/support/spec_support.rb +++ b/devops-service/spec/support/spec_support.rb @@ -1,8 +1,9 @@ -require 'core/devops-application' +require 'yaml' module SpecSupport - BLANK_FILE = File.join(Devops::Application.root, 'spec/support/blank_file') - TEST_DB = 'devops_test' + ROOT = File.join(__dir__, '../../') + BLANK_FILE = File.join(ROOT, 'spec/support/blank_file') + def stub_loggers allow(DevopsLogger).to receive_message_chain('logger.debug') @@ -10,10 +11,32 @@ module SpecSupport allow(DevopsLogger).to receive_message_chain('logger.error') end - def self.db + def self.db_params @db ||= begin + conf = config['mongo'] + db_name = conf.fetch(:db) + [db_name, conf[:host], conf[:port], conf[:user], conf[:password]] + end + end + + def self.db + unless @db require 'mongo' - Mongo::MongoClient.new.db(TEST_DB) + db_name, host, port, user, password = db_params + @db = MongoClient.new(host, port).db(db_name) + @db.authenticate(user, password) unless user.nil? or password.nil? + end + @db + end + + def self.config + @config ||= begin + config_file = ENV['RSPEC_CONFIG_PATH'] || File.join(ROOT, 'spec/support/config.yml') + if File.exists?(config_file) + YAML.load_file(config_file) + else + raise "There is no config file: '#{config_file}'" + end end end end \ No newline at end of file