kapnismology 0.0.3 → 0.1.0
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 +4 -4
- data/app/controllers/kapnismology/smoke_tests_controller.rb +10 -2
- data/lib/kapnismology.rb +1 -1
- data/lib/kapnismology/engine.rb +4 -1
- data/lib/kapnismology/evaluation.rb +3 -3
- data/lib/kapnismology/evaluation_collection.rb +35 -0
- data/lib/kapnismology/rake_task.rb +2 -3
- data/lib/kapnismology/result.rb +0 -2
- data/lib/kapnismology/smoke_test.rb +2 -4
- data/lib/kapnismology/version.rb +1 -1
- metadata +31 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a05110e9b2addcd9d077d36b678e0cffe0d3a97
|
4
|
+
data.tar.gz: 2bdfbe64c9780805ef8f64f2e4de157f567720f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eee5969dccaa61696a93b799045adcba90693b46717011e86c1c52b58c794b620ce9efb576b81092f353166cf24431c8ce4e2e5be7b20fb458d8dfc150cff963
|
7
|
+
data.tar.gz: ee025709b71099a390c5bf88c4fc6132fb2d52fa8199f7844d4f9020449988a4138dba692e31f35ee64469933df6493b4315e689889fe25508991239a7c1b51d
|
@@ -1,8 +1,16 @@
|
|
1
1
|
module Kapnismology
|
2
2
|
class SmokeTestsController < ApplicationController
|
3
3
|
def index
|
4
|
-
|
5
|
-
render text:
|
4
|
+
evaluations = SmokeTest.evaluations
|
5
|
+
render text: evaluations.to_json, status: status(evaluations)
|
6
6
|
end
|
7
|
+
|
8
|
+
private
|
9
|
+
def status(evaluations)
|
10
|
+
if evaluations.passed?
|
11
|
+
:ok
|
12
|
+
else
|
13
|
+
:service_unavailable
|
14
|
+
end
|
7
15
|
end
|
8
16
|
end
|
data/lib/kapnismology.rb
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
unless defined?(Kapnismology::Engine)
|
3
3
|
require "kapnismology/engine"
|
4
4
|
end
|
5
|
-
require 'contracts'
|
6
5
|
require 'kapnismology/result'
|
7
6
|
require 'kapnismology/evaluation'
|
7
|
+
require 'kapnismology/evaluation_collection'
|
8
8
|
require 'kapnismology/rake_task'
|
9
9
|
require 'kapnismology/smoke_test'
|
data/lib/kapnismology/engine.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
module Kapnismology
|
2
|
+
begin
|
2
3
|
class Engine < ::Rails::Engine
|
3
4
|
initializer "kapnismology.add_autoload_paths", before: :set_autoload_paths do |app|
|
4
5
|
app.config.eager_load_paths += Dir["#{app.config.root}/lib/**/*"]
|
@@ -17,5 +18,7 @@ module Kapnismology
|
|
17
18
|
end
|
18
19
|
end
|
19
20
|
end
|
20
|
-
|
21
|
+
rescue NameError => e
|
22
|
+
puts "Incompatible Rails version #{e}"
|
23
|
+
end
|
21
24
|
end
|
@@ -1,18 +1,18 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
1
3
|
module Kapnismology
|
2
4
|
|
3
5
|
# Mapping of test_name => result for each smoke test
|
4
6
|
class Evaluation
|
5
|
-
include Contracts
|
6
7
|
extend Forwardable
|
7
8
|
attr_reader :test_name
|
8
9
|
def_delegators :@result, :data, :passed, :message
|
9
10
|
|
10
|
-
# Contract String, Any
|
11
11
|
def initialize(test_name, result)
|
12
12
|
@test_name, @result = test_name, result
|
13
13
|
end
|
14
14
|
|
15
|
-
def to_json
|
15
|
+
def to_json(_options = nil)
|
16
16
|
{test_name => @result.to_hash}.to_json
|
17
17
|
end
|
18
18
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
module Kapnismology
|
4
|
+
class EvaluationCollection
|
5
|
+
include Enumerable
|
6
|
+
|
7
|
+
def initialize(smoke_tests)
|
8
|
+
@smoke_tests = smoke_tests
|
9
|
+
end
|
10
|
+
|
11
|
+
def each(&block)
|
12
|
+
evaluations.each do |member|
|
13
|
+
block.call(member)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def passed?
|
18
|
+
evaluations.all?{|evaluation| evaluation.passed}
|
19
|
+
end
|
20
|
+
|
21
|
+
def to_json
|
22
|
+
evaluations.to_json
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def evaluations
|
28
|
+
@evaluations ||= @smoke_tests.map do |smoke_test|
|
29
|
+
result = smoke_test.result
|
30
|
+
Evaluation.new(smoke_test.name, result) if result
|
31
|
+
end.compact
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
@@ -1,14 +1,13 @@
|
|
1
1
|
module Kapnismology
|
2
2
|
class RakeTask
|
3
3
|
def output
|
4
|
-
evaluations = SmokeTest.
|
4
|
+
evaluations = SmokeTest.evaluations
|
5
5
|
evaluations.each do |evaluation|
|
6
6
|
puts "The smoke test #{evaluation.test_name} #{passed_or_failed(evaluation.passed)}"
|
7
7
|
puts evaluation.message
|
8
8
|
puts
|
9
9
|
end
|
10
|
-
|
11
|
-
fail 'We have some failures in our smoke tests' unless all_passed
|
10
|
+
fail 'We have some failures in our smoke tests' unless evaluations.passed?
|
12
11
|
end
|
13
12
|
|
14
13
|
def passed_or_failed(passed)
|
data/lib/kapnismology/result.rb
CHANGED
@@ -7,10 +7,8 @@ module Kapnismology
|
|
7
7
|
# * passed : Boolean: true -> test passed, false -> test failed
|
8
8
|
# * message: String: extra message set by the test if it wants to provide more information
|
9
9
|
class Result
|
10
|
-
include Contracts
|
11
10
|
attr_reader :data, :passed, :message
|
12
11
|
|
13
|
-
# Contract Any, Bool, String => nil
|
14
12
|
def initialize(data, passed, message)
|
15
13
|
@data, @passed, @message = data, passed, message
|
16
14
|
end
|
@@ -25,10 +25,8 @@ module Kapnismology
|
|
25
25
|
@smoke_tests ||= []
|
26
26
|
end
|
27
27
|
|
28
|
-
def
|
29
|
-
|
30
|
-
memo.push(Evaluation.new(smoke_test.name, smoke_test.new.result))
|
31
|
-
end
|
28
|
+
def evaluations
|
29
|
+
EvaluationCollection.new(smoke_tests)
|
32
30
|
end
|
33
31
|
end
|
34
32
|
|
data/lib/kapnismology/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kapnismology
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jordi Polo Carres
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -25,47 +25,61 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '4.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
34
|
-
type: :
|
33
|
+
version: '3.2'
|
34
|
+
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '3.2'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: byebug
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '6.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '6.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: mutant
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0.8'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '0.8'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: mutant-rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.8'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.8'
|
69
83
|
description: Engine for smoke tests and base classes
|
70
84
|
email:
|
71
85
|
- mumismo@gmail.com
|
@@ -81,12 +95,14 @@ files:
|
|
81
95
|
- lib/kapnismology.rb
|
82
96
|
- lib/kapnismology/engine.rb
|
83
97
|
- lib/kapnismology/evaluation.rb
|
98
|
+
- lib/kapnismology/evaluation_collection.rb
|
84
99
|
- lib/kapnismology/rake_task.rb
|
85
100
|
- lib/kapnismology/result.rb
|
86
101
|
- lib/kapnismology/smoke_test.rb
|
87
102
|
- lib/kapnismology/version.rb
|
88
103
|
homepage: https://www.github.com/JordiPolo/kapnismology
|
89
|
-
licenses:
|
104
|
+
licenses:
|
105
|
+
- MIT
|
90
106
|
metadata: {}
|
91
107
|
post_install_message:
|
92
108
|
rdoc_options: []
|