Azure / msrest-for-python

The runtime library "msrest" for AutoRest generated Python clients.
MIT License
41 stars 64 forks source link

Add support for Python 3.11 #256

Closed hugovk closed 1 year ago

hugovk commented 1 year ago

$ $ tox -e py311
py311 installed: aiohttp==3.8.3,aiosignal==1.2.0,astroid==2.12.12,async-generator==1.10,async-timeout==4.0.2,attrs==22.1.0,azure-core==1.26.1,certifi==2022.9.24,charset-normalizer==2.1.1,coverage==4.5.4,dill==0.3.6,frozenlist==1.3.1,httpretty==1.1.4,idna==3.4,iniconfig==1.1.1,isodate==0.6.1,isort==5.10.1,lazy-object-proxy==1.8.0,mccabe==0.7.0,-e git+https://github.com/hugovk/msrest-for-python@29003cc5719c8c46e86a421057c25753f3a039d7#egg=msrest,multidict==6.0.2,mypy==0.982,mypy-extensions==0.4.3,oauthlib==3.2.2,outcome==1.2.0,packaging==21.3,platformdirs==2.5.2,pluggy==1.0.0,pylint==2.15.5,pyparsing==3.0.9,pytest==7.2.0,pytest-asyncio==0.20.1,pytest-cov==2.10.1,requests==2.28.1,requests-oauthlib==1.3.1,six==1.16.0,sniffio==1.3.0,sortedcontainers==2.4.0,tomlkit==0.11.6,trio==0.20.0,typing_extensions==4.4.0,urllib3==1.26.12,wrapt==1.14.1,yarl==1.8.1
py311 run-test-pre: PYTHONHASHSEED='3699353339'
py311 run-test: commands[0] | pytest --cov=msrest tests/
============================================================================== test session starts ===============================================================================
platform darwin -- Python 3.11.0, pytest-7.2.0, pluggy-1.0.0
cachedir: .tox/py311/.pytest_cache
rootdir: /private/tmp/msrest-for-python, configfile: setup.cfg
plugins: cov-2.10.1, asyncio-0.20.1
asyncio: mode=Mode.STRICT
collected 210 items

tests/test_auth.py .......                                                                                                                                                 [  3%]
tests/test_client.py ...........                                                                                                                                           [  8%]
tests/test_exceptions.py ..                                                                                                                                                [  9%]
tests/test_paging.py .....                                                                                                                                                 [ 11%]
tests/test_pipeline.py .....                                                                                                                                               [ 14%]
tests/test_polling.py ....                                                                                                                                                 [ 16%]
tests/test_requests_universal.py ....                                                                                                                                      [ 18%]
tests/test_runtime.py ...............                                                                                                                                      [ 25%]
tests/test_serialization.py ...................................................................................                                                            [ 64%]
tests/test_universal_pipeline.py ...                                                                                                                                       [ 66%]
tests/test_xml_serialization.py ...................................................                                                                                        [ 90%]
tests/asynctests/test_async_client.py ..                                                                                                                                   [ 91%]
tests/asynctests/test_async_paging.py .....                                                                                                                                [ 93%]
tests/asynctests/test_pipeline.py .....                                                                                                                                    [ 96%]
tests/asynctests/test_polling.py ....                                                                                                                                      [ 98%]
tests/asynctests/test_universal_http.py ....                                                                                                                               [100%]

================================================================================ warnings summary ================================================================================
.tox/py311/lib/python3.11/site-packages/coverage/pytracer.py:164: 1 warning
tests/test_polling.py: 2 warnings
tests/test_requests_universal.py: 2 warnings
tests/test_runtime.py: 31 warnings
tests/asynctests/test_async_client.py: 2 warnings
tests/asynctests/test_pipeline.py: 4 warnings
tests/asynctests/test_universal_http.py: 3 warnings
  /private/tmp/msrest-for-python/.tox/py311/lib/python3.11/site-packages/coverage/pytracer.py:164: DeprecationWarning: currentThread() is deprecated, use current_thread() instead
    self.thread = self.threading.currentThread()

.tox/py311/lib/python3.11/site-packages/pytest_cov/plugin.py:233
  /private/tmp/msrest-for-python/.tox/py311/lib/python3.11/site-packages/pytest_cov/plugin.py:233: PytestDeprecationWarning: The hookimpl CovPlugin.pytest_configure_node uses old-style configuration options (marks or attributes).
  Please use the pytest.hookimpl(optionalhook=True) decorator instead
   to configure the hooks.
   See https://docs.pytest.org/en/latest/deprecations.html#configuring-hook-specs-impls-using-markers
    def pytest_configure_node(self, node):

.tox/py311/lib/python3.11/site-packages/pytest_cov/plugin.py:242
  /private/tmp/msrest-for-python/.tox/py311/lib/python3.11/site-packages/pytest_cov/plugin.py:242: PytestDeprecationWarning: The hookimpl CovPlugin.pytest_testnodedown uses old-style configuration options (marks or attributes).
  Please use the pytest.hookimpl(optionalhook=True) decorator instead
   to configure the hooks.
   See https://docs.pytest.org/en/latest/deprecations.html#configuring-hook-specs-impls-using-markers
    def pytest_testnodedown(self, node, error):

tests/test_auth.py::TestAuthentication::test_apikey_auth
tests/test_auth.py::TestAuthentication::test_cs_auth
tests/test_auth.py::TestAuthentication::test_eventgrid_auth
tests/test_auth.py::TestAuthentication::test_eventgrid_domain_auth
  /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/unittest/case.py:1176: DeprecationWarning: assertDictContainsSubset is deprecated
    warnings.warn('assertDictContainsSubset is deprecated',

tests/test_client.py::TestServiceClient::test_client_request
tests/test_client.py::TestServiceClient::test_deprecated_creds
tests/test_runtime.py::TestRuntimeRetry::test_request_retry_3_times
tests/test_runtime.py::TestRuntimeRetry::test_request_retry_404
tests/test_runtime.py::TestRuntimeRetry::test_request_retry_408
tests/test_runtime.py::TestRuntimeRetry::test_request_retry_501
tests/test_runtime.py::TestRuntimeRetry::test_request_retry_502
tests/test_runtime.py::TestRuntimeRetry::test_request_retry_505
tests/test_runtime.py::TestRuntimeRetry::test_request_retry_max
  /private/tmp/msrest-for-python/msrest/service_client.py:259: DeprecationWarning: Creds parameter is deprecated. Set config.credentials instead.
    warnings.warn("Creds parameter is deprecated. Set config.credentials instead.",

tests/test_runtime.py: 23 warnings
tests/asynctests/test_pipeline.py: 4 warnings
tests/asynctests/test_universal_http.py: 4 warnings
  /private/tmp/msrest-for-python/.tox/py311/lib/python3.11/site-packages/urllib3/util/retry.py:455: DeprecationWarning: Using 'method_whitelist' with Retry is deprecated and will be removed in v2.0. Use 'allowed_methods' instead
    warnings.warn(

tests/test_runtime.py::TestRuntimeRetry::test_request_retry_3_times
tests/test_runtime.py::TestRuntimeRetry::test_request_retry_408
tests/test_runtime.py::TestRuntimeRetry::test_request_retry_502
tests/test_runtime.py::TestRuntimeRetry::test_request_retry_max
  /private/tmp/msrest-for-python/.tox/py311/lib/python3.11/site-packages/urllib3/util/retry.py:328: DeprecationWarning: Using 'method_whitelist' with Retry is deprecated and will be removed in v2.0. Use 'allowed_methods' instead
    warnings.warn(

tests/test_runtime.py::TestRuntimeRetry::test_request_retry_3_times
tests/test_runtime.py::TestRuntimeRetry::test_request_retry_408
tests/test_runtime.py::TestRuntimeRetry::test_request_retry_502
tests/test_runtime.py::TestRuntimeRetry::test_request_retry_max
  /private/tmp/msrest-for-python/.tox/py311/lib/python3.11/site-packages/urllib3/util/retry.py:338: DeprecationWarning: Using 'method_whitelist' with Retry is deprecated and will be removed in v2.0. Use 'allowed_methods' instead
    return type(self)(**params)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

---------- coverage: platform darwin, python 3.11.0-final-0 ----------
Name                                      Stmts   Miss  Cover
-------------------------------------------------------------
msrest/__init__.py                            7      1    86%
msrest/async_client.py                       45     11    76%
msrest/async_paging.py                       29      2    93%
msrest/authentication.py                     93     19    80%
msrest/configuration.py                      33      8    76%
msrest/exceptions.py                         78     13    83%
msrest/http_logger.py                        48     16    67%
msrest/paging.py                             60     10    83%
msrest/pipeline/__init__.py                 129     21    84%
msrest/pipeline/aiohttp.py                   16      1    94%
msrest/pipeline/async_abc.py                 72     12    83%
msrest/pipeline/async_requests.py            62     12    81%
msrest/pipeline/requests.py                  98     27    72%
msrest/pipeline/universal.py                105      9    91%
msrest/polling/__init__.py                    7      1    86%
msrest/polling/async_poller.py               30      1    97%
msrest/polling/poller.py                     92      1    99%
msrest/serialization.py                    1060    164    85%
msrest/service_client.py                    143     27    81%
msrest/universal_http/__init__.py           199     60    70%
msrest/universal_http/aiohttp.py             44     11    75%
msrest/universal_http/async_abc.py           26     12    54%
msrest/universal_http/async_requests.py     109     30    72%
msrest/universal_http/requests.py           198     35    82%
msrest/version.py                             2      1    50%
-------------------------------------------------------------
TOTAL                                      2785    505    82%

============================================================================== slowest 10 durations ==============================================================================
2.00s call     tests/asynctests/test_polling.py::test_poller
1.02s call     tests/test_polling.py::test_poller
0.27s call     tests/asynctests/test_universal_http.py::test_conf_async_requests
0.27s call     tests/asynctests/test_pipeline.py::test_basic_async_requests
0.19s call     tests/asynctests/test_universal_http.py::test_basic_async_requests
0.18s call     tests/asynctests/test_universal_http.py::test_conf_async_trio_requests
0.14s call     tests/asynctests/test_pipeline.py::test_basic_aiohttp
0.11s call     tests/asynctests/test_universal_http.py::test_basic_aiohttp
0.11s call     tests/asynctests/test_pipeline.py::test_conf_async_trio_requests
0.10s call     tests/asynctests/test_pipeline.py::test_conf_async_requests
======================================================================== 210 passed, 99 warnings in 6.05s ========================================================================
py311 run-test: commands[1] | coverage report --fail-under=40
Name                                      Stmts   Miss  Cover
-------------------------------------------------------------
msrest/__init__.py                            7      1    86%
msrest/async_client.py                       45     11    76%
msrest/async_paging.py                       29      2    93%
msrest/authentication.py                     93     19    80%
msrest/configuration.py                      33      8    76%
msrest/exceptions.py                         78     13    83%
msrest/http_logger.py                        48     16    67%
msrest/paging.py                             60     10    83%
msrest/pipeline/__init__.py                 129     21    84%
msrest/pipeline/aiohttp.py                   16      1    94%
msrest/pipeline/async_abc.py                 72     12    83%
msrest/pipeline/async_requests.py            62     12    81%
msrest/pipeline/requests.py                  98     27    72%
msrest/pipeline/universal.py                105      9    91%
msrest/polling/__init__.py                    7      1    86%
msrest/polling/async_poller.py               30      1    97%
msrest/polling/poller.py                     92      1    99%
msrest/serialization.py                    1060    164    85%
msrest/service_client.py                    143     27    81%
msrest/universal_http/__init__.py           199     60    70%
msrest/universal_http/aiohttp.py             44     11    75%
msrest/universal_http/async_abc.py           26     12    54%
msrest/universal_http/async_requests.py     109     30    72%
msrest/universal_http/requests.py           198     35    82%
msrest/version.py                             2      1    50%
-------------------------------------------------------------
TOTAL                                      2785    505    82%
py311 run-test: commands[2] | coverage xml --ignore-errors
____________________________________________________________________________________ summary _____________________________________________________________________________________
  py311: commands succeeded
  congratulations :)