Client: py

This implements the same subset of 
[THeaderProtocol](https://github.com/apache/thrift/blob/master/doc/specs/HeaderFormat.md)
 that the C++ implementation does. Specifically, it supports TBinaryProtocol 
and TCompactProtocol payloads and allows those same protocols to come in 
without headers framed/unframed for backwards compatibility. It also supports 
the gzip transform.

Both Python 2 and Python 3 pass the full test suite (feature and cross) with 
C++ thrown in the mix:

```
$ make cross
/usr/bin/python3 test/test.py --retry-count 5 --features .* 
--skip-known-failures --server cpp,c_glib,,,,,py,py3,,,,,,,,,,,
...
No unexpected failures.
0 failed of 40 tests in total.
/usr/bin/python3 test/test.py --retry-count 5 --skip-known-failures --server 
cpp,c_glib,,,,,py,py3,,,,,,,,,,, --client cpp,c_glib,,,,,py,py3,,,,,,,,,,, 
--regex ".*"
...
No unexpected failures.
0 failed of 712 tests in total.
```

The only newly added known failures for this are those using the HTTP transport 
which I expect to not work with this implementation of THeader.

```diff
--- a/test/known_failures_Linux.json
+++ b/test/known_failures_Linux.json
@@ -83,6 +83,8 @@
   "cpp-py3_compact-accelc_http-ip-ssl",
   "cpp-py3_compact_http-ip",
   "cpp-py3_compact_http-ip-ssl",
+  "cpp-py3_header_http-ip",
+  "cpp-py3_header_http-ip-ssl",
   "cpp-py3_json_http-ip",
   "cpp-py3_json_http-ip-ssl",
   "cpp-py3_multi-accel_http-ip",
@@ -101,6 +103,8 @@
   "cpp-py3_multic-multiac_http-ip-ssl",
   "cpp-py3_multic_http-ip",
   "cpp-py3_multic_http-ip-ssl",
+  "cpp-py3_multih-header_http-ip",
+  "cpp-py3_multih-header_http-ip-ssl",
   "cpp-py3_multij-json_http-ip",
   "cpp-py3_multij-json_http-ip-ssl",
   "cpp-py3_multij_http-ip",
@@ -113,6 +117,8 @@
   "cpp-py_compact-accelc_http-ip-ssl",
   "cpp-py_compact_http-ip",
   "cpp-py_compact_http-ip-ssl",
+  "cpp-py_header_http-ip",
+  "cpp-py_header_http-ip-ssl",
   "cpp-py_json_http-ip",
   "cpp-py_json_http-ip-ssl",
   "cpp-py_multi-accel_http-ip",
@@ -131,6 +137,8 @@
   "cpp-py_multic-multiac_http-ip-ssl",
   "cpp-py_multic_http-ip",
   "cpp-py_multic_http-ip-ssl",
+  "cpp-py_multih-header_http-ip",
+  "cpp-py_multih-header_http-ip-ssl",
   "cpp-py_multij-json_http-ip",
   "cpp-py_multij-json_http-ip-ssl",
   "cpp-py_multij_http-ip",
@@ -375,6 +383,8 @@
   "py-cpp_binary_http-ip-ssl",
   "py-cpp_compact_http-ip",
   "py-cpp_compact_http-ip-ssl",
+  "py-cpp_header_http-ip",
+  "py-cpp_header_http-ip-ssl",
   "py-cpp_json_http-ip",
   "py-cpp_json_http-ip-ssl",
   "py-d_accel-binary_http-ip",
@@ -420,6 +430,8 @@
   "py3-cpp_binary_http-ip-ssl",
   "py3-cpp_compact_http-ip",
   "py3-cpp_compact_http-ip-ssl",
+  "py3-cpp_header_http-ip",
+  "py3-cpp_header_http-ip-ssl",
   "py3-cpp_json_http-ip",
   "py3-cpp_json_http-ip-ssl",
   "py3-d_accel-binary_http-ip",
```

[ Full content available at: https://github.com/apache/thrift/pull/1583 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to