How did you get "test result"? Should we add automated test for that? For example, once a week
On Wed, May 6, 2020, 5:28 PM Gilchrist Dadaglo <dada...@amazon.com> wrote: > > Background: > Python 2 is no longer supported since January, 1st 2020 as per > https://www.python.org/doc/sunset-python-2/ > The purpose of this change is to make the spoa_server contrib > library > compatible with Python 3 to allow transition to Python 3. > > Test Settings: > ps_python.py: > ... > spoa.set_var_null("null", spoa.scope_txn) > spoa.set_var_boolean("boolean", spoa.scope_txn, True) > spoa.set_var_int32("int32", spoa.scope_txn, 1234) > spoa.set_var_uint32("uint32", spoa.scope_txn, 1234) > spoa.set_var_int64("int64", spoa.scope_txn, 1234) > spoa.set_var_uint64("uint64", spoa.scope_txn, 1234) > spoa.set_var_ipv4("ipv4", spoa.scope_txn, > ipaddress.IPv4Address(u"127.0.0.1")) > spoa.set_var_ipv6("ipv6", spoa.scope_txn, > ipaddress.IPv6Address(u"1::f")) > spoa.set_var_str("str", spoa.scope_txn, "1::f") > spoa.set_var_bin("bin", spoa.scope_txn, "1:\x01:\x42f\x63\x63") > spoa.set_var_str("python_version", spoa.scope_sess, > str(sys.version_info)) > ... > haproxy.cfg: > ... > http-request capture var(txn.verb.null),debug len 1 > http-request capture var(txn.verb.boolean),debug len 1 > http-request capture var(txn.verb.int32),debug len 4 > http-request capture var(txn.verb.uint32),debug len 4 > http-request capture var(txn.verb.int64),debug len 4 > http-request capture var(txn.verb.uint64),debug len 4 > http-request capture var(txn.verb.ipv4),debug len 16 > http-request capture var(txn.verb.ipv6),debug len 45 > http-request capture var(txn.verb.str),debug len 32 > http-request capture var(txn.verb.bin),debug len 32 > http-request capture var(sess.verb.python_version),debug len 100 > ... > > Test result: > Python 3.8: > ft_public ft_public/<NOSRV> 0/-1/-1/-1/0 403 212 - - PR-- > 1/1/0/0/0 0/0 > {|1|1234|1234|1234|1234|127.0.0.1|1::f|1::f|1:#01:Bfcc|sys.version_info(major=3, > minor=8, micro=1, releaselevel='final', serial=0)} "POST / HTTP/1.1" > Python 3.7: > ft_public ft_public/<NOSRV> 0/-1/-1/-1/0 403 212 - - PR-- > 1/1/0/0/0 0/0 > {|1|1234|1234|1234|1234|127.0.0.1|1::f|1::f|1:#01:Bfcc|sys.version_info(major=3, > minor=7, micro=6, releaselevel='final', serial=0)} "POST / HTTP/1.1" > Python 3.6: > ft_public ft_public/<NOSRV> 0/-1/-1/-1/0 403 212 - - PR-- > 1/1/0/0/0 0/0 > {|1|1234|1234|1234|1234|127.0.0.1|1::f|1::f|1:#01:Bfcc|sys.version_info(major=3, > minor=6, micro=10, releaselevel='final', serial=0)} "POST / HTTP/1.1" > Python 2.7: > ft_public ft_public/<NOSRV> 0/-1/-1/-1/0 403 212 - - PR-- > 1/1/0/0/0 0/0 > {|1|1234|1234|1234|1234|127.0.0.1|1::f|1::f|1:#01:Bfcc|sys.version_info(major=2, > minor=7, micro=17, releaselevel='final', serial=0)} "POST / HTTP/1.1" > > Not tested: > Python <2.7 > --- > haproxy/contrib/spoa_server/Makefile | 37 +++++ > haproxy/contrib/spoa_server/README | 10 +- > haproxy/contrib/spoa_server/ps_python.c | 179 +++++++++++++++++++----- > haproxy/contrib/spoa_server/ps_python.h | 52 +++++++ > 4 files changed, 241 insertions(+), 37 deletions(-) > create mode 100644 haproxy/contrib/spoa_server/ps_python.h > >