aboutsummaryrefslogtreecommitdiff
path: root/tests/mobly/records_test.py
diff options
context:
space:
mode:
authorwinterfroststrom <winterfroststrom@users.noreply.github.com>2018-06-11 13:43:18 -0700
committerGitHub <noreply@github.com>2018-06-11 13:43:18 -0700
commitc76dc8dfe2251d49e6aef1c83d4a9423835aa304 (patch)
treeea2bd8fc4c28b5ea13dadc8a68d654a8e0f1c314 /tests/mobly/records_test.py
parent57504a2f10864a056d7e334ac4cc2575942772e7 (diff)
downloadmobly-c76dc8dfe2251d49e6aef1c83d4a9423835aa304.tar.gz
Fix unicode encoding issues with records module. (#460)
Diffstat (limited to 'tests/mobly/records_test.py')
-rwxr-xr-xtests/mobly/records_test.py28
1 files changed, 26 insertions, 2 deletions
diff --git a/tests/mobly/records_test.py b/tests/mobly/records_test.py
index 9c795aa..fbbc4f4 100755
--- a/tests/mobly/records_test.py
+++ b/tests/mobly/records_test.py
@@ -13,6 +13,7 @@
# limitations under the License.
from builtins import str
+from io import open
import copy
import mock
@@ -355,10 +356,33 @@ class RecordsTest(unittest.TestCase):
dump_path = os.path.join(self.tmp_path, 'ha.yaml')
writer = records.TestSummaryWriter(dump_path)
writer.dump(record1.to_dict(), records.TestSummaryEntryType.RECORD)
- with open(dump_path, 'r') as f:
+ with open(dump_path, 'r', encoding='utf-8') as f:
content = yaml.load(f)
self.assertEqual(content['Type'],
records.TestSummaryEntryType.RECORD.value)
+ self.assertEqual(content[records.TestResultEnums.RECORD_DETAILS],
+ self.details)
+ self.assertEqual(content[records.TestResultEnums.RECORD_EXTRAS],
+ self.float_extra)
+
+ def test_summary_write_dump_with_unicode(self):
+ unicode_details = u'\u901a' # utf-8 -> b'\xe9\x80\x9a'
+ unicode_extras = u'\u8fc7' # utf-8 -> b'\xe8\xbf\x87'
+ s = signals.TestFailure(unicode_details, unicode_extras)
+ record1 = records.TestResultRecord(self.tn)
+ record1.test_begin()
+ record1.test_fail(s)
+ dump_path = os.path.join(self.tmp_path, 'ha.yaml')
+ writer = records.TestSummaryWriter(dump_path)
+ writer.dump(record1.to_dict(), records.TestSummaryEntryType.RECORD)
+ with open(dump_path, 'r', encoding='utf-8') as f:
+ content = yaml.load(f)
+ self.assertEqual(content['Type'],
+ records.TestSummaryEntryType.RECORD.value)
+ self.assertEqual(content[records.TestResultEnums.RECORD_DETAILS],
+ unicode_details)
+ self.assertEqual(content[records.TestResultEnums.RECORD_EXTRAS],
+ unicode_extras)
def test_summary_user_data(self):
user_data1 = {'a': 1}
@@ -368,7 +392,7 @@ class RecordsTest(unittest.TestCase):
writer = records.TestSummaryWriter(dump_path)
for data in user_data:
writer.dump(data, records.TestSummaryEntryType.USER_DATA)
- with open(dump_path, 'r') as f:
+ with open(dump_path, 'r', encoding='utf-8') as f:
contents = []
for c in yaml.load_all(f):
contents.append(c)