From 863ea9196162a191af348d1dcf0efa150ad74b7f Mon Sep 17 00:00:00 2001 From: Ilia Beliakov Date: Thu, 26 Sep 2019 18:53:27 -0400 Subject: [PATCH 1/3] Add ability to provide configuration hash in the constructor of TestrailRSpec::UpdateTestRails class --- lib/testrail-rspec/update-testrails.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/testrail-rspec/update-testrails.rb b/lib/testrail-rspec/update-testrails.rb index 4d826f4..894db67 100644 --- a/lib/testrail-rspec/update-testrails.rb +++ b/lib/testrail-rspec/update-testrails.rb @@ -4,14 +4,20 @@ module TestrailRSpec class UpdateTestRails attr_accessor :client - def initialize(scenario) + def initialize(scenario, config: {}) @scenario = scenario if File.exist? './testrail_config.yml' @config = YAML.load_file("./testrail_config.yml")['testrail'] raise 'TestRail configuration file not loaded successfully' if @config.nil? - else - raise 'TestRail configuration file is required' + end + + if !config.nil? && !config.empty? + @config = (@config || {}).merge(config) + end + + if @config.nil? || @config.empty? + raise 'TestRail configuration file or hash is required' end setup_testrail_client From 4895e73c7efdc2a6b913557607fdd91bff9aef02 Mon Sep 17 00:00:00 2001 From: Ilia-ab <43753177+Ilia-ab@users.noreply.github.com> Date: Thu, 26 Sep 2019 19:15:35 -0400 Subject: [PATCH 2/3] Update README.md Provided an example of passing configuration hash in the constructor --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index 17cb2fb..83136a6 100755 --- a/README.md +++ b/README.md @@ -58,6 +58,22 @@ config.after(:each) do |scenario| end ``` +**To use credentials from environment variables** +- configuration could be provided in the constructor +- values from the passed `config` hash will take precedence over configuration in `testrail_config.yml` +``` +testrail_config = { + url: ENV['TESTRAIL_URL'] + user: ENV['TESTRAIL_USER'] + password: ENV['TESTRAIL_PASSWORD'] + run_id: ENV['TESTRAIL_RUN_ID'] +} + +config.after(:each) do |scenario| + TestrailRSpec::UpdateTestRails.new(scenario, config: testrail_config).upload_result +end +``` + **Is there a demo available for this gem?** Yes, you can use this `capybara` demo as an example, https://github.com/prashanth-sams/testrail-rspec From cfb71693cc35c15f469c59a7ba907e18dcdd40c7 Mon Sep 17 00:00:00 2001 From: Ilia-ab <43753177+Ilia-ab@users.noreply.github.com> Date: Tue, 24 Mar 2020 18:25:55 -0400 Subject: [PATCH 3/3] Transform config keys into strings --- lib/testrail-rspec/update-testrails.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/testrail-rspec/update-testrails.rb b/lib/testrail-rspec/update-testrails.rb index 5f580ea..2fb8a8e 100644 --- a/lib/testrail-rspec/update-testrails.rb +++ b/lib/testrail-rspec/update-testrails.rb @@ -13,7 +13,7 @@ def initialize(scenario, config: {}) end if !config.nil? && !config.empty? - @config = (@config || {}).merge(config) + @config = (@config || {}).merge(config.map { |k, v| [k.to_s, v] }.to_h) end if @config.nil? || @config.empty?