diff --git a/tripleo_common/image/image_builder.py b/tripleo_common/image/image_builder.py index 1778d6d2e..010561993 100644 --- a/tripleo_common/image/image_builder.py +++ b/tripleo_common/image/image_builder.py @@ -23,6 +23,11 @@ import sys from tripleo_common.image.exception import ImageBuilderException +if sys.version_info[0] < 3: + import codecs + _open = open + open = codecs.open + @six.add_metaclass(abc.ABCMeta) class ImageBuilder(object): @@ -116,7 +121,7 @@ class DibImageBuilder(ImageBuilder): process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - with open(log_file, 'w') as f: + with open(log_file, 'w', encoding='utf-8') as f: while True: line = process.stdout.readline() try: diff --git a/tripleo_common/tests/image/test_image_builder.py b/tripleo_common/tests/image/test_image_builder.py index b5239a343..0b661fe23 100644 --- a/tripleo_common/tests/image/test_image_builder.py +++ b/tripleo_common/tests/image/test_image_builder.py @@ -66,7 +66,8 @@ class TestDibImageBuilder(base.TestCase): 'element1', 'element2'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - mock_open.assert_called_once_with('image/path.log', 'w') + mock_open.assert_called_once_with( + 'image/path.log', 'w', encoding='utf-8') self.assertEqual([mock.call(u'foo\n'), mock.call(u'bar\n')], mock_file.write.mock_calls) @@ -101,7 +102,8 @@ class TestDibImageBuilder(base.TestCase): 'element1', 'element2'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - mock_open.assert_called_once_with('image/path.log', 'w') + mock_open.assert_called_once_with( + 'image/path.log', 'w', encoding='utf-8') self.assertEqual([mock.call(u'error\n')], mock_file.write.mock_calls) self.builder.logger.info.assert_has_calls([mock.call(u'error')])