Class: HybridPlatformsConductor::Test
- Defined in:
- lib/hybrid_platforms_conductor/test.rb
Overview
Common ancestor to any test class
Direct Known Subclasses
HpcPlugins::Test::BitbucketConf, HpcPlugins::Test::CanBeChecked, HpcPlugins::Test::DeployFreshness, HpcPlugins::Test::Divergence, HpcPlugins::Test::Executables, HpcPlugins::Test::FileSystemHdfs, HpcPlugins::Test::GithubCi, HpcPlugins::Test::JenkinsCiConf, HpcPlugins::Test::JenkinsCiMastersOk, HpcPlugins::Test::LinearStrategy, HpcPlugins::Test::PrivateIps, HpcPlugins::Test::PublicIps, HpcPlugins::Test::Veids, TestByService, TestOnlyRemoteNode
Constant Summary
Constants included from LoggerHelpers
LoggerHelpers::LEVELS_MODIFIERS, LoggerHelpers::LEVELS_TO_STDERR
Class Attribute Summary collapse
-
.nodes_handler ⇒ Object
A NodesHandler instance that can be useful for test classes that need to access nodes information.
Instance Attribute Summary collapse
-
#errors ⇒ Object
readonly
Get errors encountered Array<String>.
-
#expected_failure ⇒ Object
readonly
Expected failure, or nil if not expected to fail String or nil.
-
#name ⇒ Object
readonly
Get the test name String.
-
#node ⇒ Object
readonly
Get the node name being tested, or nil for global and platform tests String or nil.
-
#platform ⇒ Object
readonly
Get the platform being tested, or nil for global tests PlatformHandler or nil.
Class Method Summary collapse
-
.only_on_nodes ⇒ Object
Limit the list of nodes for these tests.
-
.only_on_platforms ⇒ Object
Limit the list of platform types for these tests.
Instance Method Summary collapse
-
#assert_equal(tested_object, expected_object, error_msg, details = nil) ⇒ Object
Assert an equality.
-
#assert_match(tested_object, expected_object, error_msg, details = nil) ⇒ Object
Assert a String match.
-
#error(message, details = nil) ⇒ Object
Register an error.
-
#executed ⇒ Object
Mark the test has being executed.
-
#executed? ⇒ Boolean
Has the test been executed?.
-
#initialize(logger, logger_stderr, config, cmd_runner, nodes_handler, deployer, name: 'unknown_test', platform: nil, node: nil, expected_failure: nil) ⇒ Test
constructor
Constructor.
-
#to_s ⇒ Object
Get a String identifier of this test, useful for outputing messages.
Methods inherited from Plugin
extend_config_dsl_with, valid?
Methods included from LoggerHelpers
#err, #init_loggers, #log_component=, #log_debug?, #log_level=, #out, #section, #set_loggers_format, #stderr_device, #stderr_device=, #stderr_displayed?, #stdout_device, #stdout_device=, #stdout_displayed?, #stdouts_to_s, #with_progress_bar
Constructor Details
#initialize(logger, logger_stderr, config, cmd_runner, nodes_handler, deployer, name: 'unknown_test', platform: nil, node: nil, expected_failure: nil) ⇒ Test
Constructor
- Parameters
-
logger (Logger): Logger to be used
-
logger_stderr (Logger): Logger to be used for stderr
-
config (Config): Config to be used.
-
cmd_runner (CmdRunner): CmdRunner that can be used by tests
-
nodes_handler (NodesHandler): Nodes handler that can be used by tests
-
deployer (Deployer): Deployer that can be used by tests
-
name (String): Name of the test being instantiated [default: ‘unknown_test’]
-
platform (PlatformHandler): Platform handler for which the test is instantiated, or nil if global or node specific [default: nil]
-
node (String): Node name for which the test is instantiated, or nil if global or platform specific [default: nil]
-
expected_failure (String or nil): Expected failure, or nil if not expected to fail [default: nil]
49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/hybrid_platforms_conductor/test.rb', line 49 def initialize(logger, logger_stderr, config, cmd_runner, nodes_handler, deployer, name: 'unknown_test', platform: nil, node: nil, expected_failure: nil) super(logger: logger, logger_stderr: logger_stderr, config: config) @cmd_runner = cmd_runner @nodes_handler = nodes_handler @deployer = deployer @name = name @platform = platform @node = node @expected_failure = expected_failure @errors = [] @executed = false end |
Class Attribute Details
.nodes_handler ⇒ Object
A NodesHandler instance that can be useful for test classes that need to access nodes information
12 13 14 |
# File 'lib/hybrid_platforms_conductor/test.rb', line 12 def nodes_handler @nodes_handler end |
Instance Attribute Details
#errors ⇒ Object (readonly)
Get errors encountered
Array<String>
18 19 20 |
# File 'lib/hybrid_platforms_conductor/test.rb', line 18 def errors @errors end |
#expected_failure ⇒ Object (readonly)
Expected failure, or nil if not expected to fail
String or nil
34 35 36 |
# File 'lib/hybrid_platforms_conductor/test.rb', line 34 def expected_failure @expected_failure end |
#name ⇒ Object (readonly)
Get the test name
String
22 23 24 |
# File 'lib/hybrid_platforms_conductor/test.rb', line 22 def name @name end |
#node ⇒ Object (readonly)
Get the node name being tested, or nil for global and platform tests
String or nil
30 31 32 |
# File 'lib/hybrid_platforms_conductor/test.rb', line 30 def node @node end |
#platform ⇒ Object (readonly)
Get the platform being tested, or nil for global tests
PlatformHandler or nil
26 27 28 |
# File 'lib/hybrid_platforms_conductor/test.rb', line 26 def platform @platform end |
Class Method Details
.only_on_nodes ⇒ Object
Limit the list of nodes for these tests.
- Result
-
Array<String or Regex> or nil: List of nodes allowed for this test, or nil for all. Regular expressions matching node names can also be used.
135 136 137 |
# File 'lib/hybrid_platforms_conductor/test.rb', line 135 def self.only_on_nodes nil end |
.only_on_platforms ⇒ Object
Limit the list of platform types for these tests.
- Result
-
Array<Symbol> or nil: List of platform types allowed for this test, or nil for all
127 128 129 |
# File 'lib/hybrid_platforms_conductor/test.rb', line 127 def self.only_on_platforms nil end |
Instance Method Details
#assert_equal(tested_object, expected_object, error_msg, details = nil) ⇒ Object
Assert an equality
- Parameters
-
tested_object (Object): The object being tested
-
expected_object (Object): The object being expected
-
error_msg (String): Error message to associate in case of inequality
-
details (String or nil): Additional details, or nil if none [default = nil]
85 86 87 |
# File 'lib/hybrid_platforms_conductor/test.rb', line 85 def assert_equal(tested_object, expected_object, error_msg, details = nil) error error_msg, details unless tested_object == expected_object end |
#assert_match(tested_object, expected_object, error_msg, details = nil) ⇒ Object
Assert a String match
- Parameters
-
tested_object (String): The object being tested
-
expected_object (Regex): The object being expected
-
error_msg (String): Error message to associate in case of inequality
-
details (String or nil): Additional details, or nil if none [default = nil]
96 97 98 |
# File 'lib/hybrid_platforms_conductor/test.rb', line 96 def assert_match(tested_object, expected_object, error_msg, details = nil) error error_msg, details unless tested_object =~ expected_object end |
#error(message, details = nil) ⇒ Object
Register an error
- Parameters
-
message (String): The error message
-
details (String or nil): Additional details, or nil if none [default = nil]
105 106 107 108 |
# File 'lib/hybrid_platforms_conductor/test.rb', line 105 def error(, details = nil) log_error "[ #{self} ] - #{}#{details.nil? ? '' : "\n#{details}"}" if @expected_failure.nil? @errors << end |
#executed ⇒ Object
Mark the test has being executed
111 112 113 |
# File 'lib/hybrid_platforms_conductor/test.rb', line 111 def executed @executed = true end |
#executed? ⇒ Boolean
Has the test been executed?
- Result
-
Boolean: Has the test been executed?
119 120 121 |
# File 'lib/hybrid_platforms_conductor/test.rb', line 119 def executed? @executed end |
#to_s ⇒ Object
Get a String identifier of this test, useful for outputing messages
- Result
-
String: Identifier of this test
66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/hybrid_platforms_conductor/test.rb', line 66 def to_s test_desc = if !node.nil? "Node #{@node}" elsif !platform.nil? "Platform #{@platform.name}" else 'Global' end "#< Test #{name} - #{test_desc} >" end |