From: biao716.wang Date: Wed, 24 May 2023 03:00:31 +0000 (+0900) Subject: fix itest-core run error X-Git-Tag: accepted/tools/devbase/tools/20250527.103754~1^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F91%2F293291%2F5;p=tools%2Fitest-core.git fix itest-core run error the method 'platform.linux_distribution' removed in Python 3.8, use distro instead. 2. pexpect.expect() in python3 is throwing error as "must be in str , not bytes" add encoding parameter to fix. Change-Id: I39a8554a355fcd029a7a4ee699ee7e9b6a7da41d Signed-off-by: biao716.wang --- diff --git a/itest/case.py b/itest/case.py index 21f7b9d..3094791 100644 --- a/itest/case.py +++ b/itest/case.py @@ -2,8 +2,8 @@ import os import sys import time import uuid +import distro import platform - try: import unittest2 as unittest from unittest2 import SkipTest @@ -49,7 +49,7 @@ def pcall(cmd, args=(), expecting=(), output=None, answer = [None]*2 + [i[1] for i in expecting] start = time.time() - child = spawn(cmd, list(args), **spawn_opts) + child = spawn(cmd, list(args), encoding='utf-8', **spawn_opts) if output: child.logfile_read = output @@ -251,13 +251,13 @@ set -x """Write `code` into `name`""" path = os.path.join(self.meta, name) data = code.encode('utf8') if isinstance(code, str) else code - with open(path, 'w') as f: + with open(path, 'wb') as f: f.write(data) return path def _psh(self, script, more_expecting=()): - if (platform.linux_distribution()[0] == 'Fedora') and \ - (platform.linux_distribution()[1] == '20') and \ + if (distro.linux_distribution()[0] == 'Fedora') and \ + (distro.linux_distribution()[1] == '20') and \ (platform.architecture()[0] == '32bit'): pat = SUDO_PASS_PROMPT_PATTERN_FEDORA_20_i586 else: diff --git a/itest/result.py b/itest/result.py index c9a8aae..3ed185b 100644 --- a/itest/result.py +++ b/itest/result.py @@ -57,7 +57,7 @@ class XunitTestResult(TextTestResult): content = reader.read() content = content.replace('\r', '\n').replace('\x00', '') content = SHELL_COLOR_PATTERN.sub('', content) - return content.decode('utf8', 'ignore') + return content if hasattr(test, 'meta'): content = get_log() @@ -96,4 +96,4 @@ class XunitTestResult(TextTestResult): xml = ET.tostring(ts) with open(self.xunit_file, 'w') as fp: - fp.write(xml) + fp.write(xml.decode()) diff --git a/itest/utils.py b/itest/utils.py index 2adccae..92b136a 100644 --- a/itest/utils.py +++ b/itest/utils.py @@ -1,6 +1,7 @@ import os import datetime import platform +import distro import subprocess from contextlib import contextmanager @@ -15,7 +16,7 @@ def get_machine_labels(): "Fedora17-x86_64", "Ubuntu", "Ubuntu12.04", "Ubuntun12.10-i586". ''' dist_name, dist_ver = \ - [i.strip() for i in platform.linux_distribution()[:2]] + [i.strip() for i in distro.linux_distribution()[:2]] arch = platform.machine().strip() return (dist_name, arch,