Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
avocado
提交
de63af37
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,发现更多精彩内容 >>
未验证
提交
de63af37
编写于
2月 16, 2018
作者:
A
Amador Pahim
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'clebergnu-selftests_and_misc_fixes_4th_batch_v2'
Signed-off-by:
N
Amador Pahim
<
apahim@redhat.com
>
上级
4186b7d5
02c3b6e4
变更
25
隐藏空白更改
内联
并排
Showing
25 changed file
with
233 addition
and
210 deletion
+233
-210
avocado/core/job.py
avocado/core/job.py
+1
-1
avocado/core/test.py
avocado/core/test.py
+4
-4
avocado/core/tree.py
avocado/core/tree.py
+2
-2
avocado/plugins/xunit.py
avocado/plugins/xunit.py
+6
-6
avocado/utils/iso9660.py
avocado/utils/iso9660.py
+7
-8
avocado/utils/process.py
avocado/utils/process.py
+22
-3
examples/tests/doublefree.py
examples/tests/doublefree.py
+2
-2
optional_plugins/varianter_yaml_to_mux/tests/test_multiplex.py
...nal_plugins/varianter_yaml_to_mux/tests/test_multiplex.py
+13
-13
optional_plugins/varianter_yaml_to_mux/tests/test_mux.py
optional_plugins/varianter_yaml_to_mux/tests/test_mux.py
+9
-3
selftests/functional/test_argument_parsing.py
selftests/functional/test_argument_parsing.py
+2
-2
selftests/functional/test_basic.py
selftests/functional/test_basic.py
+70
-70
selftests/functional/test_interrupt.py
selftests/functional/test_interrupt.py
+8
-8
selftests/functional/test_loader.py
selftests/functional/test_loader.py
+7
-7
selftests/functional/test_output.py
selftests/functional/test_output.py
+15
-15
selftests/functional/test_plugin_diff.py
selftests/functional/test_plugin_diff.py
+4
-8
selftests/functional/test_plugin_jobscripts.py
selftests/functional/test_plugin_jobscripts.py
+5
-5
selftests/functional/test_replay_basic.py
selftests/functional/test_replay_basic.py
+12
-11
selftests/functional/test_replay_external_runner.py
selftests/functional/test_replay_external_runner.py
+2
-2
selftests/functional/test_replay_failfast.py
selftests/functional/test_replay_failfast.py
+2
-1
selftests/functional/test_standalone.py
selftests/functional/test_standalone.py
+5
-5
selftests/functional/test_streams.py
selftests/functional/test_streams.py
+19
-19
selftests/functional/test_sysinfo.py
selftests/functional/test_sysinfo.py
+2
-2
selftests/functional/test_unittest_compat.py
selftests/functional/test_unittest_compat.py
+7
-7
selftests/functional/test_utils.py
selftests/functional/test_utils.py
+1
-1
selftests/unit/test_utils_iso9660.py
selftests/unit/test_utils_iso9660.py
+6
-5
未找到文件。
avocado/core/job.py
浏览文件 @
de63af37
...
@@ -349,7 +349,7 @@ class Job(object):
...
@@ -349,7 +349,7 @@ class Job(object):
cmd
=
"%s show --summary --pretty='%%H'"
%
git
cmd
=
"%s show --summary --pretty='%%H'"
%
git
res
=
process
.
run
(
cmd
,
ignore_status
=
True
,
verbose
=
False
)
res
=
process
.
run
(
cmd
,
ignore_status
=
True
,
verbose
=
False
)
if
res
.
exit_status
==
0
:
if
res
.
exit_status
==
0
:
top_commit
=
res
.
stdout
.
splitlines
()[
0
][:
8
]
top_commit
=
res
.
stdout
_text
.
splitlines
()[
0
][:
8
]
return
" (GIT commit %s)"
%
top_commit
return
" (GIT commit %s)"
%
top_commit
finally
:
finally
:
os
.
chdir
(
olddir
)
os
.
chdir
(
olddir
)
...
...
avocado/core/test.py
浏览文件 @
de63af37
...
@@ -1169,11 +1169,11 @@ class SimpleTest(Test):
...
@@ -1169,11 +1169,11 @@ class SimpleTest(Test):
if
regex
is
not
None
:
if
regex
is
not
None
:
re_warn
=
re
.
compile
(
regex
)
re_warn
=
re
.
compile
(
regex
)
if
warn_location
in
[
'all'
,
'stdout'
]:
if
warn_location
in
[
'all'
,
'stdout'
]:
if
re_warn
.
search
(
result
.
stdout
):
if
re_warn
.
search
(
result
.
stdout
_text
):
raise
exceptions
.
TestWarn
(
warn_msg
%
'stdout'
)
raise
exceptions
.
TestWarn
(
warn_msg
%
'stdout'
)
if
warn_location
in
[
'all'
,
'stderr'
]:
if
warn_location
in
[
'all'
,
'stderr'
]:
if
re_warn
.
search
(
result
.
stderr
):
if
re_warn
.
search
(
result
.
stderr
_text
):
raise
exceptions
.
TestWarn
(
warn_msg
%
'stderr'
)
raise
exceptions
.
TestWarn
(
warn_msg
%
'stderr'
)
if
skip_regex
is
not
None
:
if
skip_regex
is
not
None
:
...
@@ -1182,11 +1182,11 @@ class SimpleTest(Test):
...
@@ -1182,11 +1182,11 @@ class SimpleTest(Test):
"Check the log for details."
)
"Check the log for details."
)
if
skip_location
in
[
'all'
,
'stdout'
]:
if
skip_location
in
[
'all'
,
'stdout'
]:
if
re_skip
.
search
(
result
.
stdout
):
if
re_skip
.
search
(
result
.
stdout
_text
):
raise
exceptions
.
TestSkipError
(
skip_msg
%
'stdout'
)
raise
exceptions
.
TestSkipError
(
skip_msg
%
'stdout'
)
if
warn_location
in
[
'all'
,
'stderr'
]:
if
warn_location
in
[
'all'
,
'stderr'
]:
if
re_skip
.
search
(
result
.
stderr
):
if
re_skip
.
search
(
result
.
stderr
_text
):
raise
exceptions
.
TestSkipError
(
skip_msg
%
'stderr'
)
raise
exceptions
.
TestSkipError
(
skip_msg
%
'stderr'
)
def
test
(
self
):
def
test
(
self
):
...
...
avocado/core/tree.py
浏览文件 @
de63af37
...
@@ -405,7 +405,7 @@ def tree_view(root, verbose=None, use_utf8=None):
...
@@ -405,7 +405,7 @@ def tree_view(root, verbose=None, use_utf8=None):
down_right
=
charset
[
'DownRight'
]
down_right
=
charset
[
'DownRight'
]
right
=
charset
[
'Right'
]
right
=
charset
[
'Right'
]
out
=
[
node
.
name
]
out
=
[
node
.
name
]
if
verbose
>=
2
and
node
.
is_leaf
:
if
verbose
is
not
None
and
verbose
>=
2
and
node
.
is_leaf
:
values
=
itertools
.
chain
(
iteritems
(
node
.
environment
),
values
=
itertools
.
chain
(
iteritems
(
node
.
environment
),
[(
"filter-only"
,
_
)
[(
"filter-only"
,
_
)
for
_
in
node
.
environment
.
filter_only
],
for
_
in
node
.
environment
.
filter_only
],
...
@@ -466,7 +466,7 @@ def tree_view(root, verbose=None, use_utf8=None):
...
@@ -466,7 +466,7 @@ def tree_view(root, verbose=None, use_utf8=None):
down_right
=
charset
[
'DownRight'
]
down_right
=
charset
[
'DownRight'
]
right
=
charset
[
'Right'
]
right
=
charset
[
'Right'
]
out
=
[]
out
=
[]
if
(
verbose
>=
2
)
and
root
.
is_leaf
:
if
verbose
is
not
None
and
verbose
>=
2
and
root
.
is_leaf
:
values
=
iteritems
(
root
.
environment
)
values
=
iteritems
(
root
.
environment
)
elif
verbose
in
(
1
,
3
):
elif
verbose
in
(
1
,
3
):
values
=
iteritems
(
root
.
value
)
values
=
iteritems
(
root
.
value
)
...
...
avocado/plugins/xunit.py
浏览文件 @
de63af37
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
import
datetime
import
datetime
import
os
import
os
import
string
import
string
from
xml.dom.minidom
import
Document
,
Element
from
xml.dom.minidom
import
Document
from
avocado.core.parser
import
FileOrStdoutAction
from
avocado.core.parser
import
FileOrStdoutAction
from
avocado.core.output
import
LOG_UI
from
avocado.core.output
import
LOG_UI
...
@@ -54,13 +54,13 @@ class XUnitResult(Result):
...
@@ -54,13 +54,13 @@ class XUnitResult(Result):
return
testcase
return
testcase
def
_create_failure_or_error
(
self
,
document
,
test
,
element_type
):
def
_create_failure_or_error
(
self
,
document
,
test
,
element_type
):
element
=
Element
(
element_type
)
element
=
document
.
create
Element
(
element_type
)
element
.
setAttribute
(
'type'
,
self
.
_get_attr
(
test
,
'fail_class'
))
element
.
setAttribute
(
'type'
,
self
.
_get_attr
(
test
,
'fail_class'
))
element
.
setAttribute
(
'message'
,
self
.
_get_attr
(
test
,
'fail_reason'
))
element
.
setAttribute
(
'message'
,
self
.
_get_attr
(
test
,
'fail_reason'
))
traceback_content
=
self
.
_escape_cdata
(
test
.
get
(
'traceback'
,
self
.
UNKNOWN
))
traceback_content
=
self
.
_escape_cdata
(
test
.
get
(
'traceback'
,
self
.
UNKNOWN
))
traceback
=
document
.
createCDATASection
(
traceback_content
)
traceback
=
document
.
createCDATASection
(
traceback_content
)
element
.
appendChild
(
traceback
)
element
.
appendChild
(
traceback
)
system_out
=
Element
(
'system-out'
)
system_out
=
document
.
create
Element
(
'system-out'
)
try
:
try
:
with
open
(
test
.
get
(
"logfile"
),
"r"
)
as
logfile_obj
:
with
open
(
test
.
get
(
"logfile"
),
"r"
)
as
logfile_obj
:
text_output
=
logfile_obj
.
read
()
text_output
=
logfile_obj
.
read
()
...
@@ -88,7 +88,7 @@ class XUnitResult(Result):
...
@@ -88,7 +88,7 @@ class XUnitResult(Result):
if
status
in
(
'PASS'
,
'WARN'
):
if
status
in
(
'PASS'
,
'WARN'
):
pass
pass
elif
status
==
'SKIP'
:
elif
status
==
'SKIP'
:
testcase
.
appendChild
(
Element
(
'skipped'
))
testcase
.
appendChild
(
document
.
create
Element
(
'skipped'
))
elif
status
==
'FAIL'
:
elif
status
==
'FAIL'
:
element
,
system_out
=
self
.
_create_failure_or_error
(
document
,
element
,
system_out
=
self
.
_create_failure_or_error
(
document
,
test
,
test
,
...
@@ -96,7 +96,7 @@ class XUnitResult(Result):
...
@@ -96,7 +96,7 @@ class XUnitResult(Result):
testcase
.
appendChild
(
element
)
testcase
.
appendChild
(
element
)
testcase
.
appendChild
(
system_out
)
testcase
.
appendChild
(
system_out
)
elif
status
==
'CANCEL'
:
elif
status
==
'CANCEL'
:
testcase
.
appendChild
(
Element
(
'skipped'
))
testcase
.
appendChild
(
document
.
create
Element
(
'skipped'
))
else
:
else
:
element
,
system_out
=
self
.
_create_failure_or_error
(
document
,
element
,
system_out
=
self
.
_create_failure_or_error
(
document
,
test
,
test
,
...
@@ -123,7 +123,7 @@ class XUnitResult(Result):
...
@@ -123,7 +123,7 @@ class XUnitResult(Result):
xunit_path
=
getattr
(
job
.
args
,
'xunit_output'
,
'None'
)
xunit_path
=
getattr
(
job
.
args
,
'xunit_output'
,
'None'
)
if
xunit_path
is
not
None
:
if
xunit_path
is
not
None
:
if
xunit_path
==
'-'
:
if
xunit_path
==
'-'
:
LOG_UI
.
debug
(
content
)
LOG_UI
.
debug
(
content
.
decode
(
'UTF-8'
)
)
else
:
else
:
with
open
(
xunit_path
,
'wb'
)
as
xunit_file
:
with
open
(
xunit_path
,
'wb'
)
as
xunit_file
:
xunit_file
.
write
(
content
)
xunit_file
.
write
(
content
)
...
...
avocado/utils/iso9660.py
浏览文件 @
de63af37
...
@@ -222,12 +222,11 @@ class Iso9660IsoInfo(MixInMntDirMount, BaseIso9660):
...
@@ -222,12 +222,11 @@ class Iso9660IsoInfo(MixInMntDirMount, BaseIso9660):
"""
"""
cmd
=
'isoinfo -i %s -d'
%
path
cmd
=
'isoinfo -i %s -d'
%
path
output
=
process
.
system_output
(
cmd
)
output
=
process
.
system_output
(
cmd
)
if
b
"
\n
Joliet"
in
output
:
if
re
.
findall
(
"
\n
Joliet"
,
output
):
self
.
joliet
=
True
self
.
joliet
=
True
if
re
.
findall
(
"
\n
Rock Ridge signatures"
,
output
)
:
if
b
"
\n
Rock Ridge signatures"
in
output
:
self
.
rock_ridge
=
True
self
.
rock_ridge
=
True
if
re
.
findall
(
"
\n
El Torito"
,
output
)
:
if
b
"
\n
El Torito"
in
output
:
self
.
el_torito
=
True
self
.
el_torito
=
True
@
staticmethod
@
staticmethod
...
@@ -287,8 +286,8 @@ class Iso9660IsoRead(MixInMntDirMount, BaseIso9660):
...
@@ -287,8 +286,8 @@ class Iso9660IsoRead(MixInMntDirMount, BaseIso9660):
temp_path
=
os
.
path
.
join
(
self
.
temp_dir
,
path
)
temp_path
=
os
.
path
.
join
(
self
.
temp_dir
,
path
)
cmd
=
'iso-read -i %s -e %s -o %s'
%
(
self
.
path
,
path
,
temp_path
)
cmd
=
'iso-read -i %s -e %s -o %s'
%
(
self
.
path
,
path
,
temp_path
)
process
.
run
(
cmd
)
process
.
run
(
cmd
)
with
open
(
temp_path
)
as
temp_file
:
with
open
(
temp_path
,
'rb'
)
as
temp_file
:
return
temp_file
.
read
(
)
return
bytes
(
temp_file
.
read
()
)
def
copy
(
self
,
src
,
dst
):
def
copy
(
self
,
src
,
dst
):
cmd
=
'iso-read -i %s -e %s -o %s'
%
(
self
.
path
,
src
,
dst
)
cmd
=
'iso-read -i %s -e %s -o %s'
%
(
self
.
path
,
src
,
dst
)
...
@@ -331,8 +330,8 @@ class Iso9660Mount(BaseIso9660):
...
@@ -331,8 +330,8 @@ class Iso9660Mount(BaseIso9660):
:rtype: str
:rtype: str
"""
"""
full_path
=
os
.
path
.
join
(
self
.
mnt_dir
,
path
)
full_path
=
os
.
path
.
join
(
self
.
mnt_dir
,
path
)
with
open
(
full_path
)
as
file_to_read
:
with
open
(
full_path
,
'rb'
)
as
file_to_read
:
return
file_to_read
.
read
(
)
return
bytes
(
file_to_read
.
read
()
)
def
copy
(
self
,
src
,
dst
):
def
copy
(
self
,
src
,
dst
):
"""
"""
...
...
avocado/utils/process.py
浏览文件 @
de63af37
...
@@ -27,6 +27,7 @@ import shutil
...
@@ -27,6 +27,7 @@ import shutil
import
signal
import
signal
import
stat
import
stat
import
subprocess
import
subprocess
import
sys
import
threading
import
threading
import
time
import
time
...
@@ -269,17 +270,35 @@ class CmdResult(object):
...
@@ -269,17 +270,35 @@ class CmdResult(object):
:type duration: float
:type duration: float
:param pid: ID of the process
:param pid: ID of the process
:type pid: int
:type pid: int
:param encoding: the encoding to use for the text version
of stdout and stderr, with the default being
Python's own (:func:`sys.getdefaultencoding`).
:type encoding: str
"""
"""
def
__init__
(
self
,
command
=
""
,
stdout
=
""
,
stderr
=
""
,
def
__init__
(
self
,
command
=
""
,
stdout
=
""
,
stderr
=
""
,
exit_status
=
None
,
duration
=
0
,
pid
=
None
):
exit_status
=
None
,
duration
=
0
,
pid
=
None
,
encoding
=
None
):
self
.
command
=
command
self
.
command
=
command
self
.
exit_status
=
exit_status
self
.
exit_status
=
exit_status
#: The raw stdout (bytes)
self
.
stdout
=
stdout
self
.
stdout
=
stdout
#: The raw stderr (bytes)
self
.
stderr
=
stderr
self
.
stderr
=
stderr
self
.
duration
=
duration
self
.
duration
=
duration
self
.
interrupted
=
False
self
.
interrupted
=
False
self
.
pid
=
pid
self
.
pid
=
pid
if
encoding
is
None
:
encoding
=
sys
.
getdefaultencoding
()
self
.
encoding
=
encoding
@
property
def
stdout_text
(
self
):
return
self
.
stdout
.
decode
(
self
.
encoding
)
@
property
def
stderr_text
(
self
):
return
self
.
stderr
.
decode
(
self
.
encoding
)
def
__repr__
(
self
):
def
__repr__
(
self
):
cmd_rep
=
(
"Command: %s
\n
"
cmd_rep
=
(
"Command: %s
\n
"
...
@@ -1312,12 +1331,12 @@ def system_output(cmd, timeout=None, verbose=True, ignore_status=False,
...
@@ -1312,12 +1331,12 @@ def system_output(cmd, timeout=None, verbose=True, ignore_status=False,
:type strip_trail_nl: bool
:type strip_trail_nl: bool
:return: Command output.
:return: Command output.
:rtype:
str
:rtype:
bytes
:raise: :class:`CmdError`, if ``ignore_status=False``.
:raise: :class:`CmdError`, if ``ignore_status=False``.
"""
"""
cmd_result
=
run
(
cmd
=
cmd
,
timeout
=
timeout
,
verbose
=
verbose
,
ignore_status
=
ignore_status
,
cmd_result
=
run
(
cmd
=
cmd
,
timeout
=
timeout
,
verbose
=
verbose
,
ignore_status
=
ignore_status
,
allow_output_check
=
allow_output_check
,
shell
=
shell
,
env
=
env
,
allow_output_check
=
allow_output_check
,
shell
=
shell
,
env
=
env
,
sudo
=
sudo
,
ignore_bg_processes
=
ignore_bg_processes
)
sudo
=
sudo
,
ignore_bg_processes
=
ignore_bg_processes
)
if
strip_trail_nl
:
if
strip_trail_nl
:
return
cmd_result
.
stdout
.
rstrip
(
'
\n\r
'
)
return
cmd_result
.
stdout
.
rstrip
(
b
'
\n\r
'
)
return
cmd_result
.
stdout
return
cmd_result
.
stdout
examples/tests/doublefree.py
浏览文件 @
de63af37
...
@@ -45,9 +45,9 @@ class DoubleFreeTest(Test):
...
@@ -45,9 +45,9 @@ class DoubleFreeTest(Test):
self
.
log
.
info
(
cmd_result
)
self
.
log
.
info
(
cmd_result
)
output
=
cmd_result
.
stdout
+
cmd_result
.
stderr
output
=
cmd_result
.
stdout
+
cmd_result
.
stderr
if
sys
.
platform
.
startswith
(
'darwin'
):
if
sys
.
platform
.
startswith
(
'darwin'
):
pattern
=
'pointer being freed was not allocated'
pattern
=
b
'pointer being freed was not allocated'
else
:
else
:
pattern
=
'free(): invalid pointer'
pattern
=
b
'free(): invalid pointer'
self
.
assertTrue
(
pattern
in
output
,
self
.
assertTrue
(
pattern
in
output
,
msg
=
'Could not find pattern %s in output %s'
%
msg
=
'Could not find pattern %s in output %s'
%
(
pattern
,
output
))
(
pattern
,
output
))
...
...
optional_plugins/varianter_yaml_to_mux/tests/test_multiplex.py
浏览文件 @
de63af37
...
@@ -12,7 +12,7 @@ basedir = os.path.abspath(basedir)
...
@@ -12,7 +12,7 @@ basedir = os.path.abspath(basedir)
AVOCADO
=
os
.
environ
.
get
(
"UNITTEST_AVOCADO_CMD"
,
"./scripts/avocado"
)
AVOCADO
=
os
.
environ
.
get
(
"UNITTEST_AVOCADO_CMD"
,
"./scripts/avocado"
)
DEBUG_OUT
=
"""
DEBUG_OUT
=
b
"""
Variant mint-debug-amd-virtio-935e: amd@optional_plugins/varianter_yaml_to_mux/tests/.data/mux-environment.yaml, virtio@optional_plugins/varianter_yaml_to_mux/tests/.data/mux-environment.yaml, mint@optional_plugins/varianter_yaml_to_mux/tests/.data/mux-environment.yaml, debug@optional_plugins/varianter_yaml_to_mux/tests/.data/mux-environment.yaml
Variant mint-debug-amd-virtio-935e: amd@optional_plugins/varianter_yaml_to_mux/tests/.data/mux-environment.yaml, virtio@optional_plugins/varianter_yaml_to_mux/tests/.data/mux-environment.yaml, mint@optional_plugins/varianter_yaml_to_mux/tests/.data/mux-environment.yaml, debug@optional_plugins/varianter_yaml_to_mux/tests/.data/mux-environment.yaml
/distro/mint:init => systemv@optional_plugins/varianter_yaml_to_mux/tests/.data/mux-environment.yaml:/distro/mint
/distro/mint:init => systemv@optional_plugins/varianter_yaml_to_mux/tests/.data/mux-environment.yaml:/distro/mint
/env/debug:opt_CFLAGS => -O0 -g@optional_plugins/varianter_yaml_to_mux/tests/.data/mux-environment.yaml:/env/debug
/env/debug:opt_CFLAGS => -O0 -g@optional_plugins/varianter_yaml_to_mux/tests/.data/mux-environment.yaml:/env/debug
...
@@ -38,7 +38,7 @@ class MultiplexTests(unittest.TestCase):
...
@@ -38,7 +38,7 @@ class MultiplexTests(unittest.TestCase):
if
tests
is
not
None
:
if
tests
is
not
None
:
exp
=
(
"PASS %s | ERROR 0 | FAIL %s | SKIP 0 | WARN 0 | "
exp
=
(
"PASS %s | ERROR 0 | FAIL %s | SKIP 0 | WARN 0 | "
"INTERRUPT 0"
%
tests
)
"INTERRUPT 0"
%
tests
)
self
.
assertIn
(
exp
,
result
.
stdout
,
"%s not in stdout:
\n
%s"
self
.
assertIn
(
exp
,
result
.
stdout
_text
,
"%s not in stdout:
\n
%s"
%
(
exp
,
result
))
%
(
exp
,
result
))
return
result
return
result
...
@@ -52,7 +52,7 @@ class MultiplexTests(unittest.TestCase):
...
@@ -52,7 +52,7 @@ class MultiplexTests(unittest.TestCase):
cmd_line
=
'%s variants -m nonexist'
%
AVOCADO
cmd_line
=
'%s variants -m nonexist'
%
AVOCADO
expected_rc
=
exit_codes
.
AVOCADO_FAIL
expected_rc
=
exit_codes
.
AVOCADO_FAIL
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
self
.
assertIn
(
'No such file or directory'
,
result
.
stderr
)
self
.
assertIn
(
'No such file or directory'
,
result
.
stderr
_text
)
def
test_mplex_debug
(
self
):
def
test_mplex_debug
(
self
):
cmd_line
=
(
'%s variants -c -d -m '
cmd_line
=
(
'%s variants -c -d -m '
...
@@ -106,9 +106,9 @@ class MultiplexTests(unittest.TestCase):
...
@@ -106,9 +106,9 @@ class MultiplexTests(unittest.TestCase):
%
(
AVOCADO
,
self
.
tmpdir
))
%
(
AVOCADO
,
self
.
tmpdir
))
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
,
(
4
,
4
))
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
,
(
4
,
4
))
self
.
assertIn
(
"(1/8) passtest.py:PassTest.test;short"
,
result
.
stdout
)
self
.
assertIn
(
b
"(1/8) passtest.py:PassTest.test;short"
,
result
.
stdout
)
self
.
assertIn
(
"(2/8) passtest.py:PassTest.test;medium"
,
result
.
stdout
)
self
.
assertIn
(
b
"(2/8) passtest.py:PassTest.test;medium"
,
result
.
stdout
)
self
.
assertIn
(
"(8/8) failtest.py:FailTest.test;longest"
,
self
.
assertIn
(
b
"(8/8) failtest.py:FailTest.test;longest"
,
result
.
stdout
)
result
.
stdout
)
def
test_run_mplex_failtest_tests_per_variant
(
self
):
def
test_run_mplex_failtest_tests_per_variant
(
self
):
...
@@ -119,9 +119,9 @@ class MultiplexTests(unittest.TestCase):
...
@@ -119,9 +119,9 @@ class MultiplexTests(unittest.TestCase):
%
(
AVOCADO
,
self
.
tmpdir
))
%
(
AVOCADO
,
self
.
tmpdir
))
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
,
(
4
,
4
))
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
,
(
4
,
4
))
self
.
assertIn
(
"(1/8) passtest.py:PassTest.test;short"
,
result
.
stdout
)
self
.
assertIn
(
b
"(1/8) passtest.py:PassTest.test;short"
,
result
.
stdout
)
self
.
assertIn
(
"(2/8) failtest.py:FailTest.test;short"
,
result
.
stdout
)
self
.
assertIn
(
b
"(2/8) failtest.py:FailTest.test;short"
,
result
.
stdout
)
self
.
assertIn
(
"(8/8) failtest.py:FailTest.test;longest"
,
self
.
assertIn
(
b
"(8/8) failtest.py:FailTest.test;longest"
,
result
.
stdout
)
result
.
stdout
)
def
test_run_double_mplex
(
self
):
def
test_run_double_mplex
(
self
):
...
@@ -155,15 +155,15 @@ class MultiplexTests(unittest.TestCase):
...
@@ -155,15 +155,15 @@ class MultiplexTests(unittest.TestCase):
msg_lines
=
msg
.
splitlines
()
msg_lines
=
msg
.
splitlines
()
msg_header
=
'[stdout] Custom variable: %s'
%
msg_lines
[
0
]
msg_header
=
'[stdout] Custom variable: %s'
%
msg_lines
[
0
]
self
.
assertIn
(
msg_header
,
result
.
stdout
,
self
.
assertIn
(
msg_header
,
result
.
stdout
_text
,
"Multiplexed variable should produce:"
"Multiplexed variable should produce:"
"
\n
%s
\n
which is not present in the output:
\n
%s"
"
\n
%s
\n
which is not present in the output:
\n
%s"
%
(
msg_header
,
"
\n
"
.
join
(
result
.
stdout
.
splitlines
())))
%
(
msg_header
,
"
\n
"
.
join
(
result
.
stdout
_text
.
splitlines
())))
for
msg_remain
in
msg_lines
[
1
:]:
for
msg_remain
in
msg_lines
[
1
:]:
self
.
assertIn
(
'[stdout] %s'
%
msg_remain
,
result
.
stdout
,
self
.
assertIn
(
'[stdout] %s'
%
msg_remain
,
result
.
stdout
_text
,
"Multiplexed variable should produce:"
"Multiplexed variable should produce:"
"
\n
%s
\n
which is not present in the output:
\n
%s"
"
\n
%s
\n
which is not present in the output:
\n
%s"
%
(
msg_remain
,
"
\n
"
.
join
(
result
.
stdout
.
splitlines
())))
%
(
msg_remain
,
"
\n
"
.
join
(
result
.
stdout
_text
.
splitlines
())))
def
tearDown
(
self
):
def
tearDown
(
self
):
shutil
.
rmtree
(
self
.
tmpdir
)
shutil
.
rmtree
(
self
.
tmpdir
)
...
...
optional_plugins/varianter_yaml_to_mux/tests/test_mux.py
浏览文件 @
de63af37
...
@@ -2,9 +2,10 @@ import copy
...
@@ -2,9 +2,10 @@ import copy
import
itertools
import
itertools
import
os
import
os
import
pickle
import
pickle
import
sys
import
unittest
import
unittest
import
yaml
import
yaml
from
six
import
iteritems
from
six
import
iteritems
import
avocado_varianter_yaml_to_mux
as
yaml_to_mux
import
avocado_varianter_yaml_to_mux
as
yaml_to_mux
...
@@ -420,8 +421,13 @@ class TestMultipleLoaders(unittest.TestCase):
...
@@ -420,8 +421,13 @@ class TestMultipleLoaders(unittest.TestCase):
debug
=
yaml_to_mux
.
create_from_yaml
([
yaml_url
],
debug
=
True
)
debug
=
yaml_to_mux
.
create_from_yaml
([
yaml_url
],
debug
=
True
)
self
.
assertEqual
(
type
(
debug
),
mux
.
MuxTreeNodeDebug
)
self
.
assertEqual
(
type
(
debug
),
mux
.
MuxTreeNodeDebug
)
# Debug nodes are of generated "NamedTreeNodeDebug" type
# Debug nodes are of generated "NamedTreeNodeDebug" type
self
.
assertEqual
(
"<class 'avocado_varianter_yaml_to_mux.NamedTreeNodeDebug'>"
,
if
sys
.
version_info
[
0
]
==
3
:
str
(
type
(
debug
.
children
[
0
])))
children_type
=
(
"<class 'avocado_varianter_yaml_to_mux."
"get_named_tree_cls.<locals>.NamedTreeNodeDebug'>"
)
else
:
children_type
=
(
"<class 'avocado_varianter_yaml_to_mux."
"NamedTreeNodeDebug'>"
)
self
.
assertEqual
(
children_type
,
str
(
type
(
debug
.
children
[
0
])))
plain
=
yaml
.
load
(
"foo: bar"
)
plain
=
yaml
.
load
(
"foo: bar"
)
self
.
assertEqual
(
type
(
plain
),
dict
)
self
.
assertEqual
(
type
(
plain
),
dict
)
...
...
selftests/functional/test_argument_parsing.py
浏览文件 @
de63af37
...
@@ -39,8 +39,8 @@ class ArgumentParsingTest(unittest.TestCase):
...
@@ -39,8 +39,8 @@ class ArgumentParsingTest(unittest.TestCase):
expected_rc
=
exit_codes
.
AVOCADO_FAIL
expected_rc
=
exit_codes
.
AVOCADO_FAIL
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
'Avocado did not return rc %d:
\n
%s'
%
(
expected_rc
,
result
))
'Avocado did not return rc %d:
\n
%s'
%
(
expected_rc
,
result
))
subcommand_error_msg
=
'avocado run: error: unrecognized arguments: '
\
subcommand_error_msg
=
(
b
'avocado run: error: unrecognized arguments: '
'--whacky-argument'
b
'--whacky-argument'
)
self
.
assertIn
(
subcommand_error_msg
,
result
.
stderr
)
self
.
assertIn
(
subcommand_error_msg
,
result
.
stderr
)
...
...
selftests/functional/test_basic.py
浏览文件 @
de63af37
...
@@ -140,7 +140,7 @@ GNU_ECHO_BINARY = probe_binary('echo')
...
@@ -140,7 +140,7 @@ GNU_ECHO_BINARY = probe_binary('echo')
if
GNU_ECHO_BINARY
is
not
None
:
if
GNU_ECHO_BINARY
is
not
None
:
if
probe_binary
(
'man'
)
is
not
None
:
if
probe_binary
(
'man'
)
is
not
None
:
echo_manpage
=
process
.
run
(
'man %s'
%
os
.
path
.
basename
(
GNU_ECHO_BINARY
)).
stdout
echo_manpage
=
process
.
run
(
'man %s'
%
os
.
path
.
basename
(
GNU_ECHO_BINARY
)).
stdout
if
'-e'
not
in
echo_manpage
:
if
b
'-e'
not
in
echo_manpage
:
GNU_ECHO_BINARY
=
probe_binary
(
'gecho'
)
GNU_ECHO_BINARY
=
probe_binary
(
'gecho'
)
READ_BINARY
=
probe_binary
(
'read'
)
READ_BINARY
=
probe_binary
(
'read'
)
SLEEP_BINARY
=
probe_binary
(
'sleep'
)
SLEEP_BINARY
=
probe_binary
(
'sleep'
)
...
@@ -163,9 +163,9 @@ class RunnerOperationTest(unittest.TestCase):
...
@@ -163,9 +163,9 @@ class RunnerOperationTest(unittest.TestCase):
def
test_show_version
(
self
):
def
test_show_version
(
self
):
result
=
process
.
run
(
'%s -v'
%
AVOCADO
,
ignore_status
=
True
)
result
=
process
.
run
(
'%s -v'
%
AVOCADO
,
ignore_status
=
True
)
self
.
assertEqual
(
result
.
exit_status
,
0
)
self
.
assertEqual
(
result
.
exit_status
,
0
)
self
.
assertTrue
(
re
.
match
(
r
"^Avocado \d+\.\d+$"
,
result
.
stderr
),
self
.
assertTrue
(
re
.
match
(
r
"^Avocado \d+\.\d+$"
,
result
.
stderr
_text
),
"Version string does not match 'Avocado
\\
d
\\
.
\\
d:'
\n
"
"Version string does not match 'Avocado
\\
d
\\
.
\\
d:'
\n
"
"%r"
%
(
result
.
stderr
))
"%r"
%
(
result
.
stderr
_text
))
def
test_alternate_config_datadir
(
self
):
def
test_alternate_config_datadir
(
self
):
"""
"""
...
@@ -195,9 +195,9 @@ class RunnerOperationTest(unittest.TestCase):
...
@@ -195,9 +195,9 @@ class RunnerOperationTest(unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertIn
(
' base '
+
mapping
[
'base_dir'
],
result
.
stdout
)
self
.
assertIn
(
' base '
+
mapping
[
'base_dir'
],
result
.
stdout
_text
)
self
.
assertIn
(
' data '
+
mapping
[
'data_dir'
],
result
.
stdout
)
self
.
assertIn
(
' data '
+
mapping
[
'data_dir'
],
result
.
stdout
_text
)
self
.
assertIn
(
' logs '
+
mapping
[
'logs_dir'
],
result
.
stdout
)
self
.
assertIn
(
' logs '
+
mapping
[
'logs_dir'
],
result
.
stdout
_text
)
def
test_runner_all_ok
(
self
):
def
test_runner_all_ok
(
self
):
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s '
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s '
...
@@ -214,8 +214,8 @@ class RunnerOperationTest(unittest.TestCase):
...
@@ -214,8 +214,8 @@ class RunnerOperationTest(unittest.TestCase):
'passtest.py failtest.py passtest.py --failfast on'
'passtest.py failtest.py passtest.py --failfast on'
%
(
AVOCADO
,
self
.
tmpdir
))
%
(
AVOCADO
,
self
.
tmpdir
))
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
self
.
assertIn
(
'Interrupting job (failfast).'
,
result
.
stdout
)
self
.
assertIn
(
b
'Interrupting job (failfast).'
,
result
.
stdout
)
self
.
assertIn
(
'PASS 1 | ERROR 0 | FAIL 1 | SKIP 1'
,
result
.
stdout
)
self
.
assertIn
(
b
'PASS 1 | ERROR 0 | FAIL 1 | SKIP 1'
,
result
.
stdout
)
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
|
exit_codes
.
AVOCADO_JOB_INTERRUPTED
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
|
exit_codes
.
AVOCADO_JOB_INTERRUPTED
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
...
@@ -225,8 +225,8 @@ class RunnerOperationTest(unittest.TestCase):
...
@@ -225,8 +225,8 @@ class RunnerOperationTest(unittest.TestCase):
'passtest.py badtest.py --ignore-missing-references on'
'passtest.py badtest.py --ignore-missing-references on'
%
(
AVOCADO
,
self
.
tmpdir
))
%
(
AVOCADO
,
self
.
tmpdir
))
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
self
.
assertIn
(
"Unable to resolve reference(s) 'badtest.py'"
,
result
.
stderr
)
self
.
assertIn
(
b
"Unable to resolve reference(s) 'badtest.py'"
,
result
.
stderr
)
self
.
assertIn
(
'PASS 1 | ERROR 0 | FAIL 0 | SKIP 0'
,
result
.
stdout
)
self
.
assertIn
(
b
'PASS 1 | ERROR 0 | FAIL 0 | SKIP 0'
,
result
.
stdout
)
expected_rc
=
exit_codes
.
AVOCADO_ALL_OK
expected_rc
=
exit_codes
.
AVOCADO_ALL_OK
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
...
@@ -236,9 +236,9 @@ class RunnerOperationTest(unittest.TestCase):
...
@@ -236,9 +236,9 @@ class RunnerOperationTest(unittest.TestCase):
'badtest.py badtest2.py --ignore-missing-references on'
'badtest.py badtest2.py --ignore-missing-references on'
%
(
AVOCADO
,
self
.
tmpdir
))
%
(
AVOCADO
,
self
.
tmpdir
))
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
self
.
assertIn
(
"Unable to resolve reference(s) 'badtest.py', 'badtest2.py'"
,
self
.
assertIn
(
b
"Unable to resolve reference(s) 'badtest.py', 'badtest2.py'"
,
result
.
stderr
)
result
.
stderr
)
self
.
assertEqual
(
''
,
result
.
stdout
)
self
.
assertEqual
(
b
''
,
result
.
stdout
)
expected_rc
=
exit_codes
.
AVOCADO_JOB_FAIL
expected_rc
=
exit_codes
.
AVOCADO_JOB_FAIL
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
...
@@ -336,18 +336,16 @@ class RunnerOperationTest(unittest.TestCase):
...
@@ -336,18 +336,16 @@ class RunnerOperationTest(unittest.TestCase):
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s '
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s '
'--xunit - doublefail.py'
%
(
AVOCADO
,
self
.
tmpdir
))
'--xunit - doublefail.py'
%
(
AVOCADO
,
self
.
tmpdir
))
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
output
=
result
.
stdout
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
unexpected_rc
=
exit_codes
.
AVOCADO_FAIL
unexpected_rc
=
exit_codes
.
AVOCADO_FAIL
self
.
assertNotEqual
(
result
.
exit_status
,
unexpected_rc
,
self
.
assertNotEqual
(
result
.
exit_status
,
unexpected_rc
,
"Avocado crashed (rc %d):
\n
%s"
%
(
unexpected_rc
,
result
))
"Avocado crashed (rc %d):
\n
%s"
%
(
unexpected_rc
,
result
))
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
self
.
assertIn
(
"TestError: Failing during tearDown. Yay!"
,
outp
ut
,
self
.
assertIn
(
b
"TestError: Failing during tearDown. Yay!"
,
result
.
stdo
ut
,
"Cleanup exception not printed to log output"
)
"Cleanup exception not printed to log output"
)
self
.
assertIn
(
"TestFail: This test is supposed to fail"
,
self
.
assertIn
(
b
"TestFail: This test is supposed to fail"
,
result
.
stdout
,
output
,
"Test did not fail with action exception:
\n
%s"
%
result
.
stdout
)
"Test did not fail with action exception:
\n
%s"
%
output
)
def
test_uncaught_exception
(
self
):
def
test_uncaught_exception
(
self
):
cmd_line
=
(
"%s run --sysinfo=off --job-results-dir %s "
cmd_line
=
(
"%s run --sysinfo=off --job-results-dir %s "
...
@@ -357,7 +355,7 @@ class RunnerOperationTest(unittest.TestCase):
...
@@ -357,7 +355,7 @@ class RunnerOperationTest(unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
result
))
self
.
assertIn
(
'"status": "ERROR"'
,
result
.
stdout
)
self
.
assertIn
(
b
'"status": "ERROR"'
,
result
.
stdout
)
def
test_fail_on_exception
(
self
):
def
test_fail_on_exception
(
self
):
cmd_line
=
(
"%s run --sysinfo=off --job-results-dir %s "
cmd_line
=
(
"%s run --sysinfo=off --job-results-dir %s "
...
@@ -367,7 +365,7 @@ class RunnerOperationTest(unittest.TestCase):
...
@@ -367,7 +365,7 @@ class RunnerOperationTest(unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
result
))
self
.
assertIn
(
'"status": "FAIL"'
,
result
.
stdout
)
self
.
assertIn
(
b
'"status": "FAIL"'
,
result
.
stdout
)
def
test_exception_not_in_path
(
self
):
def
test_exception_not_in_path
(
self
):
os
.
mkdir
(
os
.
path
.
join
(
self
.
tmpdir
,
"shared_lib"
))
os
.
mkdir
(
os
.
path
.
join
(
self
.
tmpdir
,
"shared_lib"
))
...
@@ -383,10 +381,10 @@ class RunnerOperationTest(unittest.TestCase):
...
@@ -383,10 +381,10 @@ class RunnerOperationTest(unittest.TestCase):
result
=
process
.
run
(
"%s --show test run --sysinfo=off "
result
=
process
.
run
(
"%s --show test run --sysinfo=off "
"--job-results-dir %s %s"
"--job-results-dir %s %s"
%
(
AVOCADO
,
self
.
tmpdir
,
mytest
))
%
(
AVOCADO
,
self
.
tmpdir
,
mytest
))
self
.
assertIn
(
"mytest.py:SharedLibTest.test -> CancelExc: This "
self
.
assertIn
(
b
"mytest.py:SharedLibTest.test -> CancelExc: This "
"should not crash on unpickling in runner"
,
b
"should not crash on unpickling in runner"
,
result
.
stdout
)
result
.
stdout
)
self
.
assertNotIn
(
"Failed to read queue"
,
result
.
stdout
)
self
.
assertNotIn
(
b
"Failed to read queue"
,
result
.
stdout
)
def
test_runner_timeout
(
self
):
def
test_runner_timeout
(
self
):
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s '
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s '
...
@@ -399,10 +397,10 @@ class RunnerOperationTest(unittest.TestCase):
...
@@ -399,10 +397,10 @@ class RunnerOperationTest(unittest.TestCase):
"Avocado crashed (rc %d):
\n
%s"
%
(
unexpected_rc
,
result
))
"Avocado crashed (rc %d):
\n
%s"
%
(
unexpected_rc
,
result
))
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
self
.
assertIn
(
"Runner error occurred: Timeout reached"
,
output
,
self
.
assertIn
(
b
"Runner error occurred: Timeout reached"
,
output
,
"Timeout reached message not found in the output:
\n
%s"
%
output
)
"Timeout reached message not found in the output:
\n
%s"
%
output
)
# Ensure no test aborted error messages show up
# Ensure no test aborted error messages show up
self
.
assertNotIn
(
"TestAbortedError: Test aborted unexpectedly"
,
output
)
self
.
assertNotIn
(
b
"TestAbortedError: Test aborted unexpectedly"
,
output
)
@
unittest
.
skipIf
(
int
(
os
.
environ
.
get
(
"AVOCADO_CHECK_LEVEL"
,
0
))
<
2
,
@
unittest
.
skipIf
(
int
(
os
.
environ
.
get
(
"AVOCADO_CHECK_LEVEL"
,
0
))
<
2
,
"Skipping test that take a long time to run, are "
"Skipping test that take a long time to run, are "
...
@@ -411,7 +409,7 @@ class RunnerOperationTest(unittest.TestCase):
...
@@ -411,7 +409,7 @@ class RunnerOperationTest(unittest.TestCase):
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s '
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s '
'--xunit - abort.py'
%
(
AVOCADO
,
self
.
tmpdir
))
'--xunit - abort.py'
%
(
AVOCADO
,
self
.
tmpdir
))
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
excerpt
=
'Test died without reporting the status.'
excerpt
=
b
'Test died without reporting the status.'
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
unexpected_rc
=
exit_codes
.
AVOCADO_FAIL
unexpected_rc
=
exit_codes
.
AVOCADO_FAIL
self
.
assertNotEqual
(
result
.
exit_status
,
unexpected_rc
,
self
.
assertNotEqual
(
result
.
exit_status
,
unexpected_rc
,
...
@@ -425,37 +423,37 @@ class RunnerOperationTest(unittest.TestCase):
...
@@ -425,37 +423,37 @@ class RunnerOperationTest(unittest.TestCase):
'passtest.py'
%
(
AVOCADO
,
self
.
tmpdir
))
'passtest.py'
%
(
AVOCADO
,
self
.
tmpdir
))
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertEqual
(
result
.
stdout
,
''
)
self
.
assertEqual
(
result
.
stdout
,
b
''
)
def
test_empty_args_list
(
self
):
def
test_empty_args_list
(
self
):
cmd_line
=
AVOCADO
cmd_line
=
AVOCADO
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_FAIL
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_FAIL
)
self
.
assertIn
(
'error: too few arguments'
,
result
.
stderr
)
self
.
assertIn
(
b
'error: too few arguments'
,
result
.
stderr
)
def
test_empty_test_list
(
self
):
def
test_empty_test_list
(
self
):
cmd_line
=
'%s run --sysinfo=off --job-results-dir %s'
%
(
AVOCADO
,
cmd_line
=
'%s run --sysinfo=off --job-results-dir %s'
%
(
AVOCADO
,
self
.
tmpdir
)
self
.
tmpdir
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_JOB_FAIL
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_JOB_FAIL
)
self
.
assertIn
(
'No test references provided nor any other arguments '
self
.
assertIn
(
b
'No test references provided nor any other arguments '
'resolved into tests'
,
result
.
stderr
)
b
'resolved into tests'
,
result
.
stderr
)
def
test_not_found
(
self
):
def
test_not_found
(
self
):
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s sbrubles'
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s sbrubles'
%
(
AVOCADO
,
self
.
tmpdir
))
%
(
AVOCADO
,
self
.
tmpdir
))
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_JOB_FAIL
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_JOB_FAIL
)
self
.
assertIn
(
'Unable to resolve reference'
,
result
.
stderr
)
self
.
assertIn
(
b
'Unable to resolve reference'
,
result
.
stderr
)
self
.
assertNotIn
(
'Unable to resolve reference'
,
result
.
stdout
)
self
.
assertNotIn
(
b
'Unable to resolve reference'
,
result
.
stdout
)
def
test_invalid_unique_id
(
self
):
def
test_invalid_unique_id
(
self
):
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s --force-job-id '
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s --force-job-id '
'foobar passtest.py'
%
(
AVOCADO
,
self
.
tmpdir
))
'foobar passtest.py'
%
(
AVOCADO
,
self
.
tmpdir
))
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
self
.
assertNotEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertNotEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertIn
(
'needs to be a 40 digit hex'
,
result
.
stderr
)
self
.
assertIn
(
b
'needs to be a 40 digit hex'
,
result
.
stderr
)
self
.
assertNotIn
(
'needs to be a 40 digit hex'
,
result
.
stdout
)
self
.
assertNotIn
(
b
'needs to be a 40 digit hex'
,
result
.
stdout
)
def
test_valid_unique_id
(
self
):
def
test_valid_unique_id
(
self
):
cmd_line
=
(
'%s run --job-results-dir %s --sysinfo=off '
cmd_line
=
(
'%s run --job-results-dir %s --sysinfo=off '
...
@@ -463,8 +461,8 @@ class RunnerOperationTest(unittest.TestCase):
...
@@ -463,8 +461,8 @@ class RunnerOperationTest(unittest.TestCase):
'passtest.py'
%
(
AVOCADO
,
self
.
tmpdir
))
'passtest.py'
%
(
AVOCADO
,
self
.
tmpdir
))
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertNotIn
(
'needs to be a 40 digit hex'
,
result
.
stderr
)
self
.
assertNotIn
(
b
'needs to be a 40 digit hex'
,
result
.
stderr
)
self
.
assertIn
(
'PASS'
,
result
.
stdout
)
self
.
assertIn
(
b
'PASS'
,
result
.
stdout
)
def
test_automatic_unique_id
(
self
):
def
test_automatic_unique_id
(
self
):
cmd_line
=
(
'%s run --job-results-dir %s --sysinfo=off '
cmd_line
=
(
'%s run --job-results-dir %s --sysinfo=off '
...
@@ -530,7 +528,7 @@ class RunnerOperationTest(unittest.TestCase):
...
@@ -530,7 +528,7 @@ class RunnerOperationTest(unittest.TestCase):
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertIn
(
'1-%s:MyTest.test_my_name -> TestError'
%
test
,
self
.
assertIn
(
'1-%s:MyTest.test_my_name -> TestError'
%
test
,
result
.
stdout
)
result
.
stdout
_text
)
@
unittest
.
skipIf
(
not
READ_BINARY
,
"read binary not available."
)
@
unittest
.
skipIf
(
not
READ_BINARY
,
"read binary not available."
)
@
unittest
.
skipIf
(
int
(
os
.
environ
.
get
(
"AVOCADO_CHECK_LEVEL"
,
0
))
<
1
,
@
unittest
.
skipIf
(
int
(
os
.
environ
.
get
(
"AVOCADO_CHECK_LEVEL"
,
0
))
<
1
,
...
@@ -563,7 +561,7 @@ class RunnerHumanOutputTest(unittest.TestCase):
...
@@ -563,7 +561,7 @@ class RunnerHumanOutputTest(unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertIn
(
'passtest.py:PassTest.test: PASS'
,
result
.
stdout
)
self
.
assertIn
(
b
'passtest.py:PassTest.test: PASS'
,
result
.
stdout
)
def
test_output_fail
(
self
):
def
test_output_fail
(
self
):
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s '
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s '
...
@@ -573,7 +571,7 @@ class RunnerHumanOutputTest(unittest.TestCase):
...
@@ -573,7 +571,7 @@ class RunnerHumanOutputTest(unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertIn
(
'failtest.py:FailTest.test: FAIL'
,
result
.
stdout
)
self
.
assertIn
(
b
'failtest.py:FailTest.test: FAIL'
,
result
.
stdout
)
def
test_output_error
(
self
):
def
test_output_error
(
self
):
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s '
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s '
...
@@ -583,7 +581,7 @@ class RunnerHumanOutputTest(unittest.TestCase):
...
@@ -583,7 +581,7 @@ class RunnerHumanOutputTest(unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertIn
(
'errortest.py:ErrorTest.test: ERROR'
,
result
.
stdout
)
self
.
assertIn
(
b
'errortest.py:ErrorTest.test: ERROR'
,
result
.
stdout
)
def
test_output_cancel
(
self
):
def
test_output_cancel
(
self
):
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s '
cmd_line
=
(
'%s run --sysinfo=off --job-results-dir %s '
...
@@ -593,7 +591,8 @@ class RunnerHumanOutputTest(unittest.TestCase):
...
@@ -593,7 +591,8 @@ class RunnerHumanOutputTest(unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertIn
(
'PASS 0 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 1'
,
self
.
assertIn
(
b
'PASS 0 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | '
b
'INTERRUPT 0 | CANCEL 1'
,
result
.
stdout
)
result
.
stdout
)
@
unittest
.
skipIf
(
not
GNU_ECHO_BINARY
,
@
unittest
.
skipIf
(
not
GNU_ECHO_BINARY
,
...
@@ -608,10 +607,10 @@ class RunnerHumanOutputTest(unittest.TestCase):
...
@@ -608,10 +607,10 @@ class RunnerHumanOutputTest(unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %s:
\n
%s"
%
"Avocado did not return rc %s:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertIn
(
'[stdout] foo'
,
result
.
stdout
,
result
)
self
.
assertIn
(
b
'[stdout] foo'
,
result
.
stdout
,
result
)
self
.
assertIn
(
'[stdout]
\'
"'
,
result
.
stdout
,
result
)
self
.
assertIn
(
b
'[stdout]
\'
"'
,
result
.
stdout
,
result
)
self
.
assertIn
(
'[stdout] bar/baz'
,
result
.
stdout
,
result
)
self
.
assertIn
(
b
'[stdout] bar/baz'
,
result
.
stdout
,
result
)
self
.
assertIn
(
'PASS 1-foo
\\\\
n
\\\'\\
"
\\\\
nbar/baz'
,
self
.
assertIn
(
b
'PASS 1-foo
\\\\
n
\\\'\\
"
\\\\
nbar/baz'
,
result
.
stdout
,
result
)
result
.
stdout
,
result
)
# logdir name should escape special chars (/)
# logdir name should escape special chars (/)
test_dirs
=
glob
.
glob
(
os
.
path
.
join
(
self
.
tmpdir
,
'latest'
,
test_dirs
=
glob
.
glob
(
os
.
path
.
join
(
self
.
tmpdir
,
'latest'
,
...
@@ -729,12 +728,12 @@ class RunnerSimpleTest(unittest.TestCase):
...
@@ -729,12 +728,12 @@ class RunnerSimpleTest(unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %s:
\n
%s"
%
"Avocado did not return rc %s:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertIn
(
'DEBUG| Debug message'
,
result
.
stdout
,
result
)
self
.
assertIn
(
b
'DEBUG| Debug message'
,
result
.
stdout
,
result
)
self
.
assertIn
(
'INFO | Info message'
,
result
.
stdout
,
result
)
self
.
assertIn
(
b
'INFO | Info message'
,
result
.
stdout
,
result
)
self
.
assertIn
(
'WARN | Warning message (should cause this test to '
self
.
assertIn
(
b
'WARN | Warning message (should cause this test to '
'finish with warning)'
,
result
.
stdout
,
result
)
b
'finish with warning)'
,
result
.
stdout
,
result
)
self
.
assertIn
(
'ERROR| Error message (ordinary message not changing '
self
.
assertIn
(
b
'ERROR| Error message (ordinary message not changing '
'the results)'
,
result
.
stdout
,
result
)
b
'the results)'
,
result
.
stdout
,
result
)
@
unittest
.
skipIf
(
not
GNU_ECHO_BINARY
,
"Uses echo as test"
)
@
unittest
.
skipIf
(
not
GNU_ECHO_BINARY
,
"Uses echo as test"
)
def
test_fs_unfriendly_run
(
self
):
def
test_fs_unfriendly_run
(
self
):
...
@@ -917,8 +916,8 @@ class ExternalRunnerTest(unittest.TestCase):
...
@@ -917,8 +916,8 @@ class ExternalRunnerTest(unittest.TestCase):
'--external-runner=/bin/sh --external-runner-chdir=test %s'
'--external-runner=/bin/sh --external-runner-chdir=test %s'
%
(
AVOCADO
,
self
.
tmpdir
,
self
.
pass_script
.
path
))
%
(
AVOCADO
,
self
.
tmpdir
,
self
.
pass_script
.
path
))
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
expected_output
=
(
'Option "--external-runner-chdir=test" requires '
expected_output
=
(
b
'Option "--external-runner-chdir=test" requires '
'"--external-runner-testdir" to be set'
)
b
'"--external-runner-testdir" to be set'
)
self
.
assertIn
(
expected_output
,
result
.
stderr
)
self
.
assertIn
(
expected_output
,
result
.
stderr
)
expected_rc
=
exit_codes
.
AVOCADO_JOB_FAIL
expected_rc
=
exit_codes
.
AVOCADO_JOB_FAIL
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
...
@@ -929,8 +928,8 @@ class ExternalRunnerTest(unittest.TestCase):
...
@@ -929,8 +928,8 @@ class ExternalRunnerTest(unittest.TestCase):
cmd_line
=
(
'%s run --job-results-dir %s --sysinfo=off '
cmd_line
=
(
'%s run --job-results-dir %s --sysinfo=off '
'--external-runner=%s'
%
(
AVOCADO
,
self
.
tmpdir
,
TRUE_CMD
))
'--external-runner=%s'
%
(
AVOCADO
,
self
.
tmpdir
,
TRUE_CMD
))
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
expected_output
=
(
'No test references provided nor any other '
expected_output
=
(
b
'No test references provided nor any other '
'arguments resolved into tests'
)
b
'arguments resolved into tests'
)
self
.
assertIn
(
expected_output
,
result
.
stderr
)
self
.
assertIn
(
expected_output
,
result
.
stderr
)
expected_rc
=
exit_codes
.
AVOCADO_JOB_FAIL
expected_rc
=
exit_codes
.
AVOCADO_JOB_FAIL
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
...
@@ -972,7 +971,8 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
...
@@ -972,7 +971,8 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertNotIn
(
'No tests were found on current tests dir'
,
result
.
stdout
)
self
.
assertNotIn
(
b
'No tests were found on current tests dir'
,
result
.
stdout
)
def
test_list_error_output
(
self
):
def
test_list_error_output
(
self
):
cmd_line
=
'%s list sbrubles'
%
AVOCADO
cmd_line
=
'%s list sbrubles'
%
AVOCADO
...
@@ -981,7 +981,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
...
@@ -981,7 +981,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertIn
(
"Unable to resolve reference"
,
result
.
stderr
)
self
.
assertIn
(
b
"Unable to resolve reference"
,
result
.
stderr
)
def
test_list_no_file_loader
(
self
):
def
test_list_no_file_loader
(
self
):
cmd_line
=
(
"%s list --loaders external --verbose -- "
cmd_line
=
(
"%s list --loaders external --verbose -- "
...
@@ -990,12 +990,12 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
...
@@ -990,12 +990,12 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
,
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
,
"Avocado did not return rc %d:
\n
%s"
"Avocado did not return rc %d:
\n
%s"
%
(
exit_codes
.
AVOCADO_ALL_OK
,
result
))
%
(
exit_codes
.
AVOCADO_ALL_OK
,
result
))
exp
=
(
"Type Test Tag(s)
\n
"
exp
=
(
b
"Type Test Tag(s)
\n
"
"MISSING this-wont-be-matched
\n\n
"
b
"MISSING this-wont-be-matched
\n\n
"
"TEST TYPES SUMMARY
\n
"
b
"TEST TYPES SUMMARY
\n
"
"==================
\n
"
b
"==================
\n
"
"EXTERNAL: 0
\n
"
b
"EXTERNAL: 0
\n
"
"MISSING: 1
\n
"
)
b
"MISSING: 1
\n
"
)
self
.
assertEqual
(
exp
,
result
.
stdout
,
"Stdout mismatch:
\n
%s
\n\n
%s"
self
.
assertEqual
(
exp
,
result
.
stdout
,
"Stdout mismatch:
\n
%s
\n\n
%s"
%
(
exp
,
result
))
%
(
exp
,
result
))
...
@@ -1011,7 +1011,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
...
@@ -1011,7 +1011,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
,
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
,
"Avocado did not return rc %d:
\n
%s"
"Avocado did not return rc %d:
\n
%s"
%
(
exit_codes
.
AVOCADO_ALL_OK
,
result
))
%
(
exit_codes
.
AVOCADO_ALL_OK
,
result
))
stdout_lines
=
result
.
stdout
.
splitlines
()
stdout_lines
=
result
.
stdout
_text
.
splitlines
()
self
.
assertIn
(
"Tag(s)"
,
stdout_lines
[
0
])
self
.
assertIn
(
"Tag(s)"
,
stdout_lines
[
0
])
full_test_name
=
"%s:MyTest.test"
%
test
full_test_name
=
"%s:MyTest.test"
%
test
self
.
assertEqual
(
"INSTRUMENTED %s BIG_TAG_NAME"
%
full_test_name
,
self
.
assertEqual
(
"INSTRUMENTED %s BIG_TAG_NAME"
%
full_test_name
,
...
@@ -1029,7 +1029,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
...
@@ -1029,7 +1029,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
if
sys
.
version_info
[:
2
]
>=
(
2
,
7
,
0
):
if
sys
.
version_info
[:
2
]
>=
(
2
,
7
,
0
):
self
.
assertNotIn
(
'Disabled'
,
result
.
stdout
)
self
.
assertNotIn
(
b
'Disabled'
,
result
.
stdout
)
def
test_config_plugin
(
self
):
def
test_config_plugin
(
self
):
cmd_line
=
'%s config --paginator off'
%
AVOCADO
cmd_line
=
'%s config --paginator off'
%
AVOCADO
...
@@ -1038,7 +1038,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
...
@@ -1038,7 +1038,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertNotIn
(
'Disabled'
,
result
.
stdout
)
self
.
assertNotIn
(
b
'Disabled'
,
result
.
stdout
)
def
test_config_plugin_datadir
(
self
):
def
test_config_plugin_datadir
(
self
):
cmd_line
=
'%s config --datadir --paginator off'
%
AVOCADO
cmd_line
=
'%s config --datadir --paginator off'
%
AVOCADO
...
@@ -1047,7 +1047,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
...
@@ -1047,7 +1047,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertNotIn
(
'Disabled'
,
result
.
stdout
)
self
.
assertNotIn
(
b
'Disabled'
,
result
.
stdout
)
def
test_disable_plugin
(
self
):
def
test_disable_plugin
(
self
):
cmd_line
=
'%s plugins'
%
AVOCADO
cmd_line
=
'%s plugins'
%
AVOCADO
...
@@ -1056,7 +1056,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
...
@@ -1056,7 +1056,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertIn
(
"Collect system information"
,
result
.
stdout
)
self
.
assertIn
(
b
"Collect system information"
,
result
.
stdout
)
config_content
=
"[plugins]
\n
disable=['cli.cmd.sysinfo',]"
config_content
=
"[plugins]
\n
disable=['cli.cmd.sysinfo',]"
config
=
script
.
TemporaryScript
(
"disable_sysinfo_cmd.conf"
,
config
=
script
.
TemporaryScript
(
"disable_sysinfo_cmd.conf"
,
...
@@ -1068,7 +1068,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
...
@@ -1068,7 +1068,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertNotIn
(
"Collect system information"
,
result
.
stdout
)
self
.
assertNotIn
(
b
"Collect system information"
,
result
.
stdout
)
def
test_plugin_order
(
self
):
def
test_plugin_order
(
self
):
"""
"""
...
@@ -1104,7 +1104,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
...
@@ -1104,7 +1104,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
for
result_plugin
in
result_plugins
:
for
result_plugin
in
result_plugins
:
self
.
assertIn
(
result_plugin
,
result
.
stdout
)
self
.
assertIn
(
result_plugin
,
result
.
stdout
_text
)
config_content_zip_first
=
"[plugins.result]
\n
order=['zip_archive']"
config_content_zip_first
=
"[plugins.result]
\n
order=['zip_archive']"
config_zip_first
=
script
.
TemporaryScript
(
"zip_first.conf"
,
config_zip_first
=
script
.
TemporaryScript
(
"zip_first.conf"
,
...
@@ -1140,7 +1140,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
...
@@ -1140,7 +1140,7 @@ class PluginsTest(AbsPluginsTest, unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertNotIn
(
"'Namespace' object has no attribute"
,
result
.
stderr
)
self
.
assertNotIn
(
b
"'Namespace' object has no attribute"
,
result
.
stderr
)
class
ParseXMLError
(
Exception
):
class
ParseXMLError
(
Exception
):
...
...
selftests/functional/test_interrupt.py
浏览文件 @
de63af37
...
@@ -148,10 +148,10 @@ class InterruptTest(unittest.TestCase):
...
@@ -148,10 +148,10 @@ class InterruptTest(unittest.TestCase):
output
=
self
.
proc
.
stdout
.
read
()
output
=
self
.
proc
.
stdout
.
read
()
# Make sure the Interrupted requested sentence is there
# Make sure the Interrupted requested sentence is there
self
.
assertIn
(
'Interrupt requested. Waiting 2 seconds for test to '
self
.
assertIn
(
b
'Interrupt requested. Waiting 2 seconds for test to '
'finish (ignoring new Ctrl+C until then)'
,
output
)
b
'finish (ignoring new Ctrl+C until then)'
,
output
)
# Make sure the Killing test subprocess message did appear
# Make sure the Killing test subprocess message did appear
self
.
assertIn
(
'Killing test subprocess'
,
output
)
self
.
assertIn
(
b
'Killing test subprocess'
,
output
)
@
unittest
.
skipIf
(
int
(
os
.
environ
.
get
(
"AVOCADO_CHECK_LEVEL"
,
0
))
<
2
,
@
unittest
.
skipIf
(
int
(
os
.
environ
.
get
(
"AVOCADO_CHECK_LEVEL"
,
0
))
<
2
,
"Skipping test that take a long time to run, are "
"Skipping test that take a long time to run, are "
...
@@ -191,7 +191,7 @@ class InterruptTest(unittest.TestCase):
...
@@ -191,7 +191,7 @@ class InterruptTest(unittest.TestCase):
timeout
=
10
),
'Avocado left processes behind.'
)
timeout
=
10
),
'Avocado left processes behind.'
)
# Make sure the Interrupted test sentence is there
# Make sure the Interrupted test sentence is there
self
.
assertIn
(
'Terminated
\n
'
,
self
.
proc
.
stdout
.
read
())
self
.
assertIn
(
b
'Terminated
\n
'
,
self
.
proc
.
stdout
.
read
())
@
unittest
.
skipIf
(
int
(
os
.
environ
.
get
(
"AVOCADO_CHECK_LEVEL"
,
0
))
<
1
,
@
unittest
.
skipIf
(
int
(
os
.
environ
.
get
(
"AVOCADO_CHECK_LEVEL"
,
0
))
<
1
,
"Skipping test that take a long time to run, are "
"Skipping test that take a long time to run, are "
...
@@ -232,10 +232,10 @@ class InterruptTest(unittest.TestCase):
...
@@ -232,10 +232,10 @@ class InterruptTest(unittest.TestCase):
output
=
self
.
proc
.
stdout
.
read
()
output
=
self
.
proc
.
stdout
.
read
()
# Make sure the Interrupted requested sentence is there
# Make sure the Interrupted requested sentence is there
self
.
assertIn
(
'Interrupt requested. Waiting 2 seconds for test to '
self
.
assertIn
(
b
'Interrupt requested. Waiting 2 seconds for test to '
'finish (ignoring new Ctrl+C until then)'
,
output
)
b
'finish (ignoring new Ctrl+C until then)'
,
output
)
# Make sure the Killing test subprocess message is not there
# Make sure the Killing test subprocess message is not there
self
.
assertNotIn
(
'Killing test subprocess'
,
output
)
self
.
assertNotIn
(
b
'Killing test subprocess'
,
output
)
@
unittest
.
skipIf
(
int
(
os
.
environ
.
get
(
"AVOCADO_CHECK_LEVEL"
,
0
))
<
1
,
@
unittest
.
skipIf
(
int
(
os
.
environ
.
get
(
"AVOCADO_CHECK_LEVEL"
,
0
))
<
1
,
"Skipping test that take a long time to run, are "
"Skipping test that take a long time to run, are "
...
@@ -275,7 +275,7 @@ class InterruptTest(unittest.TestCase):
...
@@ -275,7 +275,7 @@ class InterruptTest(unittest.TestCase):
timeout
=
10
),
'Avocado left processes behind.'
)
timeout
=
10
),
'Avocado left processes behind.'
)
# Make sure the Interrupted test sentence is there
# Make sure the Interrupted test sentence is there
self
.
assertIn
(
'Terminated
\n
'
,
self
.
proc
.
stdout
.
read
())
self
.
assertIn
(
b
'Terminated
\n
'
,
self
.
proc
.
stdout
.
read
())
def
tearDown
(
self
):
def
tearDown
(
self
):
shutil
.
rmtree
(
self
.
tmpdir
)
shutil
.
rmtree
(
self
.
tmpdir
)
...
...
selftests/functional/test_loader.py
浏览文件 @
de63af37
...
@@ -164,7 +164,7 @@ class LoaderTestFunctional(unittest.TestCase):
...
@@ -164,7 +164,7 @@ class LoaderTestFunctional(unittest.TestCase):
test_script
.
save
()
test_script
.
save
()
cmd_line
=
(
'%s list -V %s'
%
(
AVOCADO
,
test_script
.
path
))
cmd_line
=
(
'%s list -V %s'
%
(
AVOCADO
,
test_script
.
path
))
result
=
process
.
run
(
cmd_line
)
result
=
process
.
run
(
cmd_line
)
self
.
assertIn
(
'%s: %s'
%
(
exp_str
,
count
),
result
.
stdout
)
self
.
assertIn
(
'%s: %s'
%
(
exp_str
,
count
),
result
.
stdout
_text
)
test_script
.
remove
()
test_script
.
remove
()
def
_run_with_timeout
(
self
,
cmd_line
,
timeout
):
def
_run_with_timeout
(
self
,
cmd_line
,
timeout
):
...
@@ -213,7 +213,7 @@ class LoaderTestFunctional(unittest.TestCase):
...
@@ -213,7 +213,7 @@ class LoaderTestFunctional(unittest.TestCase):
(
"Took more than 3 seconds to list tests. Loader "
(
"Took more than 3 seconds to list tests. Loader "
"probably loaded/executed Python code and slept for "
"probably loaded/executed Python code and slept for "
"eleven seconds."
))
"eleven seconds."
))
self
.
assertIn
(
'INSTRUMENTED: 2'
,
result
.
stdout
)
self
.
assertIn
(
b
'INSTRUMENTED: 2'
,
result
.
stdout
)
def
test_multiple_class
(
self
):
def
test_multiple_class
(
self
):
self
.
_test
(
'multipleclasses.py'
,
AVOCADO_TEST_MULTIPLE_CLASSES
,
self
.
_test
(
'multipleclasses.py'
,
AVOCADO_TEST_MULTIPLE_CLASSES
,
...
@@ -246,7 +246,7 @@ class LoaderTestFunctional(unittest.TestCase):
...
@@ -246,7 +246,7 @@ class LoaderTestFunctional(unittest.TestCase):
mytest
.
save
()
mytest
.
save
()
cmd_line
=
"%s list -V %s"
%
(
AVOCADO
,
mytest
)
cmd_line
=
"%s list -V %s"
%
(
AVOCADO
,
mytest
)
result
=
process
.
run
(
cmd_line
)
result
=
process
.
run
(
cmd_line
)
self
.
assertIn
(
'SIMPLE: 1'
,
result
.
stdout
)
self
.
assertIn
(
b
'SIMPLE: 1'
,
result
.
stdout
)
# job should be able to finish under 5 seconds. If this fails, it's
# job should be able to finish under 5 seconds. If this fails, it's
# possible that we hit the "simple test fork bomb" bug
# possible that we hit the "simple test fork bomb" bug
cmd_line
=
(
"%s run --sysinfo=off --job-results-dir '%s' -- '%s'"
cmd_line
=
(
"%s run --sysinfo=off --job-results-dir '%s' -- '%s'"
...
@@ -357,10 +357,10 @@ class LoaderTestFunctional(unittest.TestCase):
...
@@ -357,10 +357,10 @@ class LoaderTestFunctional(unittest.TestCase):
"""
"""
cmd
=
"%s list examples/tests/:fail"
%
AVOCADO
cmd
=
"%s list examples/tests/:fail"
%
AVOCADO
result
=
process
.
run
(
cmd
)
result
=
process
.
run
(
cmd
)
expected
=
(
"INSTRUMENTED examples/tests/doublefail.py:DoubleFail.test
\n
"
expected
=
(
b
"INSTRUMENTED examples/tests/doublefail.py:DoubleFail.test
\n
"
"INSTRUMENTED examples/tests/fail_on_exception.py:FailOnException.test
\n
"
b
"INSTRUMENTED examples/tests/fail_on_exception.py:FailOnException.test
\n
"
"INSTRUMENTED examples/tests/failtest.py:FailTest.test
\n
"
b
"INSTRUMENTED examples/tests/failtest.py:FailTest.test
\n
"
"SIMPLE examples/tests/failtest.sh
\n
"
)
b
"SIMPLE examples/tests/failtest.sh
\n
"
)
self
.
assertEqual
(
expected
,
result
.
stdout
)
self
.
assertEqual
(
expected
,
result
.
stdout
)
def
tearDown
(
self
):
def
tearDown
(
self
):
...
...
selftests/functional/test_output.py
浏览文件 @
de63af37
...
@@ -157,7 +157,7 @@ class OutputTest(unittest.TestCase):
...
@@ -157,7 +157,7 @@ class OutputTest(unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
bad_string
=
'double free or corruption'
bad_string
=
b
'double free or corruption'
self
.
assertNotIn
(
bad_string
,
output
,
self
.
assertNotIn
(
bad_string
,
output
,
"Libc double free can be seen in avocado "
"Libc double free can be seen in avocado "
"doublefree output:
\n
%s"
%
output
)
"doublefree output:
\n
%s"
%
output
)
...
@@ -313,7 +313,7 @@ class OutputPluginTest(unittest.TestCase):
...
@@ -313,7 +313,7 @@ class OutputPluginTest(unittest.TestCase):
'(--xunit)): Options ((--xunit --json)|'
'(--xunit)): Options ((--xunit --json)|'
'(--json --xunit)) are trying to use stdout '
'(--json --xunit)) are trying to use stdout '
'simultaneously
\n
'
)
'simultaneously
\n
'
)
self
.
assertIsNotNone
(
error_regex
.
match
(
result
.
stderr
),
self
.
assertIsNotNone
(
error_regex
.
match
(
result
.
stderr
_text
),
"Missing error message from output:
\n
%s"
%
"Missing error message from output:
\n
%s"
%
result
.
stderr
)
result
.
stderr
)
...
@@ -328,7 +328,7 @@ class OutputPluginTest(unittest.TestCase):
...
@@ -328,7 +328,7 @@ class OutputPluginTest(unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
error_excerpt
=
"HTML to stdout not supported"
error_excerpt
=
b
"HTML to stdout not supported"
self
.
assertIn
(
error_excerpt
,
output
,
self
.
assertIn
(
error_excerpt
,
output
,
"Missing excerpt error message from output:
\n
%s"
%
output
)
"Missing excerpt error message from output:
\n
%s"
%
output
)
...
@@ -427,7 +427,7 @@ class OutputPluginTest(unittest.TestCase):
...
@@ -427,7 +427,7 @@ class OutputPluginTest(unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertEqual
(
output
,
""
,
"Output is not empty:
\n
%s"
%
output
)
self
.
assertEqual
(
output
,
b
""
,
"Output is not empty:
\n
%s"
%
output
)
# Check if we are producing valid outputs
# Check if we are producing valid outputs
with
open
(
tmpfile2
,
'r'
)
as
fp
:
with
open
(
tmpfile2
,
'r'
)
as
fp
:
json_results
=
json
.
load
(
fp
)
json_results
=
json
.
load
(
fp
)
...
@@ -447,7 +447,7 @@ class OutputPluginTest(unittest.TestCase):
...
@@ -447,7 +447,7 @@ class OutputPluginTest(unittest.TestCase):
"--job-results-dir %s --sysinfo=off"
"--job-results-dir %s --sysinfo=off"
%
(
AVOCADO
,
self
.
tmpdir
))
%
(
AVOCADO
,
self
.
tmpdir
))
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
output
=
result
.
stdout
+
result
.
stderr
output
=
result
.
stdout
_text
+
result
.
stderr_text
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
...
@@ -469,7 +469,7 @@ class OutputPluginTest(unittest.TestCase):
...
@@ -469,7 +469,7 @@ class OutputPluginTest(unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
job_id_list
=
re
.
findall
(
'Job ID: (.*)'
,
result
.
stdout
,
job_id_list
=
re
.
findall
(
'Job ID: (.*)'
,
result
.
stdout
_text
,
re
.
MULTILINE
)
re
.
MULTILINE
)
self
.
assertTrue
(
job_id_list
,
'No Job ID in stdout:
\n
%s'
%
self
.
assertTrue
(
job_id_list
,
'No Job ID in stdout:
\n
%s'
%
result
.
stdout
)
result
.
stdout
)
...
@@ -487,7 +487,7 @@ class OutputPluginTest(unittest.TestCase):
...
@@ -487,7 +487,7 @@ class OutputPluginTest(unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertEqual
(
output
,
""
)
self
.
assertEqual
(
output
,
b
""
)
def
test_default_enabled_plugins
(
self
):
def
test_default_enabled_plugins
(
self
):
cmd_line
=
(
'%s run --job-results-dir %s --sysinfo=off '
cmd_line
=
(
'%s run --job-results-dir %s --sysinfo=off '
...
@@ -588,7 +588,7 @@ class OutputPluginTest(unittest.TestCase):
...
@@ -588,7 +588,7 @@ class OutputPluginTest(unittest.TestCase):
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
(
expected_rc
,
result
))
self
.
assertEqual
(
output
,
''
,
self
.
assertEqual
(
output
,
b
''
,
'After redirecting to file, output is not empty: %s'
%
output
)
'After redirecting to file, output is not empty: %s'
%
output
)
with
open
(
redirected_output_path
,
'r'
)
as
redirected_output_file_obj
:
with
open
(
redirected_output_path
,
'r'
)
as
redirected_output_file_obj
:
redirected_output
=
redirected_output_file_obj
.
read
()
redirected_output
=
redirected_output_file_obj
.
read
()
...
@@ -617,7 +617,7 @@ class OutputPluginTest(unittest.TestCase):
...
@@ -617,7 +617,7 @@ class OutputPluginTest(unittest.TestCase):
"--job-results-dir %s "
"--job-results-dir %s "
"--tap -"
%
(
AVOCADO
,
self
.
tmpdir
))
"--tap -"
%
(
AVOCADO
,
self
.
tmpdir
))
result
=
process
.
run
(
cmd_line
)
result
=
process
.
run
(
cmd_line
)
expr
=
'1..4'
expr
=
b
'1..4'
self
.
assertIn
(
expr
,
result
.
stdout
,
"'%s' not found in:
\n
%s"
self
.
assertIn
(
expr
,
result
.
stdout
,
"'%s' not found in:
\n
%s"
%
(
expr
,
result
.
stdout
))
%
(
expr
,
result
.
stdout
))
...
@@ -630,9 +630,9 @@ class OutputPluginTest(unittest.TestCase):
...
@@ -630,9 +630,9 @@ class OutputPluginTest(unittest.TestCase):
(
"avocado run to broken pipe did not return "
(
"avocado run to broken pipe did not return "
"rc %d:
\n
%s"
%
(
expected_rc
,
result
)))
"rc %d:
\n
%s"
%
(
expected_rc
,
result
)))
self
.
assertEqual
(
len
(
result
.
stderr
.
splitlines
()),
1
)
self
.
assertEqual
(
len
(
result
.
stderr
.
splitlines
()),
1
)
self
.
assertIn
(
"whacky-unknown-command"
,
result
.
stderr
)
self
.
assertIn
(
b
"whacky-unknown-command"
,
result
.
stderr
)
self
.
assertIn
(
"not found"
,
result
.
stderr
)
self
.
assertIn
(
b
"not found"
,
result
.
stderr
)
self
.
assertNotIn
(
"Avocado crashed"
,
result
.
stderr
)
self
.
assertNotIn
(
b
"Avocado crashed"
,
result
.
stderr
)
def
test_results_plugins_no_tests
(
self
):
def
test_results_plugins_no_tests
(
self
):
cmd_line
=
(
"%s run UNEXISTING --job-results-dir %s"
cmd_line
=
(
"%s run UNEXISTING --job-results-dir %s"
...
@@ -650,11 +650,11 @@ class OutputPluginTest(unittest.TestCase):
...
@@ -650,11 +650,11 @@ class OutputPluginTest(unittest.TestCase):
self
.
assertFalse
(
os
.
path
.
exists
(
tap_results
))
self
.
assertFalse
(
os
.
path
.
exists
(
tap_results
))
# Check that no UI output was generated
# Check that no UI output was generated
self
.
assertNotIn
(
"RESULTS : PASS "
,
result
.
stdout
)
self
.
assertNotIn
(
b
"RESULTS : PASS "
,
result
.
stdout
)
self
.
assertNotIn
(
"JOB TIME :"
,
result
.
stdout
)
self
.
assertNotIn
(
b
"JOB TIME :"
,
result
.
stdout
)
# Check that plugins do not produce errors
# Check that plugins do not produce errors
self
.
assertNotIn
(
"Error running method "
,
result
.
stderr
)
self
.
assertNotIn
(
b
"Error running method "
,
result
.
stderr
)
def
tearDown
(
self
):
def
tearDown
(
self
):
shutil
.
rmtree
(
self
.
tmpdir
)
shutil
.
rmtree
(
self
.
tmpdir
)
...
...
selftests/functional/test_plugin_diff.py
浏览文件 @
de63af37
...
@@ -50,20 +50,16 @@ class DiffTests(unittest.TestCase):
...
@@ -50,20 +50,16 @@ class DiffTests(unittest.TestCase):
(
AVOCADO
,
self
.
jobdir
,
self
.
jobdir2
))
(
AVOCADO
,
self
.
jobdir
,
self
.
jobdir2
))
expected_rc
=
exit_codes
.
AVOCADO_ALL_OK
expected_rc
=
exit_codes
.
AVOCADO_ALL_OK
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
msg
=
"# COMMAND LINE"
self
.
assertIn
(
b
"# COMMAND LINE"
,
result
.
stdout
)
self
.
assertIn
(
msg
,
result
.
stdout
)
self
.
assertIn
(
b
"-./scripts/avocado run"
,
result
.
stdout
)
msg
=
"-./scripts/avocado run"
self
.
assertIn
(
b
"+./scripts/avocado run"
,
result
.
stdout
)
self
.
assertIn
(
msg
,
result
.
stdout
)
msg
=
"+./scripts/avocado run"
self
.
assertIn
(
msg
,
result
.
stdout
)
def
test_diff_nocmdline
(
self
):
def
test_diff_nocmdline
(
self
):
cmd_line
=
(
'%s diff %s %s --diff-filter nocmdline'
%
cmd_line
=
(
'%s diff %s %s --diff-filter nocmdline'
%
(
AVOCADO
,
self
.
jobdir
,
self
.
jobdir2
))
(
AVOCADO
,
self
.
jobdir
,
self
.
jobdir2
))
expected_rc
=
exit_codes
.
AVOCADO_ALL_OK
expected_rc
=
exit_codes
.
AVOCADO_ALL_OK
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
msg
=
"# COMMAND LINE"
self
.
assertNotIn
(
b
"# COMMAND LINE"
,
result
.
stdout
)
self
.
assertNotIn
(
msg
,
result
.
stdout
)
def
tearDown
(
self
):
def
tearDown
(
self
):
shutil
.
rmtree
(
self
.
tmpdir
)
shutil
.
rmtree
(
self
.
tmpdir
)
...
...
selftests/functional/test_plugin_jobscripts.py
浏览文件 @
de63af37
...
@@ -79,9 +79,9 @@ class JobScriptsTest(unittest.TestCase):
...
@@ -79,9 +79,9 @@ class JobScriptsTest(unittest.TestCase):
# Pre/Post scripts failures do not (currently?) alter the exit status
# Pre/Post scripts failures do not (currently?) alter the exit status
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertNotIn
(
'Pre job script "%s" exited with status "1"'
%
touch_script
,
self
.
assertNotIn
(
'Pre job script "%s" exited with status "1"'
%
touch_script
,
result
.
stderr
)
result
.
stderr
_text
)
self
.
assertNotIn
(
'Post job script "%s" exited with status "1"'
%
rm_script
,
self
.
assertNotIn
(
'Post job script "%s" exited with status "1"'
%
rm_script
,
result
.
stderr
)
result
.
stderr
_text
)
def
test_status_non_zero
(
self
):
def
test_status_non_zero
(
self
):
"""
"""
...
@@ -102,7 +102,7 @@ class JobScriptsTest(unittest.TestCase):
...
@@ -102,7 +102,7 @@ class JobScriptsTest(unittest.TestCase):
# Pre/Post scripts failures do not (currently?) alter the exit status
# Pre/Post scripts failures do not (currently?) alter the exit status
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertEqual
(
'Pre job script "%s" exited with status "1"
\n
'
%
non_zero_script
,
self
.
assertEqual
(
'Pre job script "%s" exited with status "1"
\n
'
%
non_zero_script
,
result
.
stderr
)
result
.
stderr
_text
)
def
test_non_existing_dir
(
self
):
def
test_non_existing_dir
(
self
):
"""
"""
...
@@ -124,9 +124,9 @@ class JobScriptsTest(unittest.TestCase):
...
@@ -124,9 +124,9 @@ class JobScriptsTest(unittest.TestCase):
# Pre/Post scripts failures do not (currently?) alter the exit status
# Pre/Post scripts failures do not (currently?) alter the exit status
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertIn
(
'-job scripts has not been found'
,
result
.
stderr
)
self
.
assertIn
(
b
'-job scripts has not been found'
,
result
.
stderr
)
self
.
assertNotIn
(
'Pre job script "%s" exited with status "1"'
%
non_zero_script
,
self
.
assertNotIn
(
'Pre job script "%s" exited with status "1"'
%
non_zero_script
,
result
.
stderr
)
result
.
stderr
_text
)
def
tearDown
(
self
):
def
tearDown
(
self
):
shutil
.
rmtree
(
self
.
tmpdir
)
shutil
.
rmtree
(
self
.
tmpdir
)
...
...
selftests/functional/test_replay_basic.py
浏览文件 @
de63af37
...
@@ -106,8 +106,8 @@ class ReplayTests(unittest.TestCase):
...
@@ -106,8 +106,8 @@ class ReplayTests(unittest.TestCase):
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
expected_rc
=
exit_codes
.
AVOCADO_FAIL
expected_rc
=
exit_codes
.
AVOCADO_FAIL
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
msg
=
'Invalid --replay-ignore option. Valid options are '
\
msg
=
(
b
'Invalid --replay-ignore option. Valid options are '
'(more than one allowed): variants,config'
b
'(more than one allowed): variants,config'
)
self
.
assertIn
(
msg
,
result
.
stderr
)
self
.
assertIn
(
msg
,
result
.
stderr
)
def
test_run_replay_ignorevariants
(
self
):
def
test_run_replay_ignorevariants
(
self
):
...
@@ -119,7 +119,7 @@ class ReplayTests(unittest.TestCase):
...
@@ -119,7 +119,7 @@ class ReplayTests(unittest.TestCase):
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
expected_rc
=
exit_codes
.
AVOCADO_ALL_OK
expected_rc
=
exit_codes
.
AVOCADO_ALL_OK
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
msg
=
'Ignoring variants from source job with --replay-ignore.'
msg
=
b
'Ignoring variants from source job with --replay-ignore.'
self
.
assertIn
(
msg
,
result
.
stderr
)
self
.
assertIn
(
msg
,
result
.
stderr
)
def
test_run_replay_invalidstatus
(
self
):
def
test_run_replay_invalidstatus
(
self
):
...
@@ -131,8 +131,8 @@ class ReplayTests(unittest.TestCase):
...
@@ -131,8 +131,8 @@ class ReplayTests(unittest.TestCase):
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
expected_rc
=
exit_codes
.
AVOCADO_FAIL
expected_rc
=
exit_codes
.
AVOCADO_FAIL
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
msg
=
'Invalid --replay-test-status option. Valid options are (more '
\
msg
=
(
b
'Invalid --replay-test-status option. Valid options are (more '
'than one allowed): SKIP,ERROR,FAIL,WARN,PASS,INTERRUPTED'
b
'than one allowed): SKIP,ERROR,FAIL,WARN,PASS,INTERRUPTED'
)
self
.
assertIn
(
msg
,
result
.
stderr
)
self
.
assertIn
(
msg
,
result
.
stderr
)
def
test_run_replay_statusfail
(
self
):
def
test_run_replay_statusfail
(
self
):
...
@@ -144,7 +144,8 @@ class ReplayTests(unittest.TestCase):
...
@@ -144,7 +144,8 @@ class ReplayTests(unittest.TestCase):
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
expected_rc
=
exit_codes
.
AVOCADO_ALL_OK
expected_rc
=
exit_codes
.
AVOCADO_ALL_OK
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
msg
=
'RESULTS : PASS 0 | ERROR 0 | FAIL 0 | SKIP 4 | WARN 0 | INTERRUPT 0'
msg
=
(
b
'RESULTS : PASS 0 | ERROR 0 | FAIL 0 | SKIP 4 | WARN 0 | '
b
'INTERRUPT 0'
)
self
.
assertIn
(
msg
,
result
.
stdout
)
self
.
assertIn
(
msg
,
result
.
stdout
)
def
test_run_replay_remotefail
(
self
):
def
test_run_replay_remotefail
(
self
):
...
@@ -156,7 +157,7 @@ class ReplayTests(unittest.TestCase):
...
@@ -156,7 +157,7 @@ class ReplayTests(unittest.TestCase):
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
expected_rc
=
exit_codes
.
AVOCADO_FAIL
expected_rc
=
exit_codes
.
AVOCADO_FAIL
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
msg
=
"Currently we don't replay jobs in remote hosts."
msg
=
b
"Currently we don't replay jobs in remote hosts."
self
.
assertIn
(
msg
,
result
.
stderr
)
self
.
assertIn
(
msg
,
result
.
stderr
)
def
test_run_replay_status_and_variants
(
self
):
def
test_run_replay_status_and_variants
(
self
):
...
@@ -168,8 +169,8 @@ class ReplayTests(unittest.TestCase):
...
@@ -168,8 +169,8 @@ class ReplayTests(unittest.TestCase):
'--sysinfo=off'
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
'--sysinfo=off'
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
expected_rc
=
exit_codes
.
AVOCADO_FAIL
expected_rc
=
exit_codes
.
AVOCADO_FAIL
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
msg
=
(
"Option `--replay-test-status` is incompatible with "
msg
=
(
b
"Option `--replay-test-status` is incompatible with "
"`--replay-ignore variants`"
)
b
"`--replay-ignore variants`"
)
self
.
assertIn
(
msg
,
result
.
stderr
)
self
.
assertIn
(
msg
,
result
.
stderr
)
def
test_run_replay_status_and_references
(
self
):
def
test_run_replay_status_and_references
(
self
):
...
@@ -181,8 +182,8 @@ class ReplayTests(unittest.TestCase):
...
@@ -181,8 +182,8 @@ class ReplayTests(unittest.TestCase):
'--sysinfo=off'
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
'--sysinfo=off'
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
expected_rc
=
exit_codes
.
AVOCADO_FAIL
expected_rc
=
exit_codes
.
AVOCADO_FAIL
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
msg
=
(
"Option --replay-test-status is incompatible with "
msg
=
(
b
"Option --replay-test-status is incompatible with "
"test references given on the command line."
)
b
"test references given on the command line."
)
self
.
assertIn
(
msg
,
result
.
stderr
)
self
.
assertIn
(
msg
,
result
.
stderr
)
def
test_run_replay_and_mux
(
self
):
def
test_run_replay_and_mux
(
self
):
...
...
selftests/functional/test_replay_external_runner.py
浏览文件 @
de63af37
...
@@ -47,8 +47,8 @@ class ReplayExtRunnerTests(unittest.TestCase):
...
@@ -47,8 +47,8 @@ class ReplayExtRunnerTests(unittest.TestCase):
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
expected_rc
=
exit_codes
.
AVOCADO_ALL_OK
expected_rc
=
exit_codes
.
AVOCADO_ALL_OK
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
msg
=
"Overriding the replay external-runner with the "
\
msg
=
(
b
"Overriding the replay external-runner with the "
"--external-runner value given on the command line."
b
"--external-runner value given on the command line."
)
self
.
assertIn
(
msg
,
result
.
stderr
)
self
.
assertIn
(
msg
,
result
.
stderr
)
def
tearDown
(
self
):
def
tearDown
(
self
):
...
...
selftests/functional/test_replay_failfast.py
浏览文件 @
de63af37
...
@@ -49,7 +49,8 @@ class ReplayFailfastTests(unittest.TestCase):
...
@@ -49,7 +49,8 @@ class ReplayFailfastTests(unittest.TestCase):
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
%
(
AVOCADO
,
self
.
jobid
,
self
.
tmpdir
))
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
)
msg
=
'Overriding the replay failfast with the --failfast value given on the command line.'
msg
=
(
b
'Overriding the replay failfast with the --failfast value '
b
'given on the command line.'
)
self
.
assertIn
(
msg
,
result
.
stderr
)
self
.
assertIn
(
msg
,
result
.
stderr
)
def
tearDown
(
self
):
def
tearDown
(
self
):
...
...
selftests/functional/test_standalone.py
浏览文件 @
de63af37
...
@@ -50,7 +50,7 @@ class StandaloneTests(unittest.TestCase):
...
@@ -50,7 +50,7 @@ class StandaloneTests(unittest.TestCase):
exc
=
"errortest_nasty.NastyException: Nasty-string-like-exception"
exc
=
"errortest_nasty.NastyException: Nasty-string-like-exception"
else
:
else
:
exc
=
"NastyException: Nasty-string-like-exception"
exc
=
"NastyException: Nasty-string-like-exception"
count
=
result
.
stdout
.
count
(
"
\n
%s"
%
exc
)
count
=
result
.
stdout
_text
.
count
(
"
\n
%s"
%
exc
)
self
.
assertEqual
(
count
,
2
,
"Exception
\\
n%s should be present twice in"
self
.
assertEqual
(
count
,
2
,
"Exception
\\
n%s should be present twice in"
"the log (once from the log, second time when parsing"
"the log (once from the log, second time when parsing"
"exception details."
%
(
exc
))
"exception details."
%
(
exc
))
...
@@ -59,17 +59,17 @@ class StandaloneTests(unittest.TestCase):
...
@@ -59,17 +59,17 @@ class StandaloneTests(unittest.TestCase):
cmd_line
=
'./examples/tests/errortest_nasty2.py -r'
cmd_line
=
'./examples/tests/errortest_nasty2.py -r'
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
,
'errortest_nasty2'
)
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
,
'errortest_nasty2'
)
self
.
assertIn
(
"Exception: Unable to get exception, check the traceback"
self
.
assertIn
(
b
"Exception: Unable to get exception, check the traceback"
" for details."
,
result
.
stdout
)
b
" for details."
,
result
.
stdout
)
def
test_errortest_nasty3
(
self
):
def
test_errortest_nasty3
(
self
):
cmd_line
=
'./examples/tests/errortest_nasty3.py -r'
cmd_line
=
'./examples/tests/errortest_nasty3.py -r'
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
expected_rc
=
exit_codes
.
AVOCADO_TESTS_FAIL
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
,
'errortest_nasty3'
)
result
=
self
.
run_and_check
(
cmd_line
,
expected_rc
,
'errortest_nasty3'
)
if
sys
.
version_info
[
0
]
==
3
:
if
sys
.
version_info
[
0
]
==
3
:
exc
=
"TypeError: exceptions must derive from BaseException"
exc
=
b
"TypeError: exceptions must derive from BaseException"
else
:
else
:
exc
=
"TestError: <errortest_nasty3.NastyException instance at "
exc
=
b
"TestError: <errortest_nasty3.NastyException instance at "
self
.
assertIn
(
exc
,
result
.
stdout
)
self
.
assertIn
(
exc
,
result
.
stdout
)
def
test_errortest
(
self
):
def
test_errortest
(
self
):
...
...
selftests/functional/test_streams.py
浏览文件 @
de63af37
...
@@ -25,8 +25,8 @@ class StreamsTest(unittest.TestCase):
...
@@ -25,8 +25,8 @@ class StreamsTest(unittest.TestCase):
"""
"""
result
=
process
.
run
(
'%s distro'
%
AVOCADO
)
result
=
process
.
run
(
'%s distro'
%
AVOCADO
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertIn
(
'Detected distribution'
,
result
.
stdout
)
self
.
assertIn
(
b
'Detected distribution'
,
result
.
stdout
)
self
.
assertEqual
(
''
,
result
.
stderr
)
self
.
assertEqual
(
b
''
,
result
.
stderr
)
def
test_app_error_stderr
(
self
):
def
test_app_error_stderr
(
self
):
"""
"""
...
@@ -35,12 +35,12 @@ class StreamsTest(unittest.TestCase):
...
@@ -35,12 +35,12 @@ class StreamsTest(unittest.TestCase):
result
=
process
.
run
(
'%s unknown-whacky-command'
%
AVOCADO
,
result
=
process
.
run
(
'%s unknown-whacky-command'
%
AVOCADO
,
ignore_status
=
True
)
ignore_status
=
True
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_FAIL
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_FAIL
)
self
.
assertIn
(
"invalid choice: 'unknown-whacky-command'"
,
self
.
assertIn
(
b
"invalid choice: 'unknown-whacky-command'"
,
result
.
stderr
)
result
.
stderr
)
self
.
assertNotIn
(
"invalid choice: 'unknown-whacky-command'"
,
self
.
assertNotIn
(
b
"invalid choice: 'unknown-whacky-command'"
,
result
.
stdout
)
result
.
stdout
)
self
.
assertIn
(
"Avocado Test Runner"
,
result
.
stdout
)
self
.
assertIn
(
b
"Avocado Test Runner"
,
result
.
stdout
)
self
.
assertNotIn
(
"Avocado Test Runner"
,
result
.
stderr
)
self
.
assertNotIn
(
b
"Avocado Test Runner"
,
result
.
stderr
)
def
test_other_stream_early_stdout
(
self
):
def
test_other_stream_early_stdout
(
self
):
"""
"""
...
@@ -58,11 +58,11 @@ class StreamsTest(unittest.TestCase):
...
@@ -58,11 +58,11 @@ class StreamsTest(unittest.TestCase):
for
cmd
,
env
in
cmds
:
for
cmd
,
env
in
cmds
:
result
=
process
.
run
(
cmd
,
env
=
env
,
shell
=
True
)
result
=
process
.
run
(
cmd
,
env
=
env
,
shell
=
True
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertIn
(
"stevedore.extension: found extension EntryPoint.parse"
,
self
.
assertIn
(
b
"stevedore.extension: found extension EntryPoint.parse"
,
result
.
stdout
)
result
.
stdout
)
self
.
assertIn
(
"avocado.test: Command line: %s"
%
cmd
,
self
.
assertIn
(
"avocado.test: Command line: %s"
%
cmd
,
result
.
stdout
)
result
.
stdout
_text
)
self
.
assertEqual
(
''
,
result
.
stderr
)
self
.
assertEqual
(
b
''
,
result
.
stderr
)
def
test_test
(
self
):
def
test_test
(
self
):
"""
"""
...
@@ -76,16 +76,16 @@ class StreamsTest(unittest.TestCase):
...
@@ -76,16 +76,16 @@ class StreamsTest(unittest.TestCase):
' passtest.py'
%
(
AVOCADO
,
self
.
tmpdir
))):
' passtest.py'
%
(
AVOCADO
,
self
.
tmpdir
))):
result
=
process
.
run
(
cmd
)
result
=
process
.
run
(
cmd
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertNotIn
(
"stevedore.extension: found extension EntryPoint.parse"
,
self
.
assertNotIn
(
b
"stevedore.extension: found extension EntryPoint.parse"
,
result
.
stdout
)
result
.
stdout
)
self
.
assertNotIn
(
"stevedore.extension: found extension EntryPoint.parse"
,
self
.
assertNotIn
(
b
"stevedore.extension: found extension EntryPoint.parse"
,
result
.
stderr
)
result
.
stderr
)
self
.
assertIn
(
"Command line: %s"
%
cmd
,
self
.
assertIn
(
"Command line: %s"
%
cmd
,
result
.
stdout_text
)
self
.
assertIn
(
b
"
\n
START 1-passtest.py:PassTest.test"
,
result
.
stdout
)
result
.
stdout
)
self
.
assertIn
(
"
\n
START 1-passtest.py:PassTest.test"
,
self
.
assertIn
(
b
"PASS 1-passtest.py:PassTest.test"
,
result
.
stdout
)
result
.
stdout
)
self
.
assertEqual
(
b
''
,
result
.
stderr
)
self
.
assertIn
(
"PASS 1-passtest.py:PassTest.test"
,
result
.
stdout
)
self
.
assertEqual
(
''
,
result
.
stderr
)
def
test_none_success
(
self
):
def
test_none_success
(
self
):
"""
"""
...
@@ -99,8 +99,8 @@ class StreamsTest(unittest.TestCase):
...
@@ -99,8 +99,8 @@ class StreamsTest(unittest.TestCase):
'passtest.py'
%
(
AVOCADO
,
self
.
tmpdir
))):
'passtest.py'
%
(
AVOCADO
,
self
.
tmpdir
))):
result
=
process
.
run
(
cmd
)
result
=
process
.
run
(
cmd
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_ALL_OK
)
self
.
assertEqual
(
''
,
result
.
stdout
)
self
.
assertEqual
(
b
''
,
result
.
stdout
)
self
.
assertEqual
(
''
,
result
.
stderr
)
self
.
assertEqual
(
b
''
,
result
.
stderr
)
def
test_none_error
(
self
):
def
test_none_error
(
self
):
"""
"""
...
@@ -112,8 +112,8 @@ class StreamsTest(unittest.TestCase):
...
@@ -112,8 +112,8 @@ class StreamsTest(unittest.TestCase):
'%s --silent unknown-whacky-command'
%
AVOCADO
):
'%s --silent unknown-whacky-command'
%
AVOCADO
):
result
=
process
.
run
(
cmd
,
ignore_status
=
True
)
result
=
process
.
run
(
cmd
,
ignore_status
=
True
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_FAIL
)
self
.
assertEqual
(
result
.
exit_status
,
exit_codes
.
AVOCADO_FAIL
)
self
.
assertEqual
(
''
,
result
.
stdout
)
self
.
assertEqual
(
b
''
,
result
.
stdout
)
self
.
assertNotEqual
(
''
,
result
.
stderr
)
self
.
assertNotEqual
(
b
''
,
result
.
stderr
)
def
test_custom_stream_and_level
(
self
):
def
test_custom_stream_and_level
(
self
):
"""
"""
...
...
selftests/functional/test_sysinfo.py
浏览文件 @
de63af37
...
@@ -35,7 +35,7 @@ class SysInfoTest(unittest.TestCase):
...
@@ -35,7 +35,7 @@ class SysInfoTest(unittest.TestCase):
expected_rc
=
exit_codes
.
AVOCADO_ALL_OK
expected_rc
=
exit_codes
.
AVOCADO_ALL_OK
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
'Avocado did not return rc %d:
\n
%s'
%
(
expected_rc
,
result
))
'Avocado did not return rc %d:
\n
%s'
%
(
expected_rc
,
result
))
output
=
result
.
stdout
+
result
.
stderr
output
=
result
.
stdout
_text
+
result
.
stderr_text
sysinfo_dir
=
None
sysinfo_dir
=
None
for
line
in
output
.
splitlines
():
for
line
in
output
.
splitlines
():
if
'JOB LOG'
in
line
:
if
'JOB LOG'
in
line
:
...
@@ -61,7 +61,7 @@ class SysInfoTest(unittest.TestCase):
...
@@ -61,7 +61,7 @@ class SysInfoTest(unittest.TestCase):
expected_rc
=
exit_codes
.
AVOCADO_ALL_OK
expected_rc
=
exit_codes
.
AVOCADO_ALL_OK
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
'Avocado did not return rc %d:
\n
%s'
%
(
expected_rc
,
result
))
'Avocado did not return rc %d:
\n
%s'
%
(
expected_rc
,
result
))
output
=
result
.
stdout
+
result
.
stderr
output
=
result
.
stdout
_text
+
result
.
stderr_text
sysinfo_dir
=
None
sysinfo_dir
=
None
for
line
in
output
.
splitlines
():
for
line
in
output
.
splitlines
():
if
'JOB LOG'
in
line
:
if
'JOB LOG'
in
line
:
...
...
selftests/functional/test_unittest_compat.py
浏览文件 @
de63af37
...
@@ -91,23 +91,23 @@ class UnittestCompat(unittest.TestCase):
...
@@ -91,23 +91,23 @@ class UnittestCompat(unittest.TestCase):
cmd_line
=
'%s %s'
%
(
sys
.
executable
,
self
.
unittest_script_good
)
cmd_line
=
'%s %s'
%
(
sys
.
executable
,
self
.
unittest_script_good
)
result
=
process
.
run
(
cmd_line
)
result
=
process
.
run
(
cmd_line
)
self
.
assertEqual
(
0
,
result
.
exit_status
)
self
.
assertEqual
(
0
,
result
.
exit_status
)
self
.
assertIn
(
'Ran 1 test in'
,
result
.
stderr
)
self
.
assertIn
(
b
'Ran 1 test in'
,
result
.
stderr
)
def
test_run_fail
(
self
):
def
test_run_fail
(
self
):
cmd_line
=
'%s %s'
%
(
sys
.
executable
,
self
.
unittest_script_fail
)
cmd_line
=
'%s %s'
%
(
sys
.
executable
,
self
.
unittest_script_fail
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
self
.
assertEqual
(
1
,
result
.
exit_status
)
self
.
assertEqual
(
1
,
result
.
exit_status
)
self
.
assertIn
(
'Ran 1 test in'
,
result
.
stderr
)
self
.
assertIn
(
b
'Ran 1 test in'
,
result
.
stderr
)
self
.
assertIn
(
'This test is supposed to fail'
,
result
.
stderr
)
self
.
assertIn
(
b
'This test is supposed to fail'
,
result
.
stderr
)
self
.
assertIn
(
'FAILED (failures=1)'
,
result
.
stderr
)
self
.
assertIn
(
b
'FAILED (failures=1)'
,
result
.
stderr
)
def
test_run_error
(
self
):
def
test_run_error
(
self
):
cmd_line
=
'%s %s'
%
(
sys
.
executable
,
self
.
unittest_script_error
)
cmd_line
=
'%s %s'
%
(
sys
.
executable
,
self
.
unittest_script_error
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
self
.
assertEqual
(
1
,
result
.
exit_status
)
self
.
assertEqual
(
1
,
result
.
exit_status
)
self
.
assertIn
(
'Ran 1 test in'
,
result
.
stderr
)
self
.
assertIn
(
b
'Ran 1 test in'
,
result
.
stderr
)
self
.
assertIn
(
'This test is supposed to error'
,
result
.
stderr
)
self
.
assertIn
(
b
'This test is supposed to error'
,
result
.
stderr
)
self
.
assertIn
(
'FAILED (errors=1)'
,
result
.
stderr
)
self
.
assertIn
(
b
'FAILED (errors=1)'
,
result
.
stderr
)
def
tearDown
(
self
):
def
tearDown
(
self
):
self
.
unittest_script_error
.
remove
()
self
.
unittest_script_error
.
remove
()
...
...
selftests/functional/test_utils.py
浏览文件 @
de63af37
...
@@ -152,7 +152,7 @@ class ProcessTest(unittest.TestCase):
...
@@ -152,7 +152,7 @@ class ProcessTest(unittest.TestCase):
proc
=
process
.
SubProcess
(
self
.
fake_uptime
)
proc
=
process
.
SubProcess
(
self
.
fake_uptime
)
result
=
proc
.
run
()
result
=
proc
.
run
()
self
.
assertEqual
(
result
.
exit_status
,
0
,
'result: %s'
%
result
)
self
.
assertEqual
(
result
.
exit_status
,
0
,
'result: %s'
%
result
)
self
.
assertIn
(
'load average'
,
result
.
stdout
)
self
.
assertIn
(
b
'load average'
,
result
.
stdout
)
def
tearDown
(
self
):
def
tearDown
(
self
):
shutil
.
rmtree
(
self
.
base_logdir
)
shutil
.
rmtree
(
self
.
base_logdir
)
...
...
selftests/unit/test_utils_iso9660.py
浏览文件 @
de63af37
...
@@ -30,7 +30,7 @@ class BaseIso9660(unittest.TestCase):
...
@@ -30,7 +30,7 @@ class BaseIso9660(unittest.TestCase):
due to ast loader we can't just define a base-class.
due to ast loader we can't just define a base-class.
"""
"""
self
.
assertEqual
(
self
.
iso
.
read
(
"file"
),
self
.
assertEqual
(
self
.
iso
.
read
(
"file"
),
"file content
\n
"
)
b
"file content
\n
"
)
dst
=
os
.
path
.
join
(
self
.
tmpdir
,
"file"
)
dst
=
os
.
path
.
join
(
self
.
tmpdir
,
"file"
)
self
.
iso
.
copy
(
os
.
path
.
join
(
"Dir"
,
"in_dir_file"
),
dst
)
self
.
iso
.
copy
(
os
.
path
.
join
(
"Dir"
,
"in_dir_file"
),
dst
)
self
.
assertEqual
(
open
(
dst
).
read
(),
"content of in-dir-file
\n
"
)
self
.
assertEqual
(
open
(
dst
).
read
(),
"content of in-dir-file
\n
"
)
...
@@ -49,10 +49,11 @@ class BaseIso9660(unittest.TestCase):
...
@@ -49,10 +49,11 @@ class BaseIso9660(unittest.TestCase):
base
=
self
.
iso
.
mnt_dir
base
=
self
.
iso
.
mnt_dir
dir_path
=
os
.
path
.
join
(
base
,
"Dir"
)
dir_path
=
os
.
path
.
join
(
base
,
"Dir"
)
self
.
assertTrue
(
os
.
path
.
isdir
(
dir_path
))
self
.
assertTrue
(
os
.
path
.
isdir
(
dir_path
))
self
.
assertEqual
(
open
(
os
.
path
.
join
(
base
,
"file"
)).
read
(),
self
.
assertEqual
(
bytes
(
open
(
os
.
path
.
join
(
base
,
"file"
),
'rb'
).
read
()),
"file content
\n
"
)
b
"file content
\n
"
)
self
.
assertEqual
(
open
(
os
.
path
.
join
(
base
,
"Dir"
,
"in_dir_file"
)).
read
(),
in_dir_file_path
=
os
.
path
.
join
(
base
,
"Dir"
,
"in_dir_file"
)
"content of in-dir-file
\n
"
)
self
.
assertEqual
(
bytes
(
open
(
in_dir_file_path
,
'rb'
).
read
()),
b
"content of in-dir-file
\n
"
)
self
.
iso
.
close
()
self
.
iso
.
close
()
self
.
assertFalse
(
os
.
path
.
exists
(
base
),
"the mnt_dir is suppose to be "
self
.
assertFalse
(
os
.
path
.
exists
(
base
),
"the mnt_dir is suppose to be "
"destroyed after iso.close()"
)
"destroyed after iso.close()"
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录