assertthat-bdd 1.6.2 → 1.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 60460d67c013f3bedb78f3aa6a7f08e0c9a275e88fc5d1b1ac9db5a99816a63d
4
- data.tar.gz: 36d63dcad252b6628194a5aae2532bd2170744e5c44fe4e32dbc23892e001b62
3
+ metadata.gz: 14aef6816defd3bd8214ee75701f891cd1a14598e25e47216a796390e0cccf31
4
+ data.tar.gz: 4a51704bdaa2e34e82ed229bbcd3a8780cfe99acf5d8f6149b4654872a526a5e
5
5
  SHA512:
6
- metadata.gz: fae48177c21c0d0be2f1f90ccace22cda3138a21b0ef483c01e163f8b96042e7c6dc5f32e5518ec9e85ccb856db30f987f04e33f83b6610f19674b5bde3bc48f
7
- data.tar.gz: '01748f34574788956dd1a4e4cda654d1de02bfba8231fd146e4a7f647a2b4009a327e2cd6700984965b425b601d444983ece49bbb34e9bbd7a0f2c94eeed9588'
6
+ metadata.gz: a5d6cfab11eb5880d617d49b15edf74532fd335d026e4e80c1db3827d67b3b88cb9852f521313df0c3b5f0d09c80652d245146bb4638d7d3646628e8e485dbc1
7
+ data.tar.gz: ac695a7034b143bb5d08e9910b09bd22be767b791f7820e23fa2b55b9469dd848d561a01a33a2625bfdd8a128e0bf761557a43c9a42776df8bbae78fa00eb05e
@@ -2,19 +2,20 @@
2
2
  require 'assertthat-bdd'
3
3
  require 'optparse'
4
4
 
5
- VERSION = '1.6.2'
5
+ VERSION = '1.6.4'
6
6
 
7
7
  options = {}
8
8
  OptionParser.new do |opt|
9
- opt.on('-a','--accessKey ACCESS_KEY', 'Access key same as env variable ASSERTTHAT_ACCESS_KEY') { |o| options[:accessKey] = o }
10
- opt.on('-s','--secretKey SECRET_KEY', 'Secret key same as env variable ASSERTTHAT_SECRET_KEY') { |o| options[:secretKey] = o }
11
- opt.on('-u','--jiraServerUrl SERVER_URL', 'Jira server URL') { |o| options[:jiraServerUrl] = o }
12
- opt.on('-p','--projectId PROJECT_ID', 'Jira project id') { |o| options[:projectId] = o }
13
- opt.on('-o','--outputFolder OUTPUT_FOLDER', 'Featured output folder - default ./features') { |o| options[:outputFolder] = o }
14
- opt.on('-m','--mode MODE', 'Mode one of automated,manual,both - deafult automated') { |o| options[:mode] = o }
15
- opt.on('-t','--tags <tag-expression>', 'Cucucmber tag expression for scenarios filtering') { |o| options[:tags] = o }
16
- opt.on('-j','--jql JQL_FILTER', 'Jql issues filter') { |o| options[:jql] = o }
17
- opt.on('-x','--proxy PROXY_URL', 'proxy url to connect to Jira') { |o| options[:proxy] = o }
9
+ opt.on('--accessKey ACCESS_KEY', 'Access key same as env variable ASSERTTHAT_ACCESS_KEY') { |o| options[:accessKey] = o }
10
+ opt.on('--secretKey SECRET_KEY', 'Secret key same as env variable ASSERTTHAT_SECRET_KEY') { |o| options[:secretKey] = o }
11
+ opt.on('--token TOKEN', 'Jira API token as env variable ASSERTTHAT_SECRET_KEY') { |o| options[:secretKey] = o }
12
+ opt.on('--jiraServerUrl SERVER_URL', 'Jira server URL') { |o| options[:jiraServerUrl] = o }
13
+ opt.on('--projectId PROJECT_ID', 'Jira project id') { |o| options[:projectId] = o }
14
+ opt.on('--outputFolder OUTPUT_FOLDER', 'Featured output folder - default ./features') { |o| options[:outputFolder] = o }
15
+ opt.on('--mode MODE', 'Mode one of automated,manual,both - deafult automated') { |o| options[:mode] = o }
16
+ opt.on('--tags <tag-expression>', 'Cucucmber tag expression for scenarios filtering') { |o| options[:tags] = o }
17
+ opt.on('--jql JQL_FILTER', 'Jql issues filter') { |o| options[:jql] = o }
18
+ opt.on('--proxy PROXY_URL', 'proxy url to connect to Jira') { |o| options[:proxy] = o }
18
19
  opt.on_tail('-h', '--help', 'Show help') do
19
20
  puts opt
20
21
  exit
@@ -2,18 +2,20 @@
2
2
  require 'assertthat-bdd'
3
3
  require 'optparse'
4
4
 
5
- VERSION = '1.6.2'
5
+ VERSION = '1.6.4'
6
6
 
7
7
  options = {}
8
8
  OptionParser.new do |opt|
9
- opt.on('-a','--accessKey ACCESS_KEY', 'Access key same as env variable ASSERTTHAT_ACCESS_KEY') { |o| options[:accessKey] = o }
10
- opt.on('-s','--secretKey SECRET_KEY', 'Secret key same as env variable ASSERTTHAT_SECRET_KEY') { |o| options[:secretKey] = o }
11
- opt.on('-u','--jiraServerUrl SERVER_URL', 'Jira server URL') { |o| options[:jiraServerUrl] = o }
12
- opt.on('-p', '--projectId PROJECT_ID', 'Jira project id') { |o| options[:projectId] = o }
13
- opt.on('-n','--runName RUN_NAME', 'The name of the run - default \'Test run dd MMM yyyy HH:mm:ss\'') { |o| options[:runName] = o }
14
- opt.on('-f','--jsonReportFolder JSON_FOLDER_PATH', 'Json report folder - default ./reports') { |o| options[:mode] = o }
15
- opt.on('-i','--jsonReportIncludePattern INCLUDE_REGEX', 'Regex to search for cucumber reports - default .*.json') { |o| options[:jql] = o }
16
- opt.on('-x','--proxy PROXY_URL', 'proxy url to connect to Jira') { |o| options[:proxy] = o }
9
+ opt.on('--accessKey ACCESS_KEY', 'Access key same as env variable ASSERTTHAT_ACCESS_KEY') { |o| options[:accessKey] = o }
10
+ opt.on('--secretKey SECRET_KEY', 'Secret key same as env variable ASSERTTHAT_SECRET_KEY') { |o| options[:secretKey] = o }
11
+ opt.on('--token TOKEN', 'Jira API token as env variable ASSERTTHAT_SECRET_KEY') { |o| options[:secretKey] = o }
12
+ opt.on('--jiraServerUrl SERVER_URL', 'Jira server URL') { |o| options[:jiraServerUrl] = o }
13
+ opt.on('--projectId PROJECT_ID', 'Jira project id') { |o| options[:projectId] = o }
14
+ opt.on('--runName RUN_NAME', 'The name of the run - default \'Test run dd MMM yyyy HH:mm:ss\'') { |o| options[:runName] = o }
15
+ opt.on('--jsonReportFolder JSON_FOLDER_PATH', 'Json report folder - default ./reports') { |o| options[:mode] = o }
16
+ opt.on('--jsonReportIncludePattern INCLUDE_REGEX', 'Regex to search for cucumber reports - default .*.json') { |o| options[:jql] = o }
17
+ opt.on('--jql JQL_FILTER', 'Jql issues filter to update with results') { |o| options[:jql] = o }
18
+ opt.on('--proxy PROXY_URL', 'proxy url to connect to Jira') { |o| options[:proxy] = o }
17
19
  opt.on_tail('-h', '--help', 'Show help') do
18
20
  puts opt
19
21
  exit
@@ -5,87 +5,106 @@ require 'json'
5
5
 
6
6
  module AssertThatBDD
7
7
  class Features
8
- def self.download(accessKey: ENV['ASSERTTHAT_ACCESS_KEY'], secretKey: ENV['ASSERTTHAT_ACCESS_KEY'], projectId: nil, outputFolder: './features/', proxy: nil, mode: 'automated', jql: '', tags: '', jiraServerUrl: nil)
9
- RestClient.proxy = proxy unless proxy.nil?
10
- url = ['https://bdd.assertthat.app/rest/api/1/project/', projectId, '/features'].map(&:to_s).join('')
11
- url = [jiraServerUrl,"/rest/assertthat/latest/project/",projectId,"/client/features"].map(&:to_s).join('') unless jiraServerUrl.nil?
12
- resource = RestClient::Resource.new(url, :user => accessKey, :password => secretKey, :content_type => 'application/zip')
13
- resource.get(:accept => 'application/zip', params: {mode: mode, jql: jql, tags: tags}) do |response, request, result|
14
- case response.code
15
- when 401
16
- puts '*** ERROR: Unauthorized error (401). Supplied secretKey/accessKey is invalid'
17
- return
18
- when 400
19
- puts '*** ERROR: ' + e.response
20
- return
21
- when 500
22
- puts '*** ERROR: Jira server error (500)'
23
- return
24
- end
25
- Dir.mkdir("#{outputFolder}") unless File.exists?("#{outputFolder}")
26
- File.open("#{outputFolder}/features.zip", 'wb') {|f| f.write(response) }
27
- features_count = 0
28
- Zip::File.open("#{outputFolder}/features.zip") do |zip_file|
29
- zip_file.each do |entry|
30
- features_count = features_count + 1
31
- File.delete("#{outputFolder}#{entry.name}") if File.exists?("#{outputFolder}#{entry.name}")
32
- entry.extract("#{outputFolder}#{entry.name}")
33
- end
34
- if response.headers.member?('features_count'.to_sym) and response.headers.member?('scenarios_count'.to_sym) then
35
- puts "*** INFO: #{response.headers['features_count'.to_sym]} features downloaded with #{response.headers['scenarios_count'.to_sym]} scenarios"
36
- else
37
- puts "*** INFO: #{features_count} features downloaded"
38
- end
39
- File.delete("#{outputFolder}/features.zip")
40
- end
41
- end
42
- end
8
+ def self.download(accessKey: ENV['ASSERTTHAT_ACCESS_KEY'], secretKey: ENV['ASSERTTHAT_ACCESS_KEY'], token: ENV['ASSERTTHAT_TOKEN'], projectId: nil, outputFolder: './features/', proxy: nil, mode: 'automated', jql: '', tags: '', jiraServerUrl: nil)
9
+ RestClient.proxy = proxy unless proxy.nil?
10
+ url = ['https://bdd.assertthat.app/rest/api/1/project/', projectId, '/features'].map(&:to_s).join('')
11
+ url = [jiraServerUrl, "/rest/assertthat/latest/project/", projectId, "/client/features"].map(&:to_s).join('') unless jiraServerUrl.nil?
12
+
13
+ headers = { accept: 'application/zip', params: { mode: mode, jql: jql, tags: tags } }
14
+ if token
15
+ headers[:authorization] = "Bearer #{token}"
16
+ resource = RestClient::Resource.new(url, headers: headers)
17
+ else
18
+ resource = RestClient::Resource.new(url, user: accessKey, password: secretKey, headers: headers)
19
+ end
20
+
21
+ resource.get do |response, request, result|
22
+ case response.code
23
+ when 401
24
+ puts '*** ERROR: Unauthorized error (401). Supplied secretKey/accessKey is invalid'
25
+ return
26
+ when 400
27
+ puts '*** ERROR: ' + e.response
28
+ return
29
+ when 500
30
+ puts '*** ERROR: Jira server error (500)'
31
+ return
32
+ end
33
+
34
+ Dir.mkdir(outputFolder) unless File.exists?(outputFolder)
35
+ File.open("#{outputFolder}/features.zip", 'wb') { |f| f.write(response) }
36
+ features_count = 0
37
+ Zip::File.open("#{outputFolder}/features.zip") do |zip_file|
38
+ zip_file.each do |entry|
39
+ features_count += 1
40
+ File.delete("#{outputFolder}#{entry.name}") if File.exists?("#{outputFolder}#{entry.name}")
41
+ entry.extract("#{outputFolder}#{entry.name}")
42
+ end
43
+ if response.headers.key?(:features_count) && response.headers.key?(:scenarios_count)
44
+ puts "*** INFO: #{response.headers[:features_count]} features downloaded with #{response.headers[:scenarios_count]} scenarios"
45
+ else
46
+ puts "*** INFO: #{features_count} features downloaded"
47
+ end
48
+ File.delete("#{outputFolder}/features.zip")
49
+ end
50
+ end
51
+ end
43
52
  end
44
-
53
+
45
54
  class Report
46
- def self.upload(accessKey: ENV['ASSERTTHAT_ACCESS_KEY'], secretKey: ENV['ASSERTTHAT_ACCESS_KEY'], projectId: nil, runName: 'Test run '+Time.now.strftime("%d %b %Y %H:%M:%S"), jsonReportFolder: './reports', jsonReportIncludePattern: '.*.json', jiraServerUrl: nil )
47
- url = "https://bdd.assertthat.app/rest/api/1/project/" + projectId + "/report"
48
- url = jiraServerUrl+"/rest/assertthat/latest/project/"+projectId+"/client/report" unless jiraServerUrl.nil?
49
- files = Find.find(jsonReportFolder).grep(/#{jsonReportIncludePattern}/)
50
- puts "*** INFO: #{files.count} files found matching parretn #{jsonReportIncludePattern}:"
51
- puts "*** INFO: #{files}"
52
- runId = -1
53
- files.each do |f|
54
- request = RestClient::Request.new(
55
- :method => :post,
56
- :url => url,
57
- :user => accessKey,
58
- :password => secretKey,
59
- :payload => {
60
- :multipart => true,
61
- :file => File.new(f, 'rb')
62
- },
63
- :headers => { :params =>{:runName => runName, :runId=> runId}}
64
- )
65
- begin
66
- response = request.execute
67
- rescue => e
68
- if e.respond_to?('response') then
69
- if e.response.respond_to?('code') then
70
- case e.response.code
71
- when 401
72
- puts '*** ERROR: Unauthorized error (401). Supplied secretKey/accessKey is invalid'
73
- when 500
74
- puts '*** ERROR: Jira server error (500)'
75
- end
76
- end
77
- else
78
- puts "*** ERROR: Failed to submit json #{f}: " + e.message
79
- end
80
- return
81
- end
82
- resposne_json = JSON.parse(response)
83
- if resposne_json['result'] == 'success'
84
- runId = resposne_json['runId']
85
- else
86
- puts "*** ERROR: Failed to submit json #{f}: " + resposne_json['message']
87
- end
88
- end
55
+ def self.upload(accessKey: ENV['ASSERTTHAT_ACCESS_KEY'], secretKey: ENV['ASSERTTHAT_ACCESS_KEY'], token: ENV['ASSERTTHAT_TOKEN'], projectId: nil, runName: 'Test run ' + Time.now.strftime("%d %b %Y %H:%M:%S"), jsonReportFolder: './reports', jsonReportIncludePattern: '.*.json', jql: nil, jiraServerUrl: nil)
56
+ url = "https://bdd.assertthat.app/rest/api/1/project/#{projectId}/report"
57
+ url = "#{jiraServerUrl}/rest/assertthat/latest/project/#{projectId}/client/report" unless jiraServerUrl.nil?
58
+
59
+ headers = { params: { runName: runName, jql: jql } }
60
+ headers[:authorization] = "Bearer #{token}" if token
61
+
62
+ files = Find.find(jsonReportFolder).grep(/#{jsonReportIncludePattern}/)
63
+ puts "*** INFO: #{files.count} files found matching pattern #{jsonReportIncludePattern}:"
64
+ puts "*** INFO: #{files}"
65
+ runId = -1
66
+
67
+ files.each do |f|
68
+ payload = { multipart: true, file: File.new(f, 'rb') }
69
+
70
+ if token
71
+ request = RestClient::Request.new(
72
+ method: :post,
73
+ url: url,
74
+ payload: payload,
75
+ headers: headers
76
+ )
77
+ else
78
+ request = RestClient::Request.new(
79
+ method: :post,
80
+ url: url,
81
+ user: accessKey,
82
+ password: secretKey,
83
+ payload: payload,
84
+ headers: headers
85
+ )
86
+ end
87
+
88
+ begin
89
+ response = request.execute
90
+ response_json = JSON.parse(response)
91
+ if response_json['result'] == 'success'
92
+ runId = response_json['runId']
93
+ else
94
+ puts "*** ERROR: Failed to submit json #{f}: " + response_json['message']
95
+ end
96
+ rescue RestClient::ExceptionWithResponse => e
97
+ case e.http_code
98
+ when 401
99
+ puts '*** ERROR: Unauthorized error (401). Supplied secretKey/accessKey is invalid'
100
+ when 500
101
+ puts '*** ERROR: Jira server error (500)'
102
+ else
103
+ puts "*** ERROR: Failed to submit json #{f}: " + e.message
104
+ end
105
+ return
106
+ end
107
+ end
89
108
  end
90
- end
109
+ end
91
110
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: assertthat-bdd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.2
4
+ version: 1.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Glib Briia