THRIFT-5923: UUID python
Client: py
Patch: CJCombrink
This closes #3330
diff --git a/lib/py/test/thrift_TBinaryProtocol.py b/lib/py/test/thrift_TBinaryProtocol.py
index c4777ad..e84bfe1 100644
--- a/lib/py/test/thrift_TBinaryProtocol.py
+++ b/lib/py/test/thrift_TBinaryProtocol.py
@@ -18,6 +18,7 @@
#
import unittest
+import uuid
import _import_local_thrift # noqa
from thrift.protocol.TBinaryProtocol import TBinaryProtocol
@@ -52,6 +53,9 @@
if type.capitalize() == 'Bool':
protocol.writeBool(data)
+ if type.capitalize() == 'Uuid':
+ protocol.writeUuid(data)
+
transport.flush()
data_r = buf.getvalue()
buf = TTransport.TMemoryBuffer(data_r)
@@ -81,9 +85,12 @@
if type.capitalize() == 'Bool':
return protocol.readBool()
+ if type.capitalize() == 'Uuid':
+ return protocol.readUuid()
+
def testField(type, data):
- TType = {"Bool": 2, "Byte": 3, "Binary": 5, "I16": 6, "I32": 8, "I64": 10, "Double": 11, "String": 12}
+ TType = {"Bool": 2, "Byte": 3, "Binary": 5, "I16": 6, "I32": 8, "I64": 10, "Double": 11, "String": 12, "Uuid": 13}
buf = TTransport.TMemoryBuffer()
transport = TTransport.TBufferedTransportFactory().getTransport(buf)
protocol = TBinaryProtocol(transport)
@@ -113,6 +120,9 @@
if type.capitalize() == 'Bool':
protocol.writeBool(data)
+ if type.capitalize() == 'Uuid':
+ protocol.writeUuid(data)
+
protocol.writeFieldEnd()
protocol.writeStructEnd()
@@ -148,6 +158,9 @@
if type.capitalize() == 'Bool':
return protocol.readBool()
+ if type.capitalize() == 'Uuid':
+ return protocol.readUuid()
+
protocol.readFieldEnd()
protocol.readStructEnd()
@@ -245,6 +258,8 @@
self.assertEqual(True, testField('Bool', True))
self.assertEqual(3.1415926, testNaked("Double", 3.1415926))
self.assertEqual("hello thrift", testNaked("String", "hello thrift"))
+ self.assertEqual(uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}'), testNaked("Uuid", uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')))
+ self.assertEqual(uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}'), testField("Uuid", uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')))
TMessageType = {"T_CALL": 1, "T_REPLY": 2, "T_EXCEPTION": 3, "T_ONEWAY": 4}
test_data = [("short message name", TMessageType['T_CALL'], 0),
diff --git a/lib/py/test/thrift_TCompactProtocol.py b/lib/py/test/thrift_TCompactProtocol.py
index 1d6af8e..3435702 100644
--- a/lib/py/test/thrift_TCompactProtocol.py
+++ b/lib/py/test/thrift_TCompactProtocol.py
@@ -21,6 +21,7 @@
from thrift.protocol import TCompactProtocol
from thrift.transport import TTransport
import unittest
+import uuid
CLEAR = 0
FIELD_WRITE = 1
@@ -70,6 +71,10 @@
protocol.state = CONTAINER_WRITE
protocol.writeBool(True)
+ if type.capitalize() == 'Uuid':
+ protocol.state = CONTAINER_WRITE
+ protocol.writeUuid(data)
+
transport.flush()
data_r = buf.getvalue()
buf = TTransport.TMemoryBuffer(data_r)
@@ -107,9 +112,13 @@
protocol.state = CONTAINER_READ
return protocol.readBool()
+ if type.capitalize() == 'Uuid':
+ protocol.state = CONTAINER_READ
+ return protocol.readUuid()
+
def testField(type, data):
- TType = {"Bool": 2, "Byte": 3, "Binary": 5, "I16": 6, "I32": 8, "I64": 10, "Double": 11, "String": 12}
+ TType = {"Bool": 2, "Byte": 3, "Binary": 5, "I16": 6, "I32": 8, "I64": 10, "Double": 11, "String": 12, "Uuid": 13}
buf = TTransport.TMemoryBuffer()
transport = TTransport.TBufferedTransportFactory().getTransport(buf)
protocol = TCompactProtocol.TCompactProtocol(transport)
@@ -139,6 +148,9 @@
elif type.capitalize() == 'Bool':
protocol.writeBool(data)
+ if type.capitalize() == 'Uuid':
+ protocol.writeUuid(data)
+
protocol.writeFieldEnd()
protocol.writeStructEnd()
@@ -174,6 +186,9 @@
elif type.capitalize() == 'Bool':
return protocol.readBool()
+ if type.capitalize() == 'Uuid':
+ return protocol.readUuid()
+
protocol.readFieldEnd()
protocol.readStructEnd()
@@ -268,6 +283,9 @@
self.assertEqual(True, testField('Bool', True))
self.assertEqual(3.14159261, testField('Double', 3.14159261))
self.assertEqual("hello thrift", testField('String', "hello thrift"))
+ self.assertEqual(uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}'), testNaked("Uuid", uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')))
+ self.assertEqual(uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}'), testField("Uuid", uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')))
+
TMessage = {"T_CALL": 1, "T_REPLY": 2, "T_EXCEPTION": 3, "T_ONEWAY": 4}
test_data = [("short message name", TMessage["T_CALL"], 0),
("1", TMessage["T_REPLY"], 12345),