diff --git a/.pylintrc b/.pylintrc index 78dfd299..6803cb0c 100644 --- a/.pylintrc +++ b/.pylintrc @@ -105,8 +105,7 @@ max-returns=11 # Maximum number of statements in function / method body. # defaults to: max-statements=50 -# xen-bugtool:main() is currently at 376, but it has a dedicated pylint disable comment now: -# max-statements=376 +max-statements=52 [FORMAT] diff --git a/tests/unit/test_load_plugins.py b/tests/unit/test_load_plugins.py new file mode 100644 index 00000000..c859ece5 --- /dev/null +++ b/tests/unit/test_load_plugins.py @@ -0,0 +1,52 @@ +"""Regression tests for bugtool.load_plugins()""" + + +def test_load_plugins(bugtool, dom0_template): + """Assert () returning arrays of the in the dom0-template""" + + # Use the plugins found in the dom0_template "/etc/xensource/bugtool": + bugtool.PLUGIN_DIR = dom0_template + "/etc/xensource/bugtool" + # Only process the xapi bugtool plugin: + bugtool.entries = ["xapi"] + # Reset the predefined caps and cap_sizes, so we can check the plugin code: + # bugtool.caps = {} + # bugtool.cap_sizes = {} + # Load the xapi plugin: + bugtool.load_plugins(just_capabilities=False) + # Assert the set of properties of the created xapi capability: + assert bugtool.caps["xapi"] == ( + "xapi", + "yes", + -1, + 16384, + -1, + 60, + "text/plain", + True, + False, + 9, + ) + # Assert the size of the created xapi capability: + assert bugtool.cap_sizes["xapi"] == 0 + print(bugtool.data) + # Assert the entries added to the bugtool.data dict: + assert bugtool.data == { + "ls -l /proc/sys/dev/tty": { + "cap": "xapi", + "cmd_args": ["ls", "-l", "/proc/sys/dev/tty"], + "filter": None, + }, + "/proc/sys/dev/tty": { + "cap": "xapi", + "filename": "/proc/sys/dev/tty", + }, + "/proc/sys/dev/tty/ldisc_autoload": { + "cap": "xapi", + "filename": "/proc/sys/dev/tty/ldisc_autoload", + }, + "tty": { + "cap": "xapi", + "cmd_args": "ls /proc/sys/dev/tty", + "filter": None, + }, + } diff --git a/xen-bugtool b/xen-bugtool index 119c91dd..a96cc938 100755 --- a/xen-bugtool +++ b/xen-bugtool @@ -518,7 +518,7 @@ def dir_list(cap, path_list, recursive = False): flags = '-lR' pl = [] - map(lambda x: pl.extend(glob.glob(x)), path_list) + list(map(lambda x: pl.extend(glob.glob(x)), path_list)) for p in pl: cmd_output(cap, [LS, flags, p]) @@ -526,7 +526,7 @@ def dir_list(cap, path_list, recursive = False): def file_output(cap, path_list): if cap in entries: pl = [] - map(lambda x: pl.extend(glob.glob(x)), path_list) + list(map(lambda x: pl.extend(glob.glob(x)), path_list)) for p in pl: try: @@ -1594,6 +1594,8 @@ def load_plugins(just_capabilities = False): for node in nodelist: if node.nodeType == node.TEXT_NODE: rc += node.data + if sys.version_info > (3, 0): + return rc return rc.encode() def getBoolAttr(el, attr, default = False):