Class: Case
- Inherits:
-
Object
- Object
- Case
- Defined in:
- lib/teuton/case/config.rb,
lib/teuton/case/case.rb,
lib/teuton/case/play.rb,
lib/teuton/case/close.rb,
lib/teuton/case/builtin/main.rb,
lib/teuton/case/deprecated/runner.rb
Overview
Class Case::Config
-
get
-
set
-
unset
-
missing_method
Defined Under Namespace
Classes: Config
Constant Summary collapse
- @@id =
First case ID value
"01"
Instance Attribute Summary collapse
-
#action ⇒ Object
Updated by ExecuteManager.
-
#config ⇒ Object
readonly
Readed by ExecuteManager.
-
#conn_status ⇒ Object
Updated by ExecuteManager.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#result ⇒ Object
Updated by ExecuteManager.
-
#sessions ⇒ Object
Updated by ExecuteManager.
-
#skip ⇒ Object
(also: #skip?)
readonly
Returns the value of attribute skip.
-
#uniques ⇒ Object
readonly
Returns the value of attribute uniques.
Instance Method Summary collapse
- #close(uniques) ⇒ Object
- #close_opened_sessions ⇒ Object
- #export(format) ⇒ Object
- #filename ⇒ Object
- #grade ⇒ Object
- #host(host = "localhost") ⇒ Object
-
#initialize(config) ⇒ Case
constructor
A new instance of Case.
- #members ⇒ Object
-
#play ⇒ Object
(also: #start)
Case class: play TODO: Encapsulate code into PlayManager class * play_in_parallel, play_in_sequence, fill_report, close_opened_sessions READ: sessions, config, groups, action, report TODO: groups from Project or from Case???.
Methods included from Verbose
Methods included from DSL
#expect, #expect2, #expect_any, #expect_exit, #expect_fail, #expect_first, #expect_last, #expect_none, #expect_nothing, #expect_ok, #expect_one, #get, #gett, #goto, #log, #macro, #method_missing, #readme, #remote_tempdir, #remote_tempfile, #respond_to_missing?, #run, #send, #set, #target, #tempdir, #tempfile, #unique, #unset, #weight
Constructor Details
#initialize(config) ⇒ Case
Returns a new instance of Case.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/teuton/case/case.rb', line 28 def initialize(config) @config = Case::Config.new( local: config, global: Project.value[:global] ) @groups = Project.value[:groups] @id = @@id @@id = @@id.next # Define Case Report @report = Report.new(@id) @report.output_dir = File.join("var", @config.global[:tt_testname]) # Default configuration @skip = false @skip = get(:tt_skip) unless get(:tt_skip) == "NODATA" unless Project.value[:options]["case"].nil? @skip = true @skip = false if Project.value[:options]["case"].include? @id.to_i end @debug = Project.debug? @verbose = Project.value[:verbose] @tmpdir = File.join("var", @config.get(:tt_testname), "tmp", @id.to_s) # ensure_dir @tmpdir # REVISE: When we will need this? Samba? @unique_values = {} @result = Result.new @action_counter = 0 @action = { id: 0, weight: 1.0, description: "No description!", groupname: nil } @uniques = [] @sessions = {} # Store opened sessions for this case @conn_status = {} tempfile :default end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class DSL
Instance Attribute Details
#action ⇒ Object
Updated by ExecuteManager
17 18 19 |
# File 'lib/teuton/case/case.rb', line 17 def action @action end |
#config ⇒ Object (readonly)
Readed by ExecuteManager
23 24 25 |
# File 'lib/teuton/case/case.rb', line 23 def config @config end |
#conn_status ⇒ Object
Updated by ExecuteManager
20 21 22 |
# File 'lib/teuton/case/case.rb', line 20 def conn_status @conn_status end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
22 23 24 |
# File 'lib/teuton/case/case.rb', line 22 def id @id end |
#result ⇒ Object
Updated by ExecuteManager
18 19 20 |
# File 'lib/teuton/case/case.rb', line 18 def result @result end |
#sessions ⇒ Object
Updated by ExecuteManager
19 20 21 |
# File 'lib/teuton/case/case.rb', line 19 def sessions @sessions end |
#skip ⇒ Object (readonly) Also known as: skip?
Returns the value of attribute skip.
25 26 27 |
# File 'lib/teuton/case/case.rb', line 25 def skip @skip end |
#uniques ⇒ Object (readonly)
Returns the value of attribute uniques.
24 25 26 |
# File 'lib/teuton/case/case.rb', line 24 def uniques @uniques end |
Instance Method Details
#close(uniques) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/teuton/case/close.rb', line 4 def close(uniques) # Invoked from check_cases! fails = 0 @uniques.each do |key| next unless uniques[key].include?(id) && uniques[key].count > 1 fails += 1 (key, uniques[key]) end @report.tail[:unique_fault] = fails @report.close end |
#close_opened_sessions ⇒ Object
21 22 23 24 25 |
# File 'lib/teuton/case/play.rb', line 21 def close_opened_sessions @sessions.each_value do |s| s.close if s.instance_of? Net::SSH::Connection::Session end end |
#export(format) ⇒ Object
70 71 72 73 74 |
# File 'lib/teuton/case/case.rb', line 70 def export(format) return if skip? @report.export format end |
#filename ⇒ Object
76 77 78 79 |
# File 'lib/teuton/case/case.rb', line 76 def filename # called from: close_main_report @report.filename end |
#grade ⇒ Object
81 82 83 84 85 |
# File 'lib/teuton/case/case.rb', line 81 def grade return 0.0 if skip @report.tail[:grade] end |
#host(host = "localhost") ⇒ Object
4 5 6 |
# File 'lib/teuton/case/builtin/main.rb', line 4 def host(host = "localhost") TeutonHost.new(self, host) end |
#members ⇒ Object
87 88 89 90 91 |
# File 'lib/teuton/case/case.rb', line 87 def members return "-" if skip @report.head[:tt_members] || "noname" end |
#play ⇒ Object Also known as: start
Case class: play TODO: Encapsulate code into PlayManager class
-
play_in_parallel, play_in_sequence, fill_report, close_opened_sessions
READ: sessions, config, groups, action, report TODO: groups from Project or from Case???
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/teuton/case/play.rb', line 9 def play if skip? verbose Rainbow("S").green return false end start_time = Time.now play_groups_in_sequence fill_report(start_time, Time.now) close_opened_sessions end |