summaryrefslogtreecommitdiff
path: root/spec/acceptance/build_csv.rb
diff options
context:
space:
mode:
authorHunter Haugen <hunter@puppetlabs.com>2014-05-02 13:42:25 -0700
committerHunter Haugen <hunter@puppetlabs.com>2014-05-02 13:44:20 -0700
commit226cc7653c468afecf70ca3cdc8594ba874998db (patch)
tree5b634bfcd63ce60c36ae394cdbe7faf3fcabb900 /spec/acceptance/build_csv.rb
parent7443e8b80562295abd856bd0642e6e28a2fcf4bb (diff)
Update build_csv to understand contexts
Diffstat (limited to 'spec/acceptance/build_csv.rb')
-rw-r--r--spec/acceptance/build_csv.rb24
1 files changed, 19 insertions, 5 deletions
diff --git a/spec/acceptance/build_csv.rb b/spec/acceptance/build_csv.rb
index 556d1f8..62ecbf1 100644
--- a/spec/acceptance/build_csv.rb
+++ b/spec/acceptance/build_csv.rb
@@ -1,7 +1,6 @@
#!/usr/bin/env ruby
# vim: set sw=2 sts=2 et tw=80 :
require 'rspec'
-require 'pry'
#XXX Super ugly hack to keep from starting beaker nodes
module Kernel
@@ -44,15 +43,30 @@ def get_tests(children)
end
end
+def count_test_types_in(type,group)
+ return 0 if group.nil?
+ group.inject(0) do |m,(k,v)|
+ m += v.length if k == type
+ m += count_tests_in(v) if v.is_a?(Hash)
+ m
+ end
+end
+def count_tests_in(group)
+ count_test_types_in('tests',group)
+end
+def count_pending_tests_in(group)
+ count_test_types_in('pending_tests',group)
+end
+
# Convert tests hash to csv format
def to_csv(function_list,tests)
function_list.collect do |function_name|
if v = tests["#{function_name} function"]
- positive_tests = v["groups"]["success"] ? v["groups"]["success"]["tests"].length : 0
- negative_tests = v["groups"]["failure"] ? v["groups"]["failure"]["tests"].length : 0
+ positive_tests = count_tests_in(v["groups"]["success"])
+ negative_tests = count_tests_in(v["groups"]["failure"])
pending_tests =
- (v["groups"]["failure"] ? v["groups"]["success"]["pending_tests"].length : 0) +
- (v["groups"]["failure"] ? v["groups"]["failure"]["pending_tests"].length : 0)
+ count_pending_tests_in(v["groups"]["failure"]) +
+ count_pending_tests_in(v["groups"]["failure"])
else
positive_tests = 0
negative_tests = 0