Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
avocado
提交
9bf52629
A
avocado
项目概览
openeuler
/
avocado
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
avocado
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
9bf52629
编写于
6月 24, 2019
作者:
C
Cleber Rosa
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'test_phases'
Signed-off-by:
N
Cleber Rosa
<
crosa@redhat.com
>
上级
8227de69
ac776472
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
55 addition
and
2 deletion
+55
-2
avocado/core/test.py
avocado/core/test.py
+19
-1
examples/tests/phases.py
examples/tests/phases.py
+24
-0
selftests/functional/test_basic.py
selftests/functional/test_basic.py
+11
-1
selftests/unit/test_runner_queue.py
selftests/unit/test_runner_queue.py
+1
-0
未找到文件。
avocado/core/test.py
浏览文件 @
9bf52629
...
...
@@ -61,7 +61,7 @@ TEST_STATE_ATTRIBUTES = ('name', 'logdir', 'logfile',
'status'
,
'running'
,
'paused'
,
'time_start'
,
'time_elapsed'
,
'time_end'
,
'fail_reason'
,
'fail_class'
,
'traceback'
,
'timeout'
,
'whiteboard'
)
'timeout'
,
'whiteboard'
,
'phase'
)
class
RawFileHandler
(
logging
.
FileHandler
):
...
...
@@ -336,6 +336,8 @@ class Test(unittest.TestCase, TestData):
:func:`avocado.data_dir.create_job_logs_dir`.
:param job: The job that this test is part of.
"""
self
.
__phase
=
'INIT'
def
record_and_warn
(
*
args
,
**
kwargs
):
""" Record call to this function and log warning """
if
not
self
.
__log_warn_used
:
...
...
@@ -588,6 +590,15 @@ class Test(unittest.TestCase, TestData):
def
traceback
(
self
):
return
self
.
__traceback
@
property
def
phase
(
self
):
"""
The current phase of the test execution
Possible (string) values are: INIT, SETUP, TEST, TEARDOWN and FINISHED
"""
return
self
.
__phase
def
__str__
(
self
):
return
str
(
self
.
name
)
...
...
@@ -818,6 +829,8 @@ class Test(unittest.TestCase, TestData):
skip_test
=
getattr
(
testMethod
,
'__skip_test_decorator__'
,
False
)
try
:
if
skip_test
is
False
:
self
.
__phase
=
'SETUP'
self
.
report_state
()
self
.
setUp
()
except
exceptions
.
TestSkipError
as
details
:
skip_test
=
True
...
...
@@ -832,6 +845,8 @@ class Test(unittest.TestCase, TestData):
raise
exceptions
.
TestSetupFail
(
details
)
else
:
try
:
self
.
__phase
=
'TEST'
self
.
report_state
()
testMethod
()
except
exceptions
.
TestCancel
as
details
:
stacktrace
.
log_exc_info
(
sys
.
exc_info
(),
logger
=
LOG_JOB
)
...
...
@@ -849,6 +864,8 @@ class Test(unittest.TestCase, TestData):
finally
:
try
:
if
skip_test
is
False
:
self
.
__phase
=
'TEARDOWN'
self
.
report_state
()
self
.
tearDown
()
except
exceptions
.
TestSkipError
as
details
:
stacktrace
.
log_exc_info
(
sys
.
exc_info
(),
logger
=
LOG_JOB
)
...
...
@@ -992,6 +1009,7 @@ class Test(unittest.TestCase, TestData):
for
e_line
in
tb_info
:
self
.
log
.
error
(
e_line
)
finally
:
self
.
__phase
=
'FINISHED'
self
.
_tag_end
()
self
.
_report
()
self
.
log
.
info
(
""
)
...
...
examples/tests/phases.py
0 → 100755
浏览文件 @
9bf52629
#!/usr/bin/env python
from
avocado
import
main
from
avocado
import
Test
class
Phases
(
Test
):
"""
Example test for checking the reported test phases
"""
def
setUp
(
self
):
self
.
assertEqual
(
self
.
phase
,
'SETUP'
)
def
test
(
self
):
self
.
assertEqual
(
self
.
phase
,
'TEST'
)
def
tearDown
(
self
):
self
.
assertEqual
(
self
.
phase
,
'TEARDOWN'
)
if
__name__
==
"__main__"
:
main
()
selftests/functional/test_basic.py
浏览文件 @
9bf52629
...
...
@@ -183,6 +183,14 @@ class RunnerOperationTest(unittest.TestCase):
self
.
assertIn
(
' data '
+
mapping
[
'data_dir'
],
result
.
stdout_text
)
self
.
assertIn
(
' logs '
+
mapping
[
'logs_dir'
],
result
.
stdout_text
)
def
test_runner_phases
(
self
):
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s '
'phases.py'
%
(
AVOCADO
,
self
.
tmpdir
))
result
=
process
.
run
(
cmd_line
)
expected_rc
=
exit_codes
.
AVOCADO_ALL_OK
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
def
test_runner_all_ok
(
self
):
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s '
'passtest.py passtest.py'
%
(
AVOCADO
,
self
.
tmpdir
))
...
...
@@ -298,7 +306,9 @@ class RunnerOperationTest(unittest.TestCase):
self
.
assertEqual
(
results
[
"tests"
][
0
][
"status"
],
"ERROR"
,
"%s != %s
\n
%s"
%
(
results
[
"tests"
][
0
][
"status"
],
"ERROR"
,
res
))
self
.
assertIn
(
"Test died without reporting the status"
,
self
.
assertIn
(
"Test reports unsupported test status"
,
results
[
"tests"
][
0
][
"fail_reason"
])
self
.
assertIn
(
"status: None"
,
results
[
"tests"
][
0
][
"fail_reason"
])
def
test_runner_tests_fail
(
self
):
...
...
selftests/unit/test_runner_queue.py
浏览文件 @
9bf52629
...
...
@@ -59,6 +59,7 @@ class TestRunnerQueue(unittest.TestCase):
msg
=
self
.
_run_test
(
factory
)
self
.
assertEqual
(
msg
[
'whiteboard'
],
'TXkgbWVzc2FnZSBlbmNvZGVkIGluIGJhc2U2NA==
\n
'
)
self
.
assertIn
(
'phase'
,
msg
)
def
tearDown
(
self
):
shutil
.
rmtree
(
self
.
tmpdir
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录