debian-koji/tests/test_lib/test_decode_bytes.py
2020-10-06 15:00:23 +02:00

58 lines
2.2 KiB
Python

# coding=utf-8
from __future__ import absolute_import
import six
import unittest
from koji.util import decode_bytes
class DecodeBytesTestCase(unittest.TestCase):
DATA = [
# list of pairs [bytes, string]
[b'Hello World', u'Hello World'],
[b'hello', u'hello'],
[b'hi', u'hi'],
[b'yo', u'yo'],
[b"what's up", u"what's up"],
[b"g'day", u"g'day"],
[b'back to work', u'back to work'],
[b'bonjour', u'bonjour'],
[b'hallo', u'hallo'],
[b'ciao', u'ciao'],
[b'hola', u'hola'],
[b'ol\xc3\xa1', u'olá'],
[b'dobr\xc3\xbd den', u'dobrý den'],
[b'zdravstvuite', u'zdravstvuite'],
[b'g\xc3\xb3\xc3\xb0an daginn', u'góðan daginn'],
[b'hej', u'hej'],
[b'tervehdys', u'tervehdys'],
[b'gr\xc3\xbcezi', u'grüezi'],
[b'c\xc3\xa9ad m\xc3\xadle f\xc3\xa1ilte', u'céad míle fáilte'],
[b'hyl\xc3\xb4', u'hylô'],
[b'bun\xc4\x83 ziua', u'bună ziua'],
[b'j\xc3\xb3 napot', u'jó napot'],
[b'dobre dan', u'dobre dan'],
[b'\xe4\xbd\xa0\xe5\xa5\xbd', u'你好'],
[b'\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf', u'こんにちは'],
[b'\xe0\xa4\xa8\xe0\xa4\xae\xe0\xa4\xb8\xe0\xa5\x8d\xe0\xa4\x95\xe0'
b'\xa4\xbe\xe0\xa4\xb0',
u'नमस्कार'],
[b'\xec\x95\x88\xeb\x85\x95\xed\x95\x98\xec\x84\xb8\xec\x9a\x94', u'안녕하세요']]
BAD_DATA = [
# not valid utf8
b'k\xddGMps\x00^\x1f\x0e\x08c\xd2}\xdf}\xdb\xeb\xda\xf7',
b'\x8am\x8f}\\\xd6\xd1=[\xe9\\)\xd8j"\x81 (\xb6\xde',
b'\xf7\x0ey\x8c\xd9\xda\xdd\xbe\xf6^\xa0\xc8kG\xbbq\xa7w]\xd0',
b's&4\xee\xc3\xa3n\xe1\xafn\xefL7j:\xdc\xcbV\xec\xea'
]
def test_decode_bytes(self):
for data, expected in self.DATA:
result = decode_bytes(data)
self.assertEqual(result, expected)
for data in self.BAD_DATA:
with self.assertRaises(UnicodeDecodeError):
decode_bytes(data, fallback=None)