itriagetestrail 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/itriagetestrail/version.rb +1 -1
- data/lib/itriagetestrail.rb +80 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 44ad143da93506b4a1d678405bf4bfadc376434f
|
4
|
+
data.tar.gz: 7fafe7e9215c948e47740c1cadb8268640f5795b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 98adeed205e172d515937130a926ed6933d196711a571d71bdc03d59b30a398596aa0e1845b9d026d5a4919fa9287cca7db6f3837526dd85e1830cf39de73fee
|
7
|
+
data.tar.gz: 4acac7a2c65415fabaeb2c38248d38b8503ba59a8607c5d6850672bb76ca59176d02216155255c181507bf51776e498b1345f7704ab2d04aabee301b368b5d37
|
data/lib/itriagetestrail.rb
CHANGED
@@ -61,6 +61,9 @@ module Itriagetestrail
|
|
61
61
|
# Get the test rail ids
|
62
62
|
testrail_ids
|
63
63
|
|
64
|
+
reset_milestone('Master')
|
65
|
+
reset_milestone('Dev Branch')
|
66
|
+
|
64
67
|
@milestone_id = fetch_milestone(@milestone_name)
|
65
68
|
|
66
69
|
add_testrail_run if @run_id == 0
|
@@ -125,6 +128,42 @@ module Itriagetestrail
|
|
125
128
|
end
|
126
129
|
end
|
127
130
|
|
131
|
+
# returns timestamp for begining of first day of current quarter
|
132
|
+
def milestone_period_start
|
133
|
+
time_zone = TZInfo::Timezone.get('America/Denver')
|
134
|
+
current_year = time_zone.now.year
|
135
|
+
month = time_zone.now.mon
|
136
|
+
|
137
|
+
# determine which quarter we are in
|
138
|
+
if month <= 3
|
139
|
+
time_zone.utc_to_local(Time.utc(current_year, 1, 1))
|
140
|
+
elsif month <= 6
|
141
|
+
time_zone.utc_to_local(Time.utc(current_year, 4, 1))
|
142
|
+
elsif month <= 9
|
143
|
+
time_zone.utc_to_local(Time.utc(current_year, 7, 1))
|
144
|
+
else
|
145
|
+
time_zone.utc_to_local(Time.utc(current_year, 10, 1))
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
# determine the due date (end of quarter) for milestone being added
|
150
|
+
def milestone_due_date
|
151
|
+
time_zone = TZInfo::Timezone.get('America/Denver')
|
152
|
+
current_year = time_zone.now.year
|
153
|
+
month = time_zone.now.mon
|
154
|
+
|
155
|
+
# determine which quarter we are in
|
156
|
+
if month <= 3
|
157
|
+
time_zone.utc_to_local(Time.utc(current_year, 3, 31)).strftime('%s')
|
158
|
+
elsif month <= 6
|
159
|
+
time_zone.utc_to_local(Time.utc(current_year, 6, 30)).strftime('%s')
|
160
|
+
elsif month <= 9
|
161
|
+
time_zone.utc_to_local(Time.utc(current_year, 9, 30)).strftime('%s')
|
162
|
+
else
|
163
|
+
time_zone.utc_to_local(Time.utc(current_year, 12, 31)).strftime('%s')
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
128
167
|
def fetch_milestone(requested_milestone_name)
|
129
168
|
milestones = @client.send_get("get_milestones/#{@project_id}")
|
130
169
|
res = -1
|
@@ -136,7 +175,8 @@ module Itriagetestrail
|
|
136
175
|
# We need to add the milestone to TestRail
|
137
176
|
|
138
177
|
body = {
|
139
|
-
name: requested_milestone_name
|
178
|
+
name: requested_milestone_name,
|
179
|
+
due_on: milestone_due_date
|
140
180
|
}
|
141
181
|
|
142
182
|
res = @client.send_post("add_milestone/#{@project_id}", body)['id']
|
@@ -144,6 +184,45 @@ module Itriagetestrail
|
|
144
184
|
res
|
145
185
|
end
|
146
186
|
|
187
|
+
def milestone_archive_name(milestone_name, date)
|
188
|
+
year = date.year
|
189
|
+
month = date.mon
|
190
|
+
|
191
|
+
if month <= 3
|
192
|
+
"#{milestone_name} #{year}-Q1"
|
193
|
+
elsif month <= 6
|
194
|
+
"#{milestone_name} #{year}-Q2"
|
195
|
+
elsif month <= 9
|
196
|
+
"#{milestone_name} #{year}-Q3"
|
197
|
+
else
|
198
|
+
"#{milestone_name} #{year}-Q4"
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
202
|
+
def milestone_runs(milestone_name)
|
203
|
+
# use the matching milestone id for project
|
204
|
+
milestone_id = fetch_milestone(milestone_name)
|
205
|
+
|
206
|
+
# fetch all test runs associated with the milestone id for project
|
207
|
+
@client.send_get("get_runs/#{@project_id}&milestone_id=#{milestone_id}") || []
|
208
|
+
end
|
209
|
+
|
210
|
+
def rename_milestone(id, new_name)
|
211
|
+
# todo: rename milestone with previous_milestone
|
212
|
+
body = { name: new_name }
|
213
|
+
res = @client.send_post("update_milestone/#{id}", body)['id']
|
214
|
+
end
|
215
|
+
|
216
|
+
def reset_milestone(milestone_name)
|
217
|
+
runs = milestone_runs(milestone_name)
|
218
|
+
if runs.size > 0
|
219
|
+
last_run_time = Time.at(runs.last['completed_on'])
|
220
|
+
if last_run_time < milestone_period_start
|
221
|
+
rename_milestone(@milestone_id, milestone_archive_name(milestone_name, last_run_time))
|
222
|
+
end
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
147
226
|
def add_testrail_section(section_title)
|
148
227
|
body = {
|
149
228
|
name: section_title
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: itriagetestrail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- a801069
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|