)]}'
{"id":"openstack%2Fpython-swiftclient~360298","triplet_id":"openstack%2Fpython-swiftclient~master~I915bb910db644c58d485ad89720081fe771f41b8","project":"openstack/python-swiftclient","branch":"master","topic":"requests-mock-1","hashtags":[],"change_id":"I915bb910db644c58d485ad89720081fe771f41b8","subject":"Use requests_mock and testtools","status":"ABANDONED","created":"2016-08-25 07:31:01.000000000","updated":"2017-10-22 22:44:04.000000000","total_comment_count":11,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"794bf762525556eac875285ba42c240d422ee5f6","_number":360298,"virtual_id_number":360298,"owner":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},{"value":-1,"date":"2017-06-13 22:15:05.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"permitted_voting_range":{"min":-1,"max":0},"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2016-10-07 01:06:34.000000000","updated_by":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"reviewer":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"state":"REVIEWER"},{"updated":"2016-10-11 02:15:38.000000000","updated_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"reviewer":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"state":"REVIEWER"},{"updated":"2016-10-11 22:06:53.000000000","updated_by":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"reviewer":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"state":"REVIEWER"},{"updated":"2017-06-13 22:15:05.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"ea09676c963161195779a69595586c0548d0e50b","author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"date":"2016-08-25 07:31:01.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"3449720b57f194a8cf3c018285ac8f85910bca0b","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-08-25 08:43:23.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-python-swiftclient-docs-ubuntu-xenial http://docs-draft.openstack.org/98/360298/1/check/gate-python-swiftclient-docs-ubuntu-xenial/5ba2fd1//doc/build/html/ : SUCCESS in 2m 37s\n- gate-python-swiftclient-pep8-ubuntu-xenial http://logs.openstack.org/98/360298/1/check/gate-python-swiftclient-pep8-ubuntu-xenial/ba1c8a3/ : SUCCESS in 1m 21s\n- gate-python-swiftclient-python27-ubuntu-xenial http://logs.openstack.org/98/360298/1/check/gate-python-swiftclient-python27-ubuntu-xenial/b73dfee/ : FAILURE in 1m 34s\n- gate-python-swiftclient-python34 http://logs.openstack.org/98/360298/1/check/gate-python-swiftclient-python34/e770985/ : FAILURE in 1m 38s\n- gate-python-swiftclient-python35 http://logs.openstack.org/98/360298/1/check/gate-python-swiftclient-python35/85f85df/ : FAILURE in 2m 53s\n- gate-python-swiftclient-requirements http://logs.openstack.org/98/360298/1/check/gate-python-swiftclient-requirements/da2dac2/ : SUCCESS in 1m 48s\n- gate-python-swiftclient-pypy http://logs.openstack.org/98/360298/1/check/gate-python-swiftclient-pypy/43dddf4/ : FAILURE in 2m 23s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/98/360298/1/check/gate-tempest-dsvm-neutron-src-python-swiftclient/03d99bc/ : SUCCESS in 1h 08m 38s\n- gate-swift-dsvm-functional http://logs.openstack.org/98/360298/1/check/gate-swift-dsvm-functional/8fa0859/ : SUCCESS in 25m 17s\n- gate-swift-dsvm-functional-identity-v3-only-nv http://logs.openstack.org/98/360298/1/check/gate-swift-dsvm-functional-identity-v3-only-nv/d917c09/ : SUCCESS in 37m 44s (non-voting)\n- gate-swiftclient-dsvm-functional http://logs.openstack.org/98/360298/1/check/gate-swiftclient-dsvm-functional/6672396/ : SUCCESS in 23m 28s\n- gate-swiftclient-dsvm-functional-identity-v3-only-nv http://logs.openstack.org/98/360298/1/check/gate-swiftclient-dsvm-functional-identity-v3-only-nv/c062957/ : SUCCESS in 22m 21s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"16e554c14ddc8ba85ea0183850178b08446460e3","author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"date":"2016-09-26 06:38:22.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"e6cc58d97a55c01adbc7c2ba5c81a072ff79feb7","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-09-26 07:38:29.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-python-swiftclient-docs-ubuntu-xenial http://docs-draft.openstack.org/98/360298/2/check/gate-python-swiftclient-docs-ubuntu-xenial/7c3f92a//doc/build/html/ : SUCCESS in 1m 03s\n- gate-python-swiftclient-pep8-ubuntu-xenial http://logs.openstack.org/98/360298/2/check/gate-python-swiftclient-pep8-ubuntu-xenial/82bf9d7/ : SUCCESS in 2m 09s\n- gate-python-swiftclient-python27-ubuntu-xenial http://logs.openstack.org/98/360298/2/check/gate-python-swiftclient-python27-ubuntu-xenial/ddcf943/ : SUCCESS in 1m 46s\n- gate-python-swiftclient-python34 http://logs.openstack.org/98/360298/2/check/gate-python-swiftclient-python34/3bc3e30/ : FAILURE in 2m 16s\n- gate-python-swiftclient-python35 http://logs.openstack.org/98/360298/2/check/gate-python-swiftclient-python35/12f0d89/ : FAILURE in 3m 03s\n- gate-python-swiftclient-requirements http://logs.openstack.org/98/360298/2/check/gate-python-swiftclient-requirements/b24a5c8/ : SUCCESS in 56s\n- gate-python-swiftclient-pypy http://logs.openstack.org/98/360298/2/check/gate-python-swiftclient-pypy/31a2f86/ : SUCCESS in 2m 12s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/98/360298/2/check/gate-tempest-dsvm-neutron-src-python-swiftclient/dc4576f/ : SUCCESS in 59m 55s\n- gate-swift-dsvm-functional-ubuntu-xenial http://logs.openstack.org/98/360298/2/check/gate-swift-dsvm-functional-ubuntu-xenial/e84d4aa/ : SUCCESS in 24m 18s\n- gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/98/360298/2/check/gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/63d05fd/ : SUCCESS in 23m 45s (non-voting)\n- gate-swiftclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/98/360298/2/check/gate-swiftclient-dsvm-functional-ubuntu-xenial/356ebff/ : SUCCESS in 19m 33s\n- gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/98/360298/2/check/gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/4edfc4f/ : SUCCESS in 16m 39s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"075e13fb77f5bbfd02403b2cbe20436fa46eb2dd","author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"date":"2016-09-27 01:44:06.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"0c8a01b8a87f1b628a56b896687b254357527574","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-09-27 02:43:14.000000000","message":"Patch Set 3: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-python-swiftclient-docs-ubuntu-xenial http://docs-draft.openstack.org/98/360298/3/check/gate-python-swiftclient-docs-ubuntu-xenial/413c6ef//doc/build/html/ : SUCCESS in 1m 42s\n- gate-python-swiftclient-pep8-ubuntu-xenial http://logs.openstack.org/98/360298/3/check/gate-python-swiftclient-pep8-ubuntu-xenial/cbb6992/ : FAILURE in 1m 51s\n- gate-python-swiftclient-python27-ubuntu-xenial http://logs.openstack.org/98/360298/3/check/gate-python-swiftclient-python27-ubuntu-xenial/e9ffd74/ : SUCCESS in 1m 17s\n- gate-python-swiftclient-python34 http://logs.openstack.org/98/360298/3/check/gate-python-swiftclient-python34/9c8c883/ : SUCCESS in 2m 25s\n- gate-python-swiftclient-python35 http://logs.openstack.org/98/360298/3/check/gate-python-swiftclient-python35/56526e7/ : SUCCESS in 1m 58s\n- gate-python-swiftclient-requirements http://logs.openstack.org/98/360298/3/check/gate-python-swiftclient-requirements/dd2d1c9/ : SUCCESS in 1m 00s\n- gate-python-swiftclient-pypy http://logs.openstack.org/98/360298/3/check/gate-python-swiftclient-pypy/025b9ff/ : SUCCESS in 2m 12s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/98/360298/3/check/gate-tempest-dsvm-neutron-src-python-swiftclient/91d379b/ : SUCCESS in 57m 29s\n- gate-swift-dsvm-functional-ubuntu-xenial http://logs.openstack.org/98/360298/3/check/gate-swift-dsvm-functional-ubuntu-xenial/2370f4d/ : SUCCESS in 15m 43s\n- gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/98/360298/3/check/gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/42a8746/ : SUCCESS in 17m 03s (non-voting)\n- gate-swiftclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/98/360298/3/check/gate-swiftclient-dsvm-functional-ubuntu-xenial/af4f1c9/ : SUCCESS in 12m 05s\n- gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/98/360298/3/check/gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/c62b596/ : SUCCESS in 11m 55s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"8ecb0dfd21e72fced09ec5dee58cd6103eef9099","author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"date":"2016-10-05 00:22:50.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"e05e797b2c1f4553a144667031f89155b591c8be","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-10-05 01:37:07.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-docs-ubuntu-xenial http://docs-draft.openstack.org/98/360298/4/check/gate-python-swiftclient-docs-ubuntu-xenial/ff9b466//doc/build/html/ : SUCCESS in 1m 02s\n- gate-python-swiftclient-pep8-ubuntu-xenial http://logs.openstack.org/98/360298/4/check/gate-python-swiftclient-pep8-ubuntu-xenial/8bc92b1/ : SUCCESS in 1m 07s\n- gate-python-swiftclient-python27-ubuntu-xenial http://logs.openstack.org/98/360298/4/check/gate-python-swiftclient-python27-ubuntu-xenial/1364cc0/ : SUCCESS in 1m 07s\n- gate-python-swiftclient-python34 http://logs.openstack.org/98/360298/4/check/gate-python-swiftclient-python34/09286a5/ : SUCCESS in 1m 43s\n- gate-python-swiftclient-python35 http://logs.openstack.org/98/360298/4/check/gate-python-swiftclient-python35/ad14496/ : SUCCESS in 1m 49s\n- gate-python-swiftclient-requirements http://logs.openstack.org/98/360298/4/check/gate-python-swiftclient-requirements/a36db3b/ : SUCCESS in 1m 00s\n- gate-python-swiftclient-pypy http://logs.openstack.org/98/360298/4/check/gate-python-swiftclient-pypy/7815f82/ : SUCCESS in 1m 54s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/98/360298/4/check/gate-tempest-dsvm-neutron-src-python-swiftclient/0f069de/ : SUCCESS in 1h 12m 50s\n- gate-swift-dsvm-functional-ubuntu-xenial http://logs.openstack.org/98/360298/4/check/gate-swift-dsvm-functional-ubuntu-xenial/b734a73/ : SUCCESS in 17m 21s\n- gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/98/360298/4/check/gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/ddbdb80/ : SUCCESS in 16m 26s (non-voting)\n- gate-swiftclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/98/360298/4/check/gate-swiftclient-dsvm-functional-ubuntu-xenial/42d5b55/ : SUCCESS in 13m 22s\n- gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/98/360298/4/check/gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/516bf9f/ : SUCCESS in 13m 13s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"36ac6df8f1de5334e77912473a6eafaf3cfc376f","author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"date":"2016-10-10 23:28:37.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"cb8cd0c9ff409c95b4fa60c6aad62fca346b3573","author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"date":"2016-10-10 23:45:00.000000000","message":"Patch Set 5:\n\npatch 2 just cuts down on the number of tests fixes included in this first patch. hopefully it means it\u0027s easier to review and we can do the remaining tests in subsequent patches.","accounts_in_message":[],"_revision_number":5},{"id":"d1daa9d6235c5fd1de59a98de92f4329e3668062","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-10-10 23:59:38.000000000","message":"Patch Set 5: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-python-swiftclient-docs-ubuntu-xenial http://docs-draft.openstack.org/98/360298/5/check/gate-python-swiftclient-docs-ubuntu-xenial/00a43ac//doc/build/html/ : SUCCESS in 1m 38s\n- gate-python-swiftclient-pep8-ubuntu-xenial http://logs.openstack.org/98/360298/5/check/gate-python-swiftclient-pep8-ubuntu-xenial/89e57ef/ : SUCCESS in 1m 38s\n- gate-python-swiftclient-python27-ubuntu-xenial http://logs.openstack.org/98/360298/5/check/gate-python-swiftclient-python27-ubuntu-xenial/10947e8/ : SUCCESS in 1m 48s\n- gate-python-swiftclient-python34 http://logs.openstack.org/98/360298/5/check/gate-python-swiftclient-python34/adbe282/ : SUCCESS in 1m 39s\n- gate-python-swiftclient-python35 http://logs.openstack.org/98/360298/5/check/gate-python-swiftclient-python35/c3eaa84/ : SUCCESS in 3m 05s\n- gate-python-swiftclient-requirements http://logs.openstack.org/98/360298/5/check/gate-python-swiftclient-requirements/eb5f3c3/ : SUCCESS in 1m 27s\n- gate-python-swiftclient-pypy http://logs.openstack.org/98/360298/5/check/gate-python-swiftclient-pypy/6c463c3/ : SUCCESS in 3m 22s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/98/360298/5/check/gate-tempest-dsvm-neutron-src-python-swiftclient/8a39bd6/ : FAILURE in 8m 46s\n- gate-swift-dsvm-functional-ubuntu-xenial http://logs.openstack.org/98/360298/5/check/gate-swift-dsvm-functional-ubuntu-xenial/9304385/ : SUCCESS in 29m 04s\n- gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/98/360298/5/check/gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/6d28413/ : SUCCESS in 30m 29s (non-voting)\n- gate-swiftclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/98/360298/5/check/gate-swiftclient-dsvm-functional-ubuntu-xenial/e5433d8/ : SUCCESS in 27m 16s\n- gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/98/360298/5/check/gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/226a923/ : SUCCESS in 24m 48s (non-voting)","accounts_in_message":[],"_revision_number":5},{"id":"9629abe143edd0decd10cdac2c2b2a8a81b008cd","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2016-10-11 03:58:48.000000000","message":"Patch Set 4:\n\n(2 comments)\n\nIt\u0027s difficult for me to evaluate this change - I\u0027ll abstain for now; but I\u0027m not sure that helps much if others are having a similar struggle.\n\nI can tell you put a lot of work into it - thank you for your effort.  If it was *just* a test cleanup I\u0027d be infinitely thankful - but the introduction of new dependency requires a benifit/cost evaluation.  I need some assistance to define the scope and goals of this change in order to evaluate it objectively.\n\nWhile certainly not required, It would help *a lot* if you could say *why* you\u0027re making this change?  \"I was looking at tests while reviewing patch XYZ and couldn\u0027t make heads or tails of the tests there; so I tried to clean them up like something more familiar to me - what do you think!?\" vs \"I\u0027m was working on a bug/feature xyz in python-swiftclient and found the test order coupling problematic; e.g. if you run `nosetests abc.py xyz.py` it works but if you run `nosetests xyz.py abc.py` it fails.\"\n\nI see requests-mock is on launchpad and hosted in bzr [1] (not my favorite place for dependencies if I\u0027m entirely honest - but it turned out I *did* have bzr installed on this machine!).  Also FWIW the author of requests-mock on PyPI is listed as Jamie Lennox [2] - not sure if there\u0027s a relation to the author of this change; regardless I wouldn\u0027t presume bias.\n\nThe commit message points out \"the other OpenStack clients typically use requests-mock ... so you can ensure the client is doing the right thing\".  So I\u0027m trying to understand how other OpenStack projects are using requests-mock and how it\u0027s helping them.  When I go looking into requests-mock the first thing I see a recent bug that caused the global requirements update and all that associated churn [3].  This unrelated coupling to external \"stuff\" is normally the reason we try to keep our dependencies *lean and mean*.\n\nBut that may be a one-off - *most* of the bumps in global requirements seem to be adding new features - I wonder how often those new features get adopted by the projects that require this dependency?\n\nWhen I go to understand how other projects are making use of this library here\u0027s what I see:\n\nAdded to global requirements -\u003e https://review.openstack.org/#/c/104067\nAdded to novaclient -\u003e https://review.openstack.org/#/c/112179/\nAdded to cinderclient -\u003e https://review.openstack.org/#/c/106665/\nAdded to keystoneclient -\u003e https://review.openstack.org/#/c/106659/\n\nMaybe I\u0027ll ask for some feedback on the ML how using requests_mock is working for other folks.  Are any other non-openstack projects consuming it to your knowledge?  It looks like it might be an OpenStack managed project -\u003e https://review.openstack.org/#/c/364672/\n\nI can\u0027t really comment on this change itself yet - the dependency is ~1K sloc and I haven\u0027t finished reading it - it looks pretty good so far tho!  Any additional context you could provide would be helpful!\n\n1. https://code.launchpad.net/requests-mock\n2. https://pypi.python.org/pypi/requests-mock\n3. https://bugs.launchpad.net/requests-mock/+bug/1616690","accounts_in_message":[],"_revision_number":4},{"id":"03711bba8976f6eab773915f6a236df2e6043e07","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2016-10-11 22:06:53.000000000","message":"Patch Set 5: Code-Review+1\n\n(4 comments)\n\nI think you updated the commit message on patch set 5 even before I posted up my rant on patch set 4 - I think this new message is a lot more informative and useful - I really appreciate that you took it on yourself to clean that up.\n\nHistorically Swift used to have a lot of manual patching with ad-hoc context managers or even try-finally and I\u0027ve been pretty thankful over the years to adopt and outsource some of that to mock as an external dependency even before it was swallowed into stdlib.\n\nI\u0027m less sure I\u0027ll be as satisfied with something that has the breadth of testtools ecosystem or something as specific as requests-mock - but ... after spending some time with it my gut says it might be worth it anyway?\n\nI can definitely say I will be able to educate myself well enough to maintain tests that use this infrastructure.  The documentation is decent and the libraries aren\u0027t any worse than ... idk; working with some monstrosity like django or something?\n\nPersonally; I\u0027m less confident about adopting oslotest.base.TestCase - and would prefer to see that removed in this change for now.","accounts_in_message":[],"_revision_number":5},{"id":"dd710e68bc5c67737ebf8edf3150d1ad45c20c40","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2016-10-11 23:03:44.000000000","message":"Patch Set 5:\n\nrecheck no bug\n\n#openstack-infra says it was an issue with the pypi mirrors in the osic cloud yesterday","accounts_in_message":[],"_revision_number":5},{"id":"f064a4dcafa0f4e3d2e7f8c42119463fec388388","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-10-11 23:46:01.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-docs-ubuntu-xenial http://docs-draft.openstack.org/98/360298/5/check/gate-python-swiftclient-docs-ubuntu-xenial/ada5db3//doc/build/html/ : SUCCESS in 1m 13s\n- gate-python-swiftclient-pep8-ubuntu-xenial http://logs.openstack.org/98/360298/5/check/gate-python-swiftclient-pep8-ubuntu-xenial/ec54ac6/ : SUCCESS in 1m 13s\n- gate-python-swiftclient-python27-ubuntu-xenial http://logs.openstack.org/98/360298/5/check/gate-python-swiftclient-python27-ubuntu-xenial/54a9951/ : SUCCESS in 1m 13s\n- gate-python-swiftclient-python34 http://logs.openstack.org/98/360298/5/check/gate-python-swiftclient-python34/7f33000/ : SUCCESS in 1m 38s\n- gate-python-swiftclient-python35 http://logs.openstack.org/98/360298/5/check/gate-python-swiftclient-python35/3036195/ : SUCCESS in 1m 54s\n- gate-python-swiftclient-requirements http://logs.openstack.org/98/360298/5/check/gate-python-swiftclient-requirements/66f01e9/ : SUCCESS in 1m 20s\n- gate-python-swiftclient-pypy http://logs.openstack.org/98/360298/5/check/gate-python-swiftclient-pypy/0b5e328/ : SUCCESS in 2m 23s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/98/360298/5/check/gate-tempest-dsvm-neutron-src-python-swiftclient/f53b1cc/ : SUCCESS in 41m 56s\n- gate-swift-dsvm-functional-ubuntu-xenial http://logs.openstack.org/98/360298/5/check/gate-swift-dsvm-functional-ubuntu-xenial/4162635/ : SUCCESS in 16m 22s\n- gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/98/360298/5/check/gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/ac4d919/ : SUCCESS in 16m 13s (non-voting)\n- gate-swiftclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/98/360298/5/check/gate-swiftclient-dsvm-functional-ubuntu-xenial/83713c4/ : SUCCESS in 12m 56s\n- gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/98/360298/5/check/gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/01ff575/ : SUCCESS in 12m 41s (non-voting)","accounts_in_message":[],"_revision_number":5},{"id":"025b96eb607d37cc74fd0d4238692fd503fd0457","author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"date":"2016-10-12 00:28:44.000000000","message":"Patch Set 5:\n\n(4 comments)\n\nWow, Clay, Thanks for the detailed look. I\u0027ll try and answer everything but gerrit is not a great response platform. I\u0027ll also be in Barcelona if you\u0027re around we can discuss it more.\n\nThe why of this change is because I\u0027ve been experimenting with deeper integration with keystoneauth, and while I\u0027m not ready to push anything a problem I\u0027ve had so far is all the mocking around authentication so I\u0027m hoping to slowly decouple some of these dependencies. There is no direct path from this patch to future changes I was purely paving the way with the dependency addition here.\n\nI don\u0027t have directly the test i was adding that failed the test ordering test however my problem was trying to execute a test and finding the http_connection function wasn\u0027t what i expected it to be. In https://git.openstack.org/cgit/openstack/python-swiftclient/tree/tests/unit/test_swiftclient.py?h\u003d3.1.0 (taking latest tag for stability) on line 250 and many others we replace (not mock) the get_connection function which is not cleaned up and will then skew any other test not also patching the function. Eg directly above on L231 http_connection is called but then the _request function is mocked out. An out of order runner now has a mocked function on a mocked call - and things are getting fragile.\n\nEeek to bzr! Looks like launchpad mirrors that. Typically I use: http://git.openstack.org/cgit/openstack/requests-mock and the standard openstack tooling. This is purely because I like the tooling rather than it is an openstack specific project, I actually think being in the openstack namespace scares outsiders away.\n\nRegarding adoption, you\u0027re absolutely right in that it\u0027s largely been me. However I think this is because 1) I\u0027ve been pushing the keystoneauth changes which is the first significant change to how the client libraries work since they were forked and 2) the clients are a mess, compatibility is hard, and it\u0027s just not worth the effort to change mostly working low level code unless you have an end goal (which i have). I wrote requests-mock initially because I was trying to fix the clients and the other libraries that promised this HTTP level control were terrible.\n\nI\u0027ll spin up a patch that removes oslotest and we can go from there.","accounts_in_message":[],"_revision_number":5},{"id":"5243ee834f3ebf99f384872383e98572332d5231","author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"date":"2016-10-12 01:11:08.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"38653453baf740945b69aa5d9140c2c80c60203f","author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"date":"2016-10-12 01:15:22.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"20a5e881d534cfb03ac5381ef6b4747dcfd85004","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-10-12 02:25:54.000000000","message":"Patch Set 6: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-python-swiftclient-docs-ubuntu-xenial http://docs-draft.openstack.org/98/360298/6/check/gate-python-swiftclient-docs-ubuntu-xenial/be230ef//doc/build/html/ : SUCCESS in 1m 06s\n- gate-python-swiftclient-pep8-ubuntu-xenial http://logs.openstack.org/98/360298/6/check/gate-python-swiftclient-pep8-ubuntu-xenial/fb7d93b/ : SUCCESS in 1m 05s\n- gate-python-swiftclient-python27-ubuntu-xenial http://logs.openstack.org/98/360298/6/check/gate-python-swiftclient-python27-ubuntu-xenial/e88e7a2/ : SUCCESS in 1m 12s\n- gate-python-swiftclient-python34 http://logs.openstack.org/98/360298/6/check/gate-python-swiftclient-python34/97fbcb4/ : FAILURE in 1m 29s\n- gate-python-swiftclient-python35 http://logs.openstack.org/98/360298/6/check/gate-python-swiftclient-python35/b180d53/ : FAILURE in 2m 14s\n- gate-python-swiftclient-requirements http://logs.openstack.org/98/360298/6/check/gate-python-swiftclient-requirements/f31b567/ : SUCCESS in 2m 03s\n- gate-python-swiftclient-pypy http://logs.openstack.org/98/360298/6/check/gate-python-swiftclient-pypy/5322e61/ : SUCCESS in 2m 06s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/98/360298/6/check/gate-tempest-dsvm-neutron-src-python-swiftclient/9c0781f/ : SUCCESS in 1h 10m 21s\n- gate-swift-dsvm-functional-ubuntu-xenial http://logs.openstack.org/98/360298/6/check/gate-swift-dsvm-functional-ubuntu-xenial/6d14942/ : SUCCESS in 16m 31s\n- gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/98/360298/6/check/gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/85ef769/ : SUCCESS in 29m 43s (non-voting)\n- gate-swiftclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/98/360298/6/check/gate-swiftclient-dsvm-functional-ubuntu-xenial/e0667cd/ : SUCCESS in 13m 16s\n- gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/98/360298/6/check/gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/939a2b5/ : SUCCESS in 12m 36s (non-voting)","accounts_in_message":[],"_revision_number":6},{"id":"38f267134e6a00870ad55890e781cac47889c287","author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"date":"2016-10-12 05:43:52.000000000","message":"Uploaded patch set 7.","accounts_in_message":[],"_revision_number":7},{"id":"a52ad629ee63d7fe597c924302131e5c28109c67","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-10-12 06:25:59.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-docs-ubuntu-xenial http://docs-draft.openstack.org/98/360298/7/check/gate-python-swiftclient-docs-ubuntu-xenial/b56f07d//doc/build/html/ : SUCCESS in 1m 51s\n- gate-python-swiftclient-pep8-ubuntu-xenial http://logs.openstack.org/98/360298/7/check/gate-python-swiftclient-pep8-ubuntu-xenial/bd15f89/ : SUCCESS in 1m 05s\n- gate-python-swiftclient-python27-ubuntu-xenial http://logs.openstack.org/98/360298/7/check/gate-python-swiftclient-python27-ubuntu-xenial/91b5368/ : SUCCESS in 1m 44s\n- gate-python-swiftclient-python34 http://logs.openstack.org/98/360298/7/check/gate-python-swiftclient-python34/0cbf5ae/ : SUCCESS in 2m 09s\n- gate-python-swiftclient-python35 http://logs.openstack.org/98/360298/7/check/gate-python-swiftclient-python35/1b36255/ : SUCCESS in 2m 22s\n- gate-python-swiftclient-requirements http://logs.openstack.org/98/360298/7/check/gate-python-swiftclient-requirements/9101387/ : SUCCESS in 54s\n- gate-python-swiftclient-pypy http://logs.openstack.org/98/360298/7/check/gate-python-swiftclient-pypy/c407109/ : SUCCESS in 2m 00s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/98/360298/7/check/gate-tempest-dsvm-neutron-src-python-swiftclient/05041d5/ : SUCCESS in 41m 54s\n- gate-swift-dsvm-functional-ubuntu-xenial http://logs.openstack.org/98/360298/7/check/gate-swift-dsvm-functional-ubuntu-xenial/b39d083/ : SUCCESS in 25m 02s\n- gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/98/360298/7/check/gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/8b70e5d/ : SUCCESS in 16m 02s (non-voting)\n- gate-swiftclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/98/360298/7/check/gate-swiftclient-dsvm-functional-ubuntu-xenial/fb2741e/ : SUCCESS in 12m 45s\n- gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/98/360298/7/check/gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/cff78dc/ : SUCCESS in 12m 45s (non-voting)","accounts_in_message":[],"_revision_number":7},{"id":"c23136bb40ce1b41e888d6912d59c622872326a7","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-06-13 22:15:05.000000000","message":"Patch Set 7: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":7},{"id":"42eedf0cef65275318880c0af6eb9372dc157712","author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"date":"2017-10-22 22:44:04.000000000","message":"Abandoned","accounts_in_message":[],"_revision_number":7}],"current_revision_number":7,"current_revision":"8ded0c6b08cb529e13d2da75adec283a5eb2bf29","revisions":{"ea7669b1aa20bcb3a48f7f0f4c30d29984b899a5":{"kind":"REWORK","_number":1,"created":"2016-08-25 07:31:01.000000000","uploader":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"ref":"refs/changes/98/360298/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/98/360298/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/1"}}},"commit":{"parents":[{"commit":"fd675b2c5a9453efac1fadadb17f40ef5fb908d2","subject":"Use mock patch to handle get_auth_keystone","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/fd675b2c5a9453efac1fadadb17f40ef5fb908d2"}]}],"author":{"name":"Jamie Lennox","email":"jamielennox@gmail.com","date":"2016-08-25 05:15:23.000000000","tz":600},"committer":{"name":"Jamie Lennox","email":"jamielennox@gmail.com","date":"2016-08-25 07:30:43.000000000","tz":600},"subject":"Use requests_mock and oslotest","message":"Use requests_mock and oslotest\n\nThe connection tests have a tendancy to patch the connection function on\nthe client module but not unpatch it. This means all the connection\ntests are unstable depending on ordering.\n\nBeyond that there is so much mocking going on that it is basically\nimpossible to know whether we are testing the client or the mock - in\nsome cases it\u0027s definetly just the mock.\n\nThe other OpenStack clients typically use requests-mock to mock HTTP\nrequests so you can ensure the client is doing the right thing. Convert\na nubmer of tests to use requests-mock. This is not all the tests, but a\nlot of them.\n\nThis also brings in oslotest. We could bring in testtools as a base\nhowever if we standardize on the same testing framework the other\nclients have then there are a lot of fixtures for like tempfiles that\ncan be used to clean up testing a lot.\n\nChange-Id: I915bb910db644c58d485ad89720081fe771f41b8\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/ea7669b1aa20bcb3a48f7f0f4c30d29984b899a5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/ea7669b1aa20bcb3a48f7f0f4c30d29984b899a5"}]},"branch":"refs/heads/master"},"a3318d0c838e009886f9ab69dfcfe29a5279db9d":{"kind":"REWORK","_number":2,"created":"2016-09-26 06:38:22.000000000","uploader":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"ref":"refs/changes/98/360298/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/98/360298/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/2"}}},"commit":{"parents":[{"commit":"a9f21662dfcc8504c536d629d5721771ecc62d23","subject":"remove swiftclient/openstack/common/* in the .coveragerc","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/a9f21662dfcc8504c536d629d5721771ecc62d23"}]}],"author":{"name":"Jamie Lennox","email":"jamielennox@gmail.com","date":"2016-08-25 05:15:23.000000000","tz":600},"committer":{"name":"Jamie Lennox","email":"jamielennox@gmail.com","date":"2016-09-26 06:38:10.000000000","tz":600},"subject":"Use requests_mock and oslotest","message":"Use requests_mock and oslotest\n\nThe connection tests have a tendancy to patch the connection function on\nthe client module but not unpatch it. This means all the connection\ntests are unstable depending on ordering.\n\nBeyond that there is so much mocking going on that it is basically\nimpossible to know whether we are testing the client or the mock - in\nsome cases it\u0027s definetly just the mock.\n\nThe other OpenStack clients typically use requests-mock to mock HTTP\nrequests so you can ensure the client is doing the right thing. Convert\na nubmer of tests to use requests-mock. This is not all the tests, but a\nlot of them.\n\nThis also brings in oslotest. We could bring in testtools as a base\nhowever if we standardize on the same testing framework the other\nclients have then there are a lot of fixtures for like tempfiles that\ncan be used to clean up testing a lot.\n\nChange-Id: I915bb910db644c58d485ad89720081fe771f41b8\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/a3318d0c838e009886f9ab69dfcfe29a5279db9d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/a3318d0c838e009886f9ab69dfcfe29a5279db9d"}]},"branch":"refs/heads/master"},"9f155b1266e195ff242239bfb96efb1f82159ef9":{"kind":"REWORK","_number":3,"created":"2016-09-27 01:44:06.000000000","uploader":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"ref":"refs/changes/98/360298/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/98/360298/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/3"}}},"commit":{"parents":[{"commit":"a9f21662dfcc8504c536d629d5721771ecc62d23","subject":"remove swiftclient/openstack/common/* in the .coveragerc","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/a9f21662dfcc8504c536d629d5721771ecc62d23"}]}],"author":{"name":"Jamie Lennox","email":"jamielennox@gmail.com","date":"2016-08-25 05:15:23.000000000","tz":600},"committer":{"name":"Jamie Lennox","email":"jamielennox@gmail.com","date":"2016-09-27 01:43:42.000000000","tz":600},"subject":"Use requests_mock and oslotest","message":"Use requests_mock and oslotest\n\nThe connection tests have a tendancy to patch the connection function on\nthe client module but not unpatch it. This means all the connection\ntests are unstable depending on ordering.\n\nBeyond that there is so much mocking going on that it is basically\nimpossible to know whether we are testing the client or the mock - in\nsome cases it\u0027s definetly just the mock.\n\nThe other OpenStack clients typically use requests-mock to mock HTTP\nrequests so you can ensure the client is doing the right thing. Convert\na nubmer of tests to use requests-mock. This is not all the tests, but a\nlot of them.\n\nThis also brings in oslotest. We could bring in testtools as a base\nhowever if we standardize on the same testing framework the other\nclients have then there are a lot of fixtures for like tempfiles that\ncan be used to clean up testing a lot.\n\nChange-Id: I915bb910db644c58d485ad89720081fe771f41b8\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/9f155b1266e195ff242239bfb96efb1f82159ef9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/9f155b1266e195ff242239bfb96efb1f82159ef9"}]},"branch":"refs/heads/master"},"b5907d7d7ad3d127ccbb3f9b172d65ec3bf7e84f":{"kind":"REWORK","_number":4,"created":"2016-10-05 00:22:50.000000000","uploader":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"ref":"refs/changes/98/360298/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/98/360298/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/4"}}},"commit":{"parents":[{"commit":"a71c0d5a30452b7ddcd1bb4fa5dc9dc36028fb0c","subject":"Replace assertTrue(a in b) with assertIn(a, b)","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/a71c0d5a30452b7ddcd1bb4fa5dc9dc36028fb0c"}]}],"author":{"name":"Jamie Lennox","email":"jamielennox@gmail.com","date":"2016-08-25 05:15:23.000000000","tz":600},"committer":{"name":"Jamie Lennox","email":"jamielennox@gmail.com","date":"2016-10-05 00:22:39.000000000","tz":660},"subject":"Use requests_mock and oslotest","message":"Use requests_mock and oslotest\n\nThe connection tests have a tendancy to patch the connection function on\nthe client module but not unpatch it. This means all the connection\ntests are unstable depending on ordering.\n\nBeyond that there is so much mocking going on that it is basically\nimpossible to know whether we are testing the client or the mock - in\nsome cases it\u0027s definetly just the mock.\n\nThe other OpenStack clients typically use requests-mock to mock HTTP\nrequests so you can ensure the client is doing the right thing. Convert\na nubmer of tests to use requests-mock. This is not all the tests, but a\nlot of them.\n\nThis also brings in oslotest. We could bring in testtools as a base\nhowever if we standardize on the same testing framework the other\nclients have then there are a lot of fixtures for like tempfiles that\ncan be used to clean up testing a lot.\n\nChange-Id: I915bb910db644c58d485ad89720081fe771f41b8\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/b5907d7d7ad3d127ccbb3f9b172d65ec3bf7e84f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/b5907d7d7ad3d127ccbb3f9b172d65ec3bf7e84f"}]},"branch":"refs/heads/master"},"35c82a041beb4d19a8da2103d7b1302b920268ed":{"kind":"REWORK","_number":5,"created":"2016-10-10 23:28:37.000000000","uploader":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"ref":"refs/changes/98/360298/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/98/360298/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/5"}}},"commit":{"parents":[{"commit":"a71c0d5a30452b7ddcd1bb4fa5dc9dc36028fb0c","subject":"Replace assertTrue(a in b) with assertIn(a, b)","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/a71c0d5a30452b7ddcd1bb4fa5dc9dc36028fb0c"}]}],"author":{"name":"Jamie Lennox","email":"jamielennox@gmail.com","date":"2016-08-25 05:15:23.000000000","tz":600},"committer":{"name":"Jamie Lennox","email":"jamielennox@gmail.com","date":"2016-10-10 23:24:19.000000000","tz":660},"subject":"Use requests_mock and oslotest","message":"Use requests_mock and oslotest\n\nThe connection tests have a tendancy to patch the connection function on\nthe client module but not unpatch it. This means all the connection\ntests are unstable depending on ordering.\n\nBeyond that there is so much mocking going on that it is basically\nimpossible to know whether we are testing the client or the mock - in\nsome cases it\u0027s definetly just the mock.\n\nThis level of mocking makes it really difficult to modify any of the way\nconnection handling works because functions test for exactly what is\nbeing passed to a function and not that the request they send is\ncorrect. This makes things like supporting keystoneauth instead of\nkeysotneclient really difficult.\n\nTo standardize tests between clients a bit we bring in oslotest and\nrequest-mock to handle the mocking and response generation. In this\npatch we convert only a couple of the test cases to show that it works\nand then we can patch other test objects in later patches.\n\nChange-Id: I915bb910db644c58d485ad89720081fe771f41b8\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/35c82a041beb4d19a8da2103d7b1302b920268ed"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/35c82a041beb4d19a8da2103d7b1302b920268ed"}]},"branch":"refs/heads/master"},"c5d7a17a44246a474b612c38e9b88c7658a54f11":{"kind":"REWORK","_number":6,"created":"2016-10-12 01:15:22.000000000","uploader":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"ref":"refs/changes/98/360298/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/98/360298/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/6"}}},"commit":{"parents":[{"commit":"a71c0d5a30452b7ddcd1bb4fa5dc9dc36028fb0c","subject":"Replace assertTrue(a in b) with assertIn(a, b)","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/a71c0d5a30452b7ddcd1bb4fa5dc9dc36028fb0c"}]}],"author":{"name":"Jamie Lennox","email":"jamielennox@gmail.com","date":"2016-08-25 05:15:23.000000000","tz":600},"committer":{"name":"Jamie Lennox","email":"jamielennox@gmail.com","date":"2016-10-12 01:13:59.000000000","tz":660},"subject":"Use requests_mock and oslotest","message":"Use requests_mock and oslotest\n\nThe connection tests have a tendancy to patch the connection function on\nthe client module but not unpatch it. This means all the connection\ntests are unstable depending on ordering.\n\nBeyond that there is so much mocking going on that it is basically\nimpossible to know whether we are testing the client or the mock - in\nsome cases it\u0027s definetly just the mock.\n\nThis level of mocking makes it really difficult to modify any of the way\nconnection handling works because functions test for exactly what is\nbeing passed to a function and not that the request they send is\ncorrect. This makes things like supporting keystoneauth instead of\nkeysotneclient really difficult.\n\nTo standardize tests between clients a bit we bring in oslotest and\nrequest-mock to handle the mocking and response generation. In this\npatch we convert only a couple of the test cases to show that it works\nand then we can patch other test objects in later patches.\n\nChange-Id: I915bb910db644c58d485ad89720081fe771f41b8\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/c5d7a17a44246a474b612c38e9b88c7658a54f11"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/c5d7a17a44246a474b612c38e9b88c7658a54f11"}]},"branch":"refs/heads/master"},"8ded0c6b08cb529e13d2da75adec283a5eb2bf29":{"kind":"REWORK","_number":7,"created":"2016-10-12 05:43:52.000000000","uploader":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"ref":"refs/changes/98/360298/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/98/360298/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/98/360298/7"}}},"commit":{"parents":[{"commit":"a71c0d5a30452b7ddcd1bb4fa5dc9dc36028fb0c","subject":"Replace assertTrue(a in b) with assertIn(a, b)","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/a71c0d5a30452b7ddcd1bb4fa5dc9dc36028fb0c"}]}],"author":{"name":"Jamie Lennox","email":"jamielennox@gmail.com","date":"2016-08-25 05:15:23.000000000","tz":600},"committer":{"name":"Jamie Lennox","email":"jamielennox@gmail.com","date":"2016-10-12 05:43:26.000000000","tz":660},"subject":"Use requests_mock and testtools","message":"Use requests_mock and testtools\n\nThe connection tests have a tendancy to patch the connection function on\nthe client module but not unpatch it. This means all the connection\ntests are unstable depending on ordering.\n\nBeyond that there is so much mocking going on that it is basically\nimpossible to know whether we are testing the client or the mock - in\nsome cases it\u0027s definetly just the mock.\n\nThis level of mocking makes it really difficult to modify any of the way\nconnection handling works because functions test for exactly what is\nbeing passed to a function and not that the request they send is\ncorrect. This makes things like supporting keystoneauth instead of\nkeysotneclient really difficult.\n\nTo standardize tests between clients a bit we bring in testtools and\nrequest-mock to handle the mocking and response generation. In this\npatch we convert only a couple of the test cases to show that it works\nand then we can patch other test objects in later patches.\n\nChange-Id: I915bb910db644c58d485ad89720081fe771f41b8\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/8ded0c6b08cb529e13d2da75adec283a5eb2bf29"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/8ded0c6b08cb529e13d2da75adec283a5eb2bf29"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
