rutemaweb 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,6 @@
1
+ === 0.9.2 / 2008-11-05
2
+ * failure rate added in scenario overview
3
+ * context information added to run overview
1
4
  === 0.9.1 / 2008-10-16
2
5
  * relaxed gem version rules for rutema versions
3
6
  === 0.9.0 / 2008-10-06
@@ -9,7 +9,7 @@ module RutemaWeb
9
9
  module Version
10
10
  MAJOR=0
11
11
  MINOR=9
12
- TINY=1
12
+ TINY=2
13
13
  STRING=[ MAJOR, MINOR, TINY ].join( "." )
14
14
  end
15
15
  #Starts Ramaze
@@ -35,6 +35,9 @@ module Rutema
35
35
  end
36
36
  return st
37
37
  end
38
+ def number_of_failed
39
+ self.scenarios.select{|sc| !sc.success?}.size
40
+ end
38
41
  end
39
42
 
40
43
  class Scenario <ActiveRecord::Base
@@ -51,6 +54,9 @@ module Rutema
51
54
  :offset => page_num*page_size)
52
55
  end
53
56
 
57
+ def success?
58
+ return self.status=="success"
59
+ end
54
60
  end
55
61
  end
56
62
  end
@@ -22,7 +22,7 @@ module Rutema
22
22
  #image filename to use for unexecuted steps
23
23
  IMG_STEP_WARN="/images/step_warn.png"
24
24
  #Time format to use for the start and stop times
25
- TIME_FORMAT="%d/%m/%Y, %H:%M:%S"
25
+ TIME_FORMAT="%d/%m/%Y\n%H:%M:%S"
26
26
  #The left arrow
27
27
  IMG_LEFT="/images/left.png"
28
28
  #The right arrow
@@ -33,11 +33,11 @@ module Rutema
33
33
  when :warning ,"not_executed"
34
34
  "<img src=\"#{IMG_STEP_WARN}\" align=\"center\"/>"
35
35
  when :success, "success"
36
- "<img src=\"#{IMG_STEP_OK}\" align=\"center\"/>"
36
+ "<img src=\"#{IMG_STEP_OK}\" align=\"center\"/>"
37
37
  when :error, "error"
38
- "<img src=\"#{IMG_STEP_ERROR}\" align=\"center\"/>"
38
+ "<img src=\"#{IMG_STEP_ERROR}\" align=\"center\"/>"
39
39
  else
40
- "<img src=\"#{IMG_STEP_WARN}\" align=\"center\"/>"
40
+ "<img src=\"#{IMG_STEP_WARN}\" align=\"center\"/>"
41
41
  end
42
42
  end
43
43
  # Returns a string with the correct time format for display
@@ -48,24 +48,28 @@ module Rutema
48
48
  def run_url run
49
49
  "/run/#{run.id}"
50
50
  end
51
-
51
+
52
52
  def run_summary r
53
53
  Ramaze::Log.debug("Summary snippet for #{r}") if @logger
54
54
  "#{run_link(r)} started at #{time_formatted(r.context.start_time)}"
55
55
  end
56
-
56
+
57
57
  def run_link r
58
58
  "<a class=\"smallgreytext\" href=\"#{run_url(r)}\">Run #{r.id}</a>"
59
59
  end
60
60
  #will render a hash in a table of key||value rows
61
61
  def context_table context
62
- ret="<table><tr>"
63
- context.each do |k,v|
64
- ret<<"<td>#{k.to_s}</td><td>#{v.to_s}</td>"
62
+ ret=""
63
+ if context.is_a?(Hash)
64
+ ret="<p>"
65
+ ret<<"Run configured from #{context[:config_file]}<br/>" if context[:config_file]
66
+ ret<<"Started at #{time_formatted(context[:start_time])}<br/>"
67
+ ret<<"Ended at #{time_formatted(context[:end_time])}<br/>"
68
+ ret<<"Total duration #{context[:end_time]-context[:start_time]} seconds</p>"
65
69
  end
66
- ret<<"</tr></table>"
70
+ return ret
67
71
  end
68
-
72
+
69
73
  #returns the pagination HTML for runs
70
74
  def run_page_link page_number,page_total
71
75
  ret=""
@@ -86,23 +90,23 @@ module Rutema
86
90
  end
87
91
  return ret
88
92
  end
89
-
93
+
90
94
  #Gives the HTML to use for the status column of a scenario list
91
95
  def scenario_status r
92
- img_src=IMG_SCE_WARN
93
- img_src=IMG_SCE_OK if "success"==r.status
94
- img_src=IMG_SCE_ERROR if "error"==r.status
95
- "<img src=\"#{img_src}\" align=\"center\"/>"
96
+ img_src=IMG_SCE_WARN
97
+ img_src=IMG_SCE_OK if "success"==r.status
98
+ img_src=IMG_SCE_ERROR if "error"==r.status
99
+ "<img src=\"#{img_src}\" align=\"center\"/>"
96
100
  end
97
-
101
+
98
102
  end
99
-
103
+
100
104
  #Sets the values we need for public and view directories
101
105
  def self.ramaze_settings
102
- Ramaze::Global.public_root = File.expand_path(File.join(File.dirname(__FILE__),"public"))
103
- Ramaze::Global.view_root = File.expand_path(File.join(File.dirname(__FILE__),"view"))
106
+ Ramaze::Global.public_root = File.expand_path(File.join(File.dirname(__FILE__),"public"))
107
+ Ramaze::Global.view_root = File.expand_path(File.join(File.dirname(__FILE__),"view"))
104
108
  end
105
-
109
+
106
110
  class MainController < Ramaze::Controller
107
111
  include ViewUtilities
108
112
  map '/'
@@ -110,7 +114,7 @@ module Rutema
110
114
  layout :layout
111
115
  #The number of items to show in lists
112
116
  PAGE_SIZE=10
113
-
117
+
114
118
  def index
115
119
  @title="Rutema"
116
120
  @panel_content=panel_runs
@@ -125,7 +129,7 @@ module Rutema
125
129
  dt=[]
126
130
  total_pages=(Rutema::Model::Run.count/PAGE_SIZE)+1
127
131
  page_number=validated_page_number(page,total_pages)
128
-
132
+
129
133
  runs=Rutema::Model::Run.find_on_page(page_number,PAGE_SIZE)
130
134
  runs.each do |r|
131
135
  dt<<[status_icon(r.status),run_summary(r)]
@@ -149,7 +153,7 @@ module Rutema
149
153
  runs
150
154
  end
151
155
  end
152
-
156
+
153
157
  #Displays a paginated list of scenarios
154
158
  def scenarios page=0
155
159
  @title="All scenarios"
@@ -176,9 +180,9 @@ module Rutema
176
180
  nm=sc.name
177
181
  #sort the run ids
178
182
  runs[nm]=runs[nm].sort.reverse[0..4]
179
- dt<<["<a href=\"/scenario/#{nm}\">#{nm}</a> : ",sc.title,runs[nm].map{|r| " <a href=\"/run/#{r}\">#{r}</a>"}.join(" ")]
183
+ dt<<["<a href=\"/scenario/#{nm}\">#{nm}</a> : ",sc.title,runs[nm].map{|r| " <a href=\"/run/#{r}\">#{r}</a>"}.join(" "),"#{failure_rate(sc.name)}%"]
180
184
  end
181
- @content<<Ruport::Data::Table.new(:data=>dt,:column_names=>["name","title","last 5 runs"]).to_html
185
+ @content<<Ruport::Data::Table.new(:data=>dt,:column_names=>["name","title","last 5 runs","failure rate"]).to_html
182
186
  @content<<"<br/>"
183
187
  @content<<scenario_page_link(page_number,total_pages)
184
188
  end
@@ -195,10 +199,10 @@ module Rutema
195
199
  return scenarios
196
200
  end
197
201
  end
198
-
202
+
199
203
  def error
200
204
  end
201
-
205
+
202
206
  def settings
203
207
  if request.post?
204
208
  end
@@ -219,7 +223,7 @@ module Rutema
219
223
  end
220
224
  return page_number
221
225
  end
222
-
226
+
223
227
  #Renders the summary of all runs for a single scenario
224
228
  def scenario_by_name scenario_id
225
229
  ret=""
@@ -227,7 +231,7 @@ module Rutema
227
231
  @content_title="Scenario #{scenario_id} runs"
228
232
  begin
229
233
  table=Rutema::Model::Scenario.report_table(:all,:conditions=>["name = :spec_name",{:spec_name=>scenario_id}],
230
- :order=>"run_id DESC")
234
+ :order=>"run_id DESC")
231
235
  if table.empty?
232
236
  ret="<p>no results for the given name</p>"
233
237
  else
@@ -275,7 +279,7 @@ module Rutema
275
279
  end
276
280
  return ret
277
281
  end
278
-
282
+
279
283
  #Renders the information for a single run providing the context and a list of the scenarios
280
284
  def single_run run_id
281
285
  ret=""
@@ -304,7 +308,7 @@ module Rutema
304
308
  end
305
309
  return ret
306
310
  end
307
-
311
+
308
312
  def panel_runs
309
313
  ret=""
310
314
  Rutema::Model::Run.find(:all,:limit=>10,:order=>"id DESC").each do |r|
@@ -312,7 +316,65 @@ module Rutema
312
316
  end
313
317
  return ret
314
318
  end
315
-
319
+
320
+ def failure_rate scenario_name
321
+ scenarios=Rutema::Model::Scenario.find(:all,:conditions=>["name = :spec_name",{:spec_name=>scenario_name}])
322
+ failures=0
323
+ scenarios.each{|sc| failures+=1 unless sc.status=="success" }
324
+ return ((failures.to_f/scenarios.size)*100).round
325
+ end
316
326
  end
327
+
328
+ # class StatisticsController < Ramaze::Controller
329
+ # include ViewUtilities
330
+ # map '/statistics'
331
+ # engine :Erubis
332
+ # layout :layout
333
+ # deny_layout :graph
334
+ # view_root(File.expand_path(File.join(File.dirname(__FILE__),"view")))
335
+ # def index
336
+ #
337
+ # end
338
+ # def config_report configuration
339
+ # @content="<img src=\"/statistics/graph/#{configuration}\""
340
+ # end
341
+ # def graph configuration
342
+ # response.header['Content-type'] = "image/jpg"
343
+ # successful=[]
344
+ # failed=[]
345
+ # labels=Hash.new
346
+ # if configuration
347
+ # #find all runs beloging to this configuration
348
+ # runs=Rutema::Model::Run.find(:all)
349
+ # runs=runs.select{|r| r.context[:config_file]==configuration if r.context.is_a?(Hash)}
350
+ # #now extract the data
351
+ #
352
+ # counter=0
353
+ # runs.each do |r|
354
+ # fails=r.number_of_failed
355
+ # successful<<r.scenarios.size-fails
356
+ # failed<<fails
357
+ # labels[counter]="R#{r.id}"
358
+ # counter+=1
359
+ # end
360
+ # end
361
+ # require 'rubygems'
362
+ # require 'gruff'
363
+ #
364
+ # graph=Gruff::StackedBar.new(640)
365
+ #
366
+ # graph.data("successful",successful)
367
+ # graph.data("failed",failed)
368
+ # graph.labels=labels
369
+ # return graph.to_blob("JPG")
370
+ # end
371
+ #
372
+ # private
373
+ # #extract all the configuration names
374
+ # def configurations
375
+ # runs=Rutema::Model::Run.find(:all)
376
+ # return runs.map{|r| r.context[:config_file] if r.context.is_a?(Hash)}.compact.uniq
377
+ # end
378
+ # end
317
379
  end
318
380
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rutemaweb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vassilis Rizopoulos
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-10-16 00:00:00 +02:00
12
+ date: 2008-11-05 00:00:00 +01:00
13
13
  default_executable: rutemaweb
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -90,7 +90,7 @@ dependencies:
90
90
  requirements:
91
91
  - - ">="
92
92
  - !ruby/object:Gem::Version
93
- version: 1.8.0
93
+ version: 1.8.2
94
94
  version:
95
95
  description: "== DESCRIPTION: rutemaweb is the web frontend for rutema. It can be used as a viewer for database files created with the ActiveRecord reporter. == FEATURES/PROBLEMS: == SYNOPSIS: rutemaweb [results.db] and browse to http://localhost:7000 for the glorious view == REQUIREMENTS: * patir (http://patir.rubyforge.org) * activerecord (http://ar.rubyonrails.com/) * sqlite3 (http://rubyforge.org/projects/sqlite-ruby/) * ramaze (http://www.ramaze.net/) * ruport (http://rubyreports.org/) * acts_as_reportable * erubis"
96
96
  email: riva@braveworld.net
@@ -153,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
153
  requirements: []
154
154
 
155
155
  rubyforge_project: patir
156
- rubygems_version: 1.3.0
156
+ rubygems_version: 1.3.1
157
157
  signing_key:
158
158
  specification_version: 2
159
159
  summary: rutemaweb is the web frontend for rutema