loman/repo_manifest: change ElementTree.tostring return to unicode
The tostring function returns bytes by default even though its name
suggests otherwise. Add explicit encoding=unicode option so we can
get back a proper string.
BUG=chromium:997354
TEST=`./run_tests` passes
Change-Id: Ife0b031e8927c0a0e49bc2bf8ce3c4f92a340e3f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1933554
Tested-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
diff --git a/scripts/loman.py b/scripts/loman.py
index 16e4bfe..861bbef 100644
--- a/scripts/loman.py
+++ b/scripts/loman.py
@@ -14,6 +14,8 @@
from chromite.lib import commandline
from chromite.lib import cros_build_lib
from chromite.lib import git
+from chromite.lib import osutils
+from chromite.lib import repo_manifest
class LocalManifest(object):
@@ -22,8 +24,7 @@
@classmethod
def FromPath(cls, path, empty_if_missing=False):
if os.path.isfile(path):
- with open(path) as f:
- return cls(f.read())
+ return cls(osutils.ReadFile(path))
elif empty_if_missing:
cros_build_lib.Die('Manifest file, %r, not found' % path)
return cls()
@@ -67,7 +68,8 @@
# Fix manifest tag text and tail.
self.nodes.text = '\n '
self.nodes.tail = '\n'
- return ElementTree.tostring(self.nodes)
+ return ElementTree.tostring(
+ self.nodes, encoding=repo_manifest.TOSTRING_ENCODING)
def GetProjects(self):
return list(self.nodes.findall('project'))