)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8014212f7aaafb6ca6eb0126d2b2c4a3921ada25","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"87bfcb21_245015d9","updated":"2023-04-25 21:18:36.000000000","message":"fast for me on py2 as well\n\n\tvagrant@saio2:~$ time pytest swift/test/unit/proxy/controllers/test_obj.py::TestECFragGetter\n\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d test session starts \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\tplatform linux2 -- Python 2.7.18, pytest-4.6.11, py-1.11.0, pluggy-0.13.1 -- /usr/bin/python\n\tcachedir: .pytest_cache\n\trootdir: /home/vagrant/swift, inifile: tox.ini\n\tplugins: cov-2.12.1, requests-mock-1.7.0\n\tcollected 6 items                                                                                                                                                                                         \n\n\tswift/::TestECFragGetter::test_iter_bytes_from_response_part PASSED                                                                                                                                 [ 16%]\n\tswift/::TestECFragGetter::test_iter_bytes_from_response_part_insufficient_bytes PASSED                                                                                                              [ 33%]\n\tswift/::TestECFragGetter::test_iter_bytes_from_response_part_null_chunk_size PASSED                                                                                                                 [ 50%]\n\tswift/::TestECFragGetter::test_iter_bytes_from_response_part_read_timeout PASSED                                                                                                                    [ 66%]\n\tswift/::TestECFragGetter::test_iter_bytes_from_response_part_slow_read PASSED                                                                                                                       [ 83%]\n\tswift/::TestECFragGetter::test_iter_bytes_from_response_part_small_chunk_size PASSED                                                                                                                [100%]\n\n\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d warnings summary \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\t/usr/local/lib/python2.7/dist-packages/dns/hash.py:25\n\t  /usr/local/lib/python2.7/dist-packages/dns/hash.py:25: DeprecationWarning: dns.hash module will be removed in future versions. Please use hashlib instead.\n\t    DeprecationWarning)\n\n\t-- Docs: https://docs.pytest.org/en/latest/warnings.html\n\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d 6 passed, 1 warnings in 4.31 seconds \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n\treal\t0m6.080s\n\tuser\t0m2.874s\n\tsys\t0m2.238s","commit_id":"de4bce27fbbdcd4afe5e8aa123c3b03ffe6a005a"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"0ff32a4a6b1f41fc096a1388fbe836d17ce6ada8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"bcf599a1_c9bb071e","updated":"2023-04-26 12:29:36.000000000","message":"But the test passes on my py2.7 VSAIO\n\n```\nvagrant@vagrant:~/swift$ pytest ./test/unit/proxy/controllers/test_obj.py::TestECFragGetter::test_iter_bytes_from_response_part_slow_read\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d test session starts \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nplatform linux2 -- Python 2.7.18, pytest-4.6.11, py-1.11.0, pluggy-0.13.1 -- /usr/bin/python\ncachedir: .pytest_cache\nrootdir: /vagrant/swift, inifile: tox.ini\nplugins: cov-2.12.1, requests-mock-1.7.0\ncollected 1 item\n\ntest/unit/proxy/controllers/test_obj.py::TestECFragGetter::test_iter_bytes_from_response_part_slow_read PASSED                                                  [100%]\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d warnings summary \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n/usr/local/lib/python2.7/dist-packages/dns/hash.py:25\n  /usr/local/lib/python2.7/dist-packages/dns/hash.py:25: DeprecationWarning: dns.hash module will be removed in future versions. Please use hashlib instead.\n    DeprecationWarning)\n\n-- Docs: https://docs.pytest.org/en/latest/warnings.html\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d 1 passed, 1 warnings in 0.77 seconds \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n```\n\n\nvagrant@vagrant:~/swift$ pip freeze\nDEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.\nansible\u003d\u003d4.10.0\nansible-core\u003d\u003d2.11.12\nappdirs\u003d\u003d1.4.4\natomicwrites\u003d\u003d1.4.1\nattrs\u003d\u003d21.4.0\nawscli\u003d\u003d1.19.112\nawscli-plugin-endpoint\u003d\u003d0.4\nBabel\u003d\u003d2.8.0\nbackports.functools-lru-cache\u003d\u003d1.6.4\nbandit\u003d\u003d1.6.2\nboto\u003d\u003d2.49.0\nboto3\u003d\u003d1.12.39\nbotocore\u003d\u003d1.15.39\ncertifi\u003d\u003d2020.4.5.1\ncffi\u003d\u003d1.14.0\nchardet\u003d\u003d3.0.4\ncliff\u003d\u003d2.18.0\ncmd2\u003d\u003d0.8.9\ncolorama\u003d\u003d0.4.3\nconfigparser\u003d\u003d4.0.2\ncontextlib2\u003d\u003d0.6.0.post1\ncoverage\u003d\u003d5.0.4\ncryptography\u003d\u003d2.9\ndebtcollector\u003d\u003d1.22.0\ndecorator\u003d\u003d4.4.2\ndistlib\u003d\u003d0.3.6\ndnspython\u003d\u003d1.16.0\ndocutils\u003d\u003d0.15.2\ndogpile.cache\u003d\u003d0.9.2\nenum-compat\u003d\u003d0.0.3\nenum34\u003d\u003d1.1.10\neventlet\u003d\u003d0.25.2\nextras\u003d\u003d1.0.0\nfilelock\u003d\u003d3.2.1\nfixtures\u003d\u003d3.0.0\nflake8\u003d\u003d3.9.2\nfuncsigs\u003d\u003d1.0.2\nfunctools32\u003d\u003d3.2.3.post2\nfuture\u003d\u003d0.18.2\nfutures\u003d\u003d3.4.0\ngitdb2\u003d\u003d2.0.6\nGitPython\u003d\u003d2.1.11\ngreenlet\u003d\u003d0.4.15\nhacking\u003d\u003d2.0.0\nidna\u003d\u003d2.9\nimportlib-metadata\u003d\u003d2.1.3\nimportlib-resources\u003d\u003d3.3.1\nipaddress\u003d\u003d1.0.23\niso8601\u003d\u003d0.1.12\nJinja2\u003d\u003d2.11.3\njmespath\u003d\u003d0.10.0\njsonpatch\u003d\u003d1.32\njsonpointer\u003d\u003d2.3\nkeystoneauth1\u003d\u003d4.0.0\nkeystonemiddleware\u003d\u003d9.0.0\nlinecache2\u003d\u003d1.0.0\nlxml\u003d\u003d4.5.0\nMarkupSafe\u003d\u003d1.1.1\nmccabe\u003d\u003d0.6.1\nmercurial\u003d\u003d5.3.1\nmock\u003d\u003d3.0.5\nmonotonic\u003d\u003d1.5\nmore-itertools\u003d\u003d5.0.0\nmsgpack\u003d\u003d0.6.2\nmunch\u003d\u003d2.5.0\nndg-httpsclient\u003d\u003d0.5.1\nnetaddr\u003d\u003d0.7.19\nnetifaces\u003d\u003d0.10.9\nnvratelimit @ file:///vagrant/nvratelimit\nopenstacksdk\u003d\u003d0.45.0\nos-service-types\u003d\u003d1.7.0\noslo.cache\u003d\u003d1.38.1\noslo.config\u003d\u003d7.0.0\noslo.context\u003d\u003d2.23.1\noslo.i18n\u003d\u003d3.25.1\noslo.log\u003d\u003d3.45.2\noslo.serialization\u003d\u003d2.29.2\noslo.utils\u003d\u003d3.42.1\npackaging\u003d\u003d20.9\nPasteDeploy\u003d\u003d2.1.1\npathlib2\u003d\u003d2.3.6\npbr\u003d\u003d5.4.5\nplatformdirs\u003d\u003d2.0.2\npluggy\u003d\u003d0.13.1\nprettytable\u003d\u003d0.7.2\npy\u003d\u003d1.11.0\npyasn1\u003d\u003d0.4.8\npycadf\u003d\u003d2.10.0\npycodestyle\u003d\u003d2.7.0\npycparser\u003d\u003d2.21\n-e git+https://github.com/openstack/pyeclib@4ce04d1d5c13d0845d0166b0552375c62e115cbe#egg\u003dpyeclib\npyflakes\u003d\u003d2.3.1\npyinotify\u003d\u003d0.9.6\nPyKMIP\u003d\u003d0.10.0\npyOpenSSL\u003d\u003d21.0.0\npyparsing\u003d\u003d2.4.7\npyperclip\u003d\u003d1.8.2\npytest\u003d\u003d4.6.11\npytest-cov\u003d\u003d2.12.1\npython-dateutil\u003d\u003d2.8.2\npython-keystoneclient\u003d\u003d3.22.0\npython-magic\u003d\u003d0.4.27\npython-mimeparse\u003d\u003d1.6.0\npython-subunit\u003d\u003d1.4.0\n-e git+https://github.com/openstack/python-swiftclient@4989d94663b59eac34b7cd5dfaa7e673fc73e862#egg\u003dpython_swiftclient\npytz\u003d\u003d2022.7.1\nPyYAML\u003d\u003d5.3.1\nrequests\u003d\u003d2.23.0\nrequests-mock\u003d\u003d1.7.0\nrequestsexceptions\u003d\u003d1.4.0\nresolvelib\u003d\u003d0.5.4\nrfc3986\u003d\u003d1.4.0\nrsa\u003d\u003d4.5\ns3cmd\u003d\u003d2.3.0\ns3transfer\u003d\u003d0.3.7\nscandir\u003d\u003d1.10.0\nsingledispatch\u003d\u003d3.7.0\nsix\u003d\u003d1.14.0\nsmmap\u003d\u003d3.0.5\nsmmap2\u003d\u003d3.0.1\nSQLAlchemy\u003d\u003d1.4.46\nstestr\u003d\u003d2.6.0\nstevedore\u003d\u003d1.32.0\nsubprocess32\u003d\u003d3.5.4\n-e git+git@github.com:openstack/swift.git@5418d3d2e760a0505e0a16bace809b2de02dd76d#egg\u003dswift\n-e git+https://github.com/openstack/swift-bench@7d3192cdee334c7b38a806a699d76611ee8567ce#egg\u003dswift_bench\ntesttools\u003d\u003d2.4.0\ntoml\u003d\u003d0.10.2\ntox\u003d\u003d3.28.0\ntraceback2\u003d\u003d1.4.0\ntyping\u003d\u003d3.10.0.0\nunicodecsv\u003d\u003d0.14.1\nunittest2\u003d\u003d1.1.0\nurllib3\u003d\u003d1.25.8\nvirtualenv\u003d\u003d20.15.1\nvoluptuous\u003d\u003d0.11.7\nwcwidth\u003d\u003d0.2.6\nWebOb\u003d\u003d1.8.7\nwrapt\u003d\u003d1.12.1\nxattr\u003d\u003d0.9.7\nzipp\u003d\u003d1.2.0","commit_id":"5418d3d2e760a0505e0a16bace809b2de02dd76d"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"63713a143ea85e83fc5f501b9a40b64e0de7a395","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"cd1d93c0_44e9c46c","updated":"2023-04-26 11:03:16.000000000","message":"fails with py2.7 OMM:\n```\n(swift-2.7) (acoles) ~/0dev/openstack/swift{p-ec-frag-iter} % for venv in swift-2.7 swift-3.7.16 swift-3.8.15 swift-3.9.16; do echo $venv; pyenv activate $venv; pip freeze|grep eventlet;  pytest ./test/unit/proxy/controllers/test_obj.py::TestECFragGetter::test_iter_bytes_from_response_part_slow_read; done\nswift-2.7\npyenv-virtualenv: version `swift-2.7\u0027 is already activated\nDEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.\neventlet\u003d\u003d0.33.3\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d test session starts \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nplatform darwin -- Python 2.7.18, pytest-4.6.11, py-1.11.0, pluggy-0.13.1 -- /Users/acoles/.pyenv/versions/2.7.18/envs/swift-2.7/bin/python\ncachedir: .pytest_cache\nrootdir: /Users/acoles/0dev/openstack/swift, inifile: tox.ini\nplugins: cov-2.12.1, requests-mock-1.10.0\ncollected 1 item\n\ntest/unit/proxy/controllers/test_obj.py::TestECFragGetter::test_iter_bytes_from_response_part_slow_read FAILED                   [100%]\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d FAILURES \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n____________________________________ TestECFragGetter.test_iter_bytes_from_response_part_slow_read _____________________________________\n\nself \u003d \u003ctest.unit.proxy.controllers.test_obj.TestECFragGetter testMethod\u003dtest_iter_bytes_from_response_part_slow_read\u003e\n\n    def test_iter_bytes_from_response_part_slow_read(self):\n        # Be patient: OMM this takes ~ 85 secs!!\n        class SlowFileLikeIter(FileLikeIter):\n            def read(self, *args, **kwargs):\n                sleep(0.1)\n                return super(SlowFileLikeIter, self).read(*args, **kwargs)\n\n        part \u003d SlowFileLikeIter([b\u0027some\u0027, b\u0027thing\u0027])\n        self.app.recoverable_node_timeout \u003d 0.05\n        self.app.client_timeout \u003d 0.8\n        it \u003d self.getter.iter_bytes_from_response_part(part, nbytes\u003d9)\n        start \u003d time.time()\n        with mock.patch.object(self.getter, \u0027_dig_for_source_and_node\u0027,\n                               return_value\u003d(None, None)):\n            with self.assertRaises(ChunkReadTimeout) as cm:\n                b\u0027\u0027.join(it)\n        self.assertEqual(\u00270.05 seconds\u0027, str(cm.exception))\n        # why does it take so long for the Timeout to fire???\n\u003e       self.assertLess(time.time() - start, 10)\nE       AssertionError: 85.37377095222473 not less than 10\n\ntest/unit/proxy/controllers/test_obj.py:6736: AssertionError\n--------------------------------------------------------- Captured stdout call ---------------------------------------------------------\nproxy-server DEBUG: Loaded override config for (default): ProxyOverrideOptions({}, {\u0027sorting_method\u0027: \u0027shuffle\u0027, \u0027read_affinity\u0027: \u0027\u0027, \u0027write_affinity\u0027: \u0027\u0027, \u0027write_affinity_node_count\u0027: \u00272 * replicas\u0027, \u0027write_affinity_handoff_delete_count\u0027: None, \u0027rebalance_missing_suppression_count\u0027: 1, \u0027concurrent_gets\u0027: False, \u0027concurrency_timeout\u0027: 1.0, \u0027concurrent_ec_extra_requests\u0027: 0}, app) (txn: txn1) (client_ip: 127.0.0.2)\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d warnings summary \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n/Users/acoles/.pyenv/versions/2.7.18/envs/swift-2.7/lib/python2.7/site-packages/eventlet/__init__.py:8\n  /Users/acoles/.pyenv/versions/2.7.18/envs/swift-2.7/lib/python2.7/site-packages/eventlet/__init__.py:8: DeprecationWarning: Support for your Python version is deprecated and will be removed in the future\n    DeprecationWarning,\n\n-- Docs: https://docs.pytest.org/en/latest/warnings.html\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d 1 failed, 1 warnings in 86.26 seconds \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nswift-3.7.16\npyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT\u003d1\u0027 to simulate the behavior.\neventlet\u003d\u003d0.33.3\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d test session starts \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nplatform darwin -- Python 3.7.16, pytest-7.3.1, pluggy-1.0.0 -- /Users/acoles/.pyenv/versions/3.7.16/envs/swift-3.7.16/bin/python3.7\ncachedir: .pytest_cache\nrootdir: /Users/acoles/0dev/openstack/swift\nconfigfile: tox.ini\nplugins: requests-mock-1.10.0, cov-4.0.0\ncollected 1 item\n\ntest/unit/proxy/controllers/test_obj.py::TestECFragGetter::test_iter_bytes_from_response_part_slow_read PASSED                   [100%]\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d 1 passed in 0.27s \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nswift-3.8.15\npyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT\u003d1\u0027 to simulate the behavior.\neventlet\u003d\u003d0.33.1\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d test session starts \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nplatform darwin -- Python 3.8.15, pytest-7.2.0, pluggy-1.0.0 -- /Users/acoles/.pyenv/versions/3.8.15/envs/swift-3.8.15/bin/python3.8\ncachedir: .pytest_cache\nrootdir: /Users/acoles/0dev/openstack/swift, configfile: tox.ini\nplugins: requests-mock-1.9.3, cov-4.0.0\ncollected 1 item\n\ntest/unit/proxy/controllers/test_obj.py::TestECFragGetter::test_iter_bytes_from_response_part_slow_read PASSED                   [100%]\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d 1 passed in 0.27s \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nswift-3.9.16\npyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT\u003d1\u0027 to simulate the behavior.\neventlet\u003d\u003d0.33.3\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d test session starts \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nplatform darwin -- Python 3.9.16, pytest-7.3.1, pluggy-1.0.0 -- /Users/acoles/.pyenv/versions/3.9.16/envs/swift-3.9.16/bin/python3.9\ncachedir: .pytest_cache\nrootdir: /Users/acoles/0dev/openstack/swift\nconfigfile: tox.ini\nplugins: requests-mock-1.10.0, cov-4.0.0\ncollected 1 item\n\ntest/unit/proxy/controllers/test_obj.py::TestECFragGetter::test_iter_bytes_from_response_part_slow_read PASSED                   [100%]\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d 1 passed in 0.27s \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n```","commit_id":"5418d3d2e760a0505e0a16bace809b2de02dd76d"}],"test/unit/proxy/controllers/test_obj.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8014212f7aaafb6ca6eb0126d2b2c4a3921ada25","unresolved":true,"context_lines":[{"line_number":6733,"context_line":"                b\u0027\u0027.join(it)"},{"line_number":6734,"context_line":"        self.assertEqual(\u00270.05 seconds\u0027, str(cm.exception))"},{"line_number":6735,"context_line":"        # why does it take so long for the Timeout to fire???"},{"line_number":6736,"context_line":"        self.assertLess(time.time() - start, 10)"},{"line_number":6737,"context_line":""},{"line_number":6738,"context_line":"    def test_iter_bytes_from_response_part_null_chunk_size(self):"},{"line_number":6739,"context_line":"        # we don\u0027t expect a policy to have fragment_size None or zero but"}],"source_content_type":"text/x-python","patch_set":1,"id":"a59274f2_2e541f62","line":6736,"updated":"2023-04-25 21:18:36.000000000","message":"it\u0027s faster on my machine (py3.10)\n\n\tvagrant@saio:~$ time pytest swift/test/unit/proxy/controllers/test_obj.py::TestECFragGetter\n\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d test session starts \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\tplatform linux -- Python 3.10.6, pytest-7.3.1, pluggy-1.0.0 -- /usr/bin/python\n\tcachedir: .pytest_cache\n\trootdir: /home/vagrant/swift\n\tconfigfile: tox.ini\n\tplugins: cov-4.0.0, requests-mock-1.10.0\n\tcollected 6 items                                                                                                                                                                                         \n\n\tswift/test/unit/proxy/controllers/test_obj.py::TestECFragGetter::test_iter_bytes_from_response_part PASSED                                                                                          [ 16%]\n\tswift/test/unit/proxy/controllers/test_obj.py::TestECFragGetter::test_iter_bytes_from_response_part_insufficient_bytes PASSED                                                                       [ 33%]\n\tswift/test/unit/proxy/controllers/test_obj.py::TestECFragGetter::test_iter_bytes_from_response_part_null_chunk_size PASSED                                                                          [ 50%]\n\tswift/test/unit/proxy/controllers/test_obj.py::TestECFragGetter::test_iter_bytes_from_response_part_read_timeout PASSED                                                                             [ 66%]\n\tswift/test/unit/proxy/controllers/test_obj.py::TestECFragGetter::test_iter_bytes_from_response_part_slow_read PASSED                                                                                [ 83%]\n\tswift/test/unit/proxy/controllers/test_obj.py::TestECFragGetter::test_iter_bytes_from_response_part_small_chunk_size PASSED                                                                         [100%]\n\n\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d warnings summary \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\t../../usr/local/lib/python3.10/dist-packages/eventlet/support/greenlets.py:1\n\t  /usr/local/lib/python3.10/dist-packages/eventlet/support/greenlets.py:1: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives\n\t    import distutils.version\n\n\t-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d 6 passed, 1 warning in 0.76s \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n\treal\t0m1.408s\n\tuser\t0m0.540s\n\tsys\t0m0.603s","commit_id":"de4bce27fbbdcd4afe5e8aa123c3b03ffe6a005a"}]}
