Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
avocado
提交
9f5adb0c
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,发现更多精彩内容 >>
未验证
提交
9f5adb0c
编写于
12月 07, 2018
作者:
C
Caio Carrara
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'clebergnu/software_manager_misc'
Signed-off-by:
N
Caio Carrara
<
ccarrara@redhat.com
>
上级
b06b87ec
16a8d659
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
40 addition
and
9 deletion
+40
-9
avocado/utils/distro.py
avocado/utils/distro.py
+2
-1
avocado/utils/software_manager.py
avocado/utils/software_manager.py
+7
-8
selftests/unit/test_utils_software_manager.py
selftests/unit/test_utils_software_manager.py
+31
-0
未找到文件。
avocado/utils/distro.py
浏览文件 @
9f5adb0c
...
...
@@ -313,8 +313,9 @@ class DebianProbe(Probe):
"""
Simple probe with file checks for Debian systems
"""
CHECK_FILE
=
'/etc/debian
-
version'
CHECK_FILE
=
'/etc/debian
_
version'
CHECK_FILE_DISTRO_NAME
=
'debian'
CHECK_VERSION_REGEX
=
re
.
compile
(
r
'(\d+)\.(\d+)'
)
class
UbuntuProbe
(
Probe
):
...
...
avocado/utils/software_manager.py
浏览文件 @
9f5adb0c
...
...
@@ -261,7 +261,7 @@ class RpmBackend(BaseBackend):
cmd_result
=
process
.
run
(
'rpm -qa | sort'
,
verbose
=
False
,
shell
=
True
)
out
=
cmd_result
.
stdout
.
strip
()
out
=
cmd_result
.
stdout
_text
.
strip
()
installed_packages
=
out
.
splitlines
()
return
installed_packages
...
...
@@ -349,7 +349,7 @@ class DpkgBackend(BaseBackend):
name
=
process
.
system_output
(
n_cmd
)
i_cmd
=
self
.
lowlevel_base_cmd
+
" -s "
+
name
# Checking if package is installed
package_status
=
process
.
system_output
(
i_cmd
,
ignore_status
=
True
)
package_status
=
process
.
run
(
i_cmd
,
ignore_status
=
True
).
stdout_text
dpkg_installed
=
(
self
.
INSTALLED_OUTPUT
in
package_status
)
if
dpkg_installed
:
return
True
...
...
@@ -362,7 +362,7 @@ class DpkgBackend(BaseBackend):
log
.
debug
(
"Listing all system packages (may take a while)"
)
installed_packages
=
[]
cmd_result
=
process
.
run
(
'dpkg -l'
,
verbose
=
False
)
out
=
cmd_result
.
stdout
.
strip
()
out
=
cmd_result
.
stdout
_text
.
strip
()
raw_list
=
out
.
splitlines
()[
5
:]
for
line
in
raw_list
:
parts
=
line
.
split
()
...
...
@@ -658,7 +658,7 @@ class ZypperBackend(RpmBackend):
z_cmd
=
self
.
base_command
+
' --version'
cmd_result
=
process
.
run
(
z_cmd
,
ignore_status
=
True
,
verbose
=
False
)
out
=
cmd_result
.
stdout
.
strip
()
out
=
cmd_result
.
stdout
_text
.
strip
()
try
:
ver
=
re
.
findall
(
r
'\d.\d*.\d*'
,
out
)[
0
]
except
IndexError
:
...
...
@@ -837,7 +837,7 @@ class AptBackend(DpkgBackend):
ignore_status
=
True
,
verbose
=
False
,
shell
=
True
)
out
=
cmd_result
.
stdout
.
strip
()
out
=
cmd_result
.
stdout
_text
.
strip
()
try
:
ver
=
re
.
findall
(
r
'\d\S*'
,
out
)[
0
]
except
IndexError
:
...
...
@@ -983,15 +983,14 @@ class AptBackend(DpkgBackend):
except
utils_path
.
CmdNotFoundError
:
self
.
install
(
'apt-file'
)
command
=
utils_path
.
find_command
(
'apt-file'
)
cache_update_cmd
=
command
+
' update'
try
:
process
.
system
(
cache_update_cmd
,
ignore_status
=
True
)
process
.
run
(
command
+
' update'
)
except
process
.
CmdError
:
log
.
error
(
"Apt file cache update failed"
)
fu_cmd
=
command
+
' search '
+
name
try
:
paths
=
filter
(
None
,
os
.
environ
[
'PATH'
].
split
(
':'
))
provides
=
filter
(
None
,
process
.
system_output
(
fu_cmd
)
.
split
(
'
\n
'
))
provides
=
filter
(
None
,
process
.
run
(
fu_cmd
).
stdout_text
.
split
(
'
\n
'
))
list_provides
=
[]
for
each_path
in
paths
:
for
line
in
provides
:
...
...
selftests/unit/test_utils_software_manager.py
0 → 100644
浏览文件 @
9f5adb0c
import
os
import
unittest
from
avocado.utils
import
distro
from
avocado.utils
import
software_manager
def
apt_supported_distro
():
"""
The only Linux distributions this was tested on
"""
this
=
distro
.
detect
()
if
this
.
name
==
'debian'
:
return
this
.
version
==
'9'
and
this
.
release
==
'6'
elif
this
.
name
==
'Ubuntu'
:
return
this
.
version
==
'18'
and
this
.
release
==
'04'
return
False
@
unittest
.
skipUnless
(
os
.
getuid
()
==
0
,
"This test requires root privileges"
)
@
unittest
.
skipUnless
(
apt_supported_distro
(),
"Unsupported distro"
)
class
Apt
(
unittest
.
TestCase
):
def
test_provides
(
self
):
sm
=
software_manager
.
SoftwareManager
()
self
.
assertEqual
(
sm
.
provides
(
'/bin/login'
),
'login'
)
self
.
assertTrue
(
isinstance
(
sm
.
backend
,
software_manager
.
AptBackend
))
if
__name__
==
'__main__'
:
unittest
.
main
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录