BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
706d49b2
Commit
706d49b2
authored
Sep 04, 2017
by
Gabriel Mazetto
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added dynamic skip reason to SystemCheck
parent
6c21e6f9
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
44 additions
and
3 deletions
+44
-3
base_check.rb
lib/system_check/base_check.rb
+19
-0
simple_executor.rb
lib/system_check/simple_executor.rb
+2
-2
simple_executor_spec.rb
spec/lib/system_check/simple_executor_spec.rb
+23
-1
No files found.
lib/system_check/base_check.rb
View file @
706d49b2
...
@@ -62,6 +62,25 @@ module SystemCheck
...
@@ -62,6 +62,25 @@ module SystemCheck
call_or_return
(
@skip_reason
)
||
'skipped'
call_or_return
(
@skip_reason
)
||
'skipped'
end
end
# Define a reason why we skipped the SystemCheck (during runtime)
#
# This is used when you need dynamic evaluation like when you have
# multiple reasons why a check can fail
#
# @param [String] reason to be displayed
def
skip_reason
=
(
reason
)
@skip_reason
=
reason
end
# Skip reason defined during runtime
#
# This value have precedence over the one defined in the subclass
#
# @return [String] the reason
def
skip_reason
@skip_reason
end
# Does the check support automatically repair routine?
# Does the check support automatically repair routine?
#
#
# @return [Boolean] whether check implemented `#repair!` method or not
# @return [Boolean] whether check implemented `#repair!` method or not
...
...
lib/system_check/simple_executor.rb
View file @
706d49b2
...
@@ -23,7 +23,7 @@ module SystemCheck
...
@@ -23,7 +23,7 @@ module SystemCheck
#
#
# @param [BaseCheck] check class
# @param [BaseCheck] check class
def
<<
(
check
)
def
<<
(
check
)
raise
ArgumentError
unless
check
<
BaseCheck
raise
ArgumentError
unless
check
.
is_a?
(
Class
)
&&
check
<
BaseCheck
@checks
<<
check
@checks
<<
check
end
end
...
@@ -48,7 +48,7 @@ module SystemCheck
...
@@ -48,7 +48,7 @@ module SystemCheck
# When implements skip method, we run it first, and if true, skip the check
# When implements skip method, we run it first, and if true, skip the check
if
check
.
can_skip?
&&
check
.
skip?
if
check
.
can_skip?
&&
check
.
skip?
$stdout
.
puts
check_klass
.
skip_reason
.
color
(
:magenta
)
$stdout
.
puts
check
.
skip_reason
.
try
(
:color
,
:magenta
)
||
check
_klass
.
skip_reason
.
color
(
:magenta
)
return
return
end
end
...
...
spec/lib/system_check/simple_executor_spec.rb
View file @
706d49b2
...
@@ -35,6 +35,20 @@ describe SystemCheck::SimpleExecutor do
...
@@ -35,6 +35,20 @@ describe SystemCheck::SimpleExecutor do
end
end
end
end
class
DynamicSkipCheck
<
SystemCheck
::
BaseCheck
set_name
'dynamic skip check'
set_skip_reason
'this is a skip reason'
def
skip?
self
.
skip_reason
=
'this is a dynamic skip reason'
true
end
def
check?
raise
'should not execute this'
end
end
class
MultiCheck
<
SystemCheck
::
BaseCheck
class
MultiCheck
<
SystemCheck
::
BaseCheck
set_name
'multi check'
set_name
'multi check'
...
@@ -127,6 +141,10 @@ describe SystemCheck::SimpleExecutor do
...
@@ -127,6 +141,10 @@ describe SystemCheck::SimpleExecutor do
expect
(
subject
.
checks
.
size
).
to
eq
(
1
)
expect
(
subject
.
checks
.
size
).
to
eq
(
1
)
end
end
it
'errors out when passing multiple items'
do
expect
{
subject
<<
[
SimpleCheck
,
OtherCheck
]
}.
to
raise_error
(
ArgumentError
)
end
end
end
subject
{
described_class
.
new
(
'Test'
)
}
subject
{
described_class
.
new
(
'Test'
)
}
...
@@ -205,10 +223,14 @@ describe SystemCheck::SimpleExecutor do
...
@@ -205,10 +223,14 @@ describe SystemCheck::SimpleExecutor do
subject
.
run_check
(
SkipCheck
)
subject
.
run_check
(
SkipCheck
)
end
end
it
'displays
#
skip_reason'
do
it
'displays
.
skip_reason'
do
expect
{
subject
.
run_check
(
SkipCheck
)
}.
to
output
(
/this is a skip reason/
).
to_stdout
expect
{
subject
.
run_check
(
SkipCheck
)
}.
to
output
(
/this is a skip reason/
).
to_stdout
end
end
it
'displays #skip_reason'
do
expect
{
subject
.
run_check
(
DynamicSkipCheck
)
}.
to
output
(
/this is a dynamic skip reason/
).
to_stdout
end
it
'does not execute #check when #skip? is true'
do
it
'does not execute #check when #skip? is true'
do
expect_any_instance_of
(
SkipCheck
).
not_to
receive
(
:check?
)
expect_any_instance_of
(
SkipCheck
).
not_to
receive
(
:check?
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment