47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
Tests for the resurrected Py2-like 8-bit string type.
|
|
"""
|
|
|
|
from __future__ import absolute_import, unicode_literals, print_function
|
|
|
|
from numbers import Integral
|
|
from future.tests.base import unittest
|
|
from past.builtins import str as oldstr
|
|
from past.types.oldstr import unescape
|
|
|
|
|
|
class TestOldStr(unittest.TestCase):
|
|
def test_repr(self):
|
|
s1 = oldstr(b'abc')
|
|
self.assertEqual(repr(s1), "'abc'")
|
|
s2 = oldstr(b'abc\ndef')
|
|
self.assertEqual(repr(s2), "'abc\\ndef'")
|
|
|
|
def test_str(self):
|
|
s1 = oldstr(b'abc')
|
|
self.assertEqual(str(s1), 'abc')
|
|
s2 = oldstr(b'abc\ndef')
|
|
self.assertEqual(str(s2), 'abc\ndef')
|
|
|
|
def test_unescape(self):
|
|
self.assertEqual(unescape('abc\\ndef'), 'abc\ndef')
|
|
s = unescape(r'a\\b\c\\d') # i.e. 'a\\\\b\\c\\\\d'
|
|
self.assertEqual(str(s), r'a\b\c\d')
|
|
s2 = unescape(r'abc\\ndef') # i.e. 'abc\\\\ndef'
|
|
self.assertEqual(str(s2), r'abc\ndef')
|
|
|
|
def test_getitem(self):
|
|
s = oldstr(b'abc')
|
|
|
|
self.assertNotEqual(s[0], 97)
|
|
self.assertEqual(s[0], b'a')
|
|
self.assertEqual(s[0], oldstr(b'a'))
|
|
|
|
self.assertEqual(s[1:], b'bc')
|
|
self.assertEqual(s[1:], oldstr(b'bc'))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|