fix itest-core run error 91/293291/5
authorbiao716.wang <biao716.wang@samsung.com>
Wed, 24 May 2023 03:00:31 +0000 (12:00 +0900)
committerbiao716.wang <biao716.wang@samsung.com>
Wed, 24 May 2023 08:37:40 +0000 (17:37 +0900)
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 <biao716.wang@samsung.com>
itest/case.py
itest/result.py
itest/utils.py

index 21f7b9d..3094791 100644 (file)
@@ -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:
index c9a8aae..3ed185b 100644 (file)
@@ -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())
index 2adccae..92b136a 100644 (file)
@@ -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,