]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/thrift/lib/py/test/thrift_json.py
buildsys: switch source download to quincy
[ceph.git] / ceph / src / jaegertracing / thrift / lib / py / test / thrift_json.py
1 #
2 # Licensed to the Apache Software Foundation (ASF) under one
3 # or more contributor license agreements. See the NOTICE file
4 # distributed with this work for additional information
5 # regarding copyright ownership. The ASF licenses this file
6 # to you under the Apache License, Version 2.0 (the
7 # "License"); you may not use this file except in compliance
8 # with the License. You may obtain a copy of the License at
9 #
10 # http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing,
13 # software distributed under the License is distributed on an
14 # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 # KIND, either express or implied. See the License for the
16 # specific language governing permissions and limitations
17 # under the License.
18 #
19
20 import sys
21 import unittest
22
23 import _import_local_thrift # noqa
24 from thrift.protocol.TJSONProtocol import TJSONProtocol
25 from thrift.transport import TTransport
26
27 #
28 # In order to run the test under Windows. We need to create symbolic link
29 # name 'thrift' to '../src' folder by using:
30 #
31 # mklink /D thrift ..\src
32 #
33
34
35 class TestJSONString(unittest.TestCase):
36
37 def test_escaped_unicode_string(self):
38 unicode_json = b'"hello \\u0e01\\u0e02\\u0e03\\ud835\\udcab\\udb40\\udc70 unicode"'
39 unicode_text = u'hello \u0e01\u0e02\u0e03\U0001D4AB\U000E0070 unicode'
40
41 buf = TTransport.TMemoryBuffer(unicode_json)
42 transport = TTransport.TBufferedTransportFactory().getTransport(buf)
43 protocol = TJSONProtocol(transport)
44
45 if sys.version_info[0] == 2:
46 unicode_text = unicode_text.encode('utf8')
47 self.assertEqual(protocol.readString(), unicode_text)
48
49
50 if __name__ == '__main__':
51 unittest.main()