summaryrefslogtreecommitdiff
path: root/simplejson/tests/test_str_subclass.py
blob: dc87904874deb333da851ca3bae5076b2cbd3599 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from unittest import TestCase

import simplejson
from simplejson.compat import text_type, u

# Tests for issue demonstrated in https://github.com/simplejson/simplejson/issues/144
class WonkyTextSubclass(text_type):
    def __getslice__(self, start, end):
        return self.__class__('not what you wanted!')

class TestStrSubclass(TestCase):
    def test_dump_load(self):
        for s in ['', '"hello"', 'text', u('\u005c')]:
            self.assertEqual(
                s,
                simplejson.loads(simplejson.dumps(WonkyTextSubclass(s))))

            self.assertEqual(
                s,
                simplejson.loads(simplejson.dumps(WonkyTextSubclass(s),
                                                  ensure_ascii=False)))