mirror of
https://github.com/lihop/godot-xterm.git
synced 2024-11-25 10:40:25 +01:00
118 lines
2.9 KiB
GDScript
118 lines
2.9 KiB
GDScript
|
# ------------------------------------------------------------------------------
|
||
|
# Used to keep track of info about each test ran.
|
||
|
# ------------------------------------------------------------------------------
|
||
|
# the name of the function
|
||
|
var name = ""
|
||
|
|
||
|
# flag to know if the name has been printed yet. Used by the logger.
|
||
|
var has_printed_name = false
|
||
|
|
||
|
# the number of arguments the method has
|
||
|
var arg_count = 0
|
||
|
|
||
|
# The number of asserts in the test. Converted to a property for backwards
|
||
|
# compatibility. This now reflects the text sizes instead of being a value
|
||
|
# that can be altered externally.
|
||
|
var assert_count = 0:
|
||
|
get:
|
||
|
return pass_texts.size() + fail_texts.size()
|
||
|
set(val):
|
||
|
pass
|
||
|
|
||
|
# Converted to propety for backwards compatibility. This now cannot be set
|
||
|
# externally
|
||
|
var pending = false:
|
||
|
get:
|
||
|
return is_pending()
|
||
|
set(val):
|
||
|
pass
|
||
|
|
||
|
# the line number when the test fails
|
||
|
var line_number = -1
|
||
|
|
||
|
# Set internally by Gut using whatever reason Gut wants to use to set this.
|
||
|
# Gut will skip these marked true and the test will be listed as risky.
|
||
|
var should_skip = false
|
||
|
|
||
|
var pass_texts = []
|
||
|
var fail_texts = []
|
||
|
var pending_texts = []
|
||
|
var orphans = 0
|
||
|
|
||
|
var was_run = false
|
||
|
|
||
|
|
||
|
func did_pass():
|
||
|
return is_passing()
|
||
|
|
||
|
|
||
|
func add_fail(fail_text):
|
||
|
fail_texts.append(fail_text)
|
||
|
|
||
|
|
||
|
func add_pending(pending_text):
|
||
|
pending_texts.append(pending_text)
|
||
|
|
||
|
|
||
|
func add_pass(passing_text):
|
||
|
pass_texts.append(passing_text)
|
||
|
|
||
|
|
||
|
# must have passed an assert and not have any other status to be passing
|
||
|
func is_passing():
|
||
|
return pass_texts.size() > 0 and fail_texts.size() == 0 and pending_texts.size() == 0
|
||
|
|
||
|
|
||
|
# failing takes precedence over everything else, so any failures makes the
|
||
|
# test a failure.
|
||
|
func is_failing():
|
||
|
return fail_texts.size() > 0
|
||
|
|
||
|
|
||
|
# test is only pending if pending was called and the test is not failing.
|
||
|
func is_pending():
|
||
|
return pending_texts.size() > 0 and fail_texts.size() == 0
|
||
|
|
||
|
|
||
|
func is_risky():
|
||
|
return should_skip or (was_run and !did_something())
|
||
|
|
||
|
|
||
|
func did_something():
|
||
|
return is_passing() or is_failing() or is_pending()
|
||
|
|
||
|
|
||
|
func get_status_text():
|
||
|
var to_return = GutUtils.TEST_STATUSES.NO_ASSERTS
|
||
|
|
||
|
if should_skip:
|
||
|
to_return = GutUtils.TEST_STATUSES.SKIPPED
|
||
|
elif !was_run:
|
||
|
to_return = GutUtils.TEST_STATUSES.NOT_RUN
|
||
|
elif pending_texts.size() > 0:
|
||
|
to_return = GutUtils.TEST_STATUSES.PENDING
|
||
|
elif fail_texts.size() > 0:
|
||
|
to_return = GutUtils.TEST_STATUSES.FAILED
|
||
|
elif pass_texts.size() > 0:
|
||
|
to_return = GutUtils.TEST_STATUSES.PASSED
|
||
|
|
||
|
return to_return
|
||
|
|
||
|
|
||
|
# Deprecated
|
||
|
func get_status():
|
||
|
return get_status_text()
|
||
|
|
||
|
|
||
|
func to_s():
|
||
|
var pad = " "
|
||
|
var to_return = str(name, "[", get_status_text(), "]\n")
|
||
|
|
||
|
for i in range(fail_texts.size()):
|
||
|
to_return += str(pad, "Fail: ", fail_texts[i])
|
||
|
for i in range(pending_texts.size()):
|
||
|
to_return += str(pad, "Pending: ", pending_texts[i], "\n")
|
||
|
for i in range(pass_texts.size()):
|
||
|
to_return += str(pad, "Pass: ", pass_texts[i], "\n")
|
||
|
return to_return
|