Esempio n. 1
0
    def do_test(self):
        self._check_write(HolyMoley())
        self._check_read(HolyMoley())

        self._check_write(hm)
        no_set = deepcopy(hm)
        no_set.contain = set()
        self._check_read(no_set)
        self._check_read(hm)

        self._check_write(rs)
        self._check_read(rs)

        self._check_write(rshuge)
        self._check_read(rshuge)

        self._check_write(my_zero)
        self._check_read(my_zero)

        self._check_read(Backwards(**{"first_tag2": 4, "second_tag1": 2}))


        o = Backwards(**{"first_tag2": 4, "second_tag1": 2})
        trans_fast = TTransport.TMemoryBuffer()
        trans_slow = TTransport.TMemoryBuffer()
        prot_fast = self._fast(trans_fast, fallback=False)
        prot_slow = self._slow(trans_slow)

        o.write(prot_fast)
        o.write(prot_slow)
        ORIG = trans_slow.getvalue()
        MINE = trans_fast.getvalue()
        assert id(ORIG) != id(MINE)

        prot = self._fast(TTransport.TMemoryBuffer(), fallback=False)
        o.write(prot)
        prot = self._slow(
            TTransport.TMemoryBuffer(prot.trans.getvalue()))
        c = o.__class__()
        c.read(prot)
        if c != o:
            print("copy: ")
            pprint(repr(c))
            print("orig: ")
            pprint(repr(o))
Esempio n. 2
0
def do_test():
    check_write(hm)
    check_read(HolyMoley())
    no_set = deepcopy(hm)
    no_set.contain = set()
    check_read(no_set)
    check_write(rs)
    check_read(rs)
    check_write(rshuge)
    check_read(rshuge)
    check_write(my_zero)
    check_read(my_zero)
    check_read(Backwards(**{"first_tag2": 4, "second_tag1": 2}))

    # One case where the serialized form changes, but only superficially.
    o = Backwards(**{"first_tag2": 4, "second_tag1": 2})
    trans_fast = TTransport.TMemoryBuffer()
    trans_slow = TTransport.TMemoryBuffer()
    prot_fast = TBinaryProtocol.TBinaryProtocolAccelerated(trans_fast)
    prot_slow = TBinaryProtocol.TBinaryProtocol(trans_slow)

    o.write(prot_fast)
    o.write(prot_slow)
    ORIG = trans_slow.getvalue()
    MINE = trans_fast.getvalue()
    assert id(ORIG) != id(MINE)

    prot = TBinaryProtocol.TBinaryProtocolAccelerated(
        TTransport.TMemoryBuffer())
    o.write(prot)
    prot = TBinaryProtocol.TBinaryProtocol(
        TTransport.TMemoryBuffer(prot.trans.getvalue()))
    c = o.__class__()
    c.read(prot)
    if c != o:
        print("copy: ")
        pprint(eval(repr(c)))
        print("orig: ")
        pprint(eval(repr(o)))
Esempio n. 3
0
ooe2.integer16 = 16
ooe2.integer32 = 32
ooe2.integer64 = 64
ooe2.double_precision = (math.sqrt(5) + 1) / 2
ooe2.some_characters = ":R (me going \"rrrr\")"
ooe2.zomg_unicode = u"\xd3\x80\xe2\x85\xae\xce\x9d\x20"\
                    u"\xd0\x9d\xce\xbf\xe2\x85\xbf\xd0\xbe"\
                    u"\xc9\xa1\xd0\xb3\xd0\xb0\xcf\x81\xe2\x84\x8e"\
                    u"\x20\xce\x91\x74\x74\xce\xb1\xe2\x85\xbd\xce\xba"\
                    u"\xc7\x83\xe2\x80\xbc"

if sys.version_info[0] == 2 and os.environ.get('THRIFT_TEST_PY_NO_UTF8STRINGS'):
    ooe1.zomg_unicode = ooe1.zomg_unicode.encode('utf8')
    ooe2.zomg_unicode = ooe2.zomg_unicode.encode('utf8')

hm = HolyMoley(**{"big": [], "contain": set(), "bonks": {}})
hm.big.append(ooe1)
hm.big.append(ooe2)
hm.big[0].a_bite = 0x22
hm.big[1].a_bite = 0x22

hm.contain.add(("and a one", "and a two"))
hm.contain.add(("then a one, two", "three!", "FOUR!"))
hm.contain.add(())

hm.bonks["nothing"] = []
hm.bonks["something"] = [
    Bonk(**{"type": 1, "message": "Wait."}),
    Bonk(**{"type": 2, "message": "What?"}),
]
hm.bonks["poe"] = [