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_first, #expect_last, #expect_none, #expect_nothing, #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
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 69 |
# File 'lib/teuton/case/case.rb', line 29 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
18 19 20 |
# File 'lib/teuton/case/case.rb', line 18 def action @action end |
#config ⇒ Object (readonly)
Readed by ExecuteManager
24 25 26 |
# File 'lib/teuton/case/case.rb', line 24 def config @config end |
#conn_status ⇒ Object
Updated by ExecuteManager
21 22 23 |
# File 'lib/teuton/case/case.rb', line 21 def conn_status @conn_status end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
23 24 25 |
# File 'lib/teuton/case/case.rb', line 23 def id @id end |
#result ⇒ Object
Updated by ExecuteManager
19 20 21 |
# File 'lib/teuton/case/case.rb', line 19 def result @result end |
#sessions ⇒ Object
Updated by ExecuteManager
20 21 22 |
# File 'lib/teuton/case/case.rb', line 20 def sessions @sessions end |
#skip ⇒ Object (readonly) Also known as: skip?
Returns the value of attribute skip.
26 27 28 |
# File 'lib/teuton/case/case.rb', line 26 def skip @skip end |
#uniques ⇒ Object (readonly)
Returns the value of attribute uniques.
25 26 27 |
# File 'lib/teuton/case/case.rb', line 25 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
71 72 73 74 75 |
# File 'lib/teuton/case/case.rb', line 71 def export(format) return if skip? @report.export format end |
#filename ⇒ Object
77 78 79 80 |
# File 'lib/teuton/case/case.rb', line 77 def filename # called from: close_main_report @report.filename end |
#grade ⇒ Object
82 83 84 85 86 |
# File 'lib/teuton/case/case.rb', line 82 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
88 89 90 91 92 |
# File 'lib/teuton/case/case.rb', line 88 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 |