[Tarantool-patches] [PATCH v3 3/5] test: make strings compatible with Python 3

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Wed Dec 23 18:40:00 MSK 2020


Thanks for the patch!

See 3 comments below.

> diff --git a/test/box-py/iproto.test.py b/test/box-py/iproto.test.py
> index 6723e03f5..c518b0d73 100644
> --- a/test/box-py/iproto.test.py
> +++ b/test/box-py/iproto.test.py
> @@ -197,16 +197,19 @@ for test in TESTS:
>      print("STR", size)
>      print("--")
>      for fmt in it:
> -        print("0x" + fmt.encode("hex"), "=>", end=" ")
> +        if sys.version[0] == '2':

1. '2' -> "2". It is a normal string, not byte string. Correct?

> +            print("0x" + fmt.encode("hex"), "=>", end=" ")
> +        else:
> +            print("0x" + fmt.hex(), "=>", end=" ")
>          field = "*" * size
> -        c._send_request(RawInsert(c, space_id, "\x91" + fmt + field))
> +        c._send_request(RawInsert(c, space_id, b'\x91' + fmt + field.encode("utf-8")))
>          tuple = space.select(field)[0]
>          print(len(tuple[0])== size and "ok" or "fail", end=" ")
>          it2 = iter(test)
>          next(it2)
>          for fmt2 in it2:
>              tuple = c._send_request(RawSelect(c, space_id,
> -                "\x91" + fmt2 + field))[0]
> +                b'\x91' + fmt2 + field.encode("utf-8")))[0]
>              print(len(tuple[0]) == size and "ok" or "fail", end=" ")
>          tuple = space.delete(field)[0]
>          print(len(tuple[0]) == size and "ok" or "fail", end="")
> @@ -357,15 +360,18 @@ s = c._socket
>  header = { "hello": "world"}
>  body = { "bug": 272 }
>  resp = test_request(header, body)
> -print("sync={}, {}".format(resp["header"][IPROTO_SYNC], resp["body"].get(IPROTO_ERROR)))
> +print("sync={}, {}".format(resp["header"][IPROTO_SYNC],
> +        resp["body"].get(IPROTO_ERROR).decode("utf-8")))

2. It seems this file used 4 char indentation. Lets conform.

>  header = { IPROTO_CODE : REQUEST_TYPE_SELECT }
>  header[IPROTO_SYNC] = 1234
>  resp = test_request(header, body)
> -print("sync={}, {}".format(resp["header"][IPROTO_SYNC], resp["body"].get(IPROTO_ERROR)))
> +print("sync={}, {}".format(resp["header"][IPROTO_SYNC],
> +        resp["body"].get(IPROTO_ERROR).decode("utf-8")))
>  header[IPROTO_SYNC] = 5678
>  body = { IPROTO_SPACE_ID: 304, IPROTO_KEY: [], IPROTO_LIMIT: 1 }
>  resp = test_request(header, body)
> -print("sync={}, {}".format(resp["header"][IPROTO_SYNC], resp["body"].get(IPROTO_ERROR)))
> +print("sync={}, {}".format(resp["header"][IPROTO_SYNC],
> +        resp["body"].get(IPROTO_ERROR).decode("utf-8")))
>  c.close()
>  
>  
> @@ -424,7 +430,10 @@ header = { IPROTO_CODE: REQUEST_TYPE_CALL, IPROTO_SYNC: 100 }
>  body = { IPROTO_FUNCTION_NAME: "kek" }
>  resp = test_request(header, body)
>  print("Sync: ", resp["header"][IPROTO_SYNC])
> -print("Retcode: ", resp["body"][IPROTO_DATA])
> +body = resp["body"][IPROTO_DATA]
> +if sys.version[0] == '3':

3. '3' -> "3".


More information about the Tarantool-patches mailing list