Class: Kapnismology::SmokeTest

Inherits:
Object
  • Object
show all
Defined in:
lib/kapnismology/smoke_test.rb

Overview

This is the base class for all the smoke tests. Inherit from this class and implement the result and self.name method

Defined Under Namespace

Classes: NullResult, Result, SmokeTestFailed, Success

Constant Summary collapse

DEPLOYMENT_TAG =
'deployment'.freeze
RUNTIME_TAG =
'runtime'.freeze
DEFAULT_TAGS =
[DEPLOYMENT_TAG, RUNTIME_TAG].freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSmokeTest

Default constructor may be overwritten by child class



15
16
17
# File 'lib/kapnismology/smoke_test.rb', line 15

def initialize
  @all_result_messages = []
end

Class Method Details

.inherited(klass) ⇒ Object



39
40
41
# File 'lib/kapnismology/smoke_test.rb', line 39

def inherited(klass)
  SmokeTestCollection.add_smoke_test(klass)
end

.tagsObject



43
44
45
# File 'lib/kapnismology/smoke_test.rb', line 43

def tags
  DEFAULT_TAGS
end

Instance Method Details

#__result__Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/kapnismology/smoke_test.rb', line 23

def __result__
  result_object = result
  unless result_object.is_a?(Kapnismology::BaseResult)
    message = "Smoke test #{self.class}, returned #{result_object.class} instead of a Result"
    result_object = Result.new(false, { returned_class: result_object.class }, message)
  end
rescue SmokeTestFailed => e
  result_object = e.result
rescue => e
  message = "Unrescued error happened in #{self.class}"
  result_object = Result.new(false, { exception: e.class, message: e.message }, message)
ensure
  return result_object.add_extra_messages(@all_result_messages)
end

#resultObject



19
20
21
# File 'lib/kapnismology/smoke_test.rb', line 19

def result

end