)]}'
{"id":"openstack%2Fpython-openstackclient~682939","triplet_id":"openstack%2Fpython-openstackclient~master~I0f1dc1215bdfb3eba98ccaf66a0041d220b93812","project":"openstack/python-openstackclient","branch":"master","topic":"bp/support-delete-on-termination-in-server-attach-volume","hashtags":[],"change_id":"I0f1dc1215bdfb3eba98ccaf66a0041d220b93812","subject":"Provide stderr in exception when check_parser fails","status":"MERGED","created":"2019-09-18 16:01:09.000000000","updated":"2019-11-20 17:37:40.000000000","submitted":"2019-11-20 17:36:28.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"682939-1574271388330-a496186d","meta_rev_id":"c4335dd688f3aa3a40970903ee9aca755ae3881f","_number":682939,"virtual_id_number":682939,"owner":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2019-11-20 17:36:28.000000000","post_submit":true,"permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"value":0,"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"value":0,"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"value":2,"date":"2019-11-20 13:39:40.000000000","_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"value":0,"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"}],"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)"},"default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2019-11-20 13:40:01.000000000","_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"value":0,"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"value":0,"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-09-24 19:03:09.000000000","updated_by":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"reviewer":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"state":"REVIEWER"},{"updated":"2019-10-15 00:42:55.000000000","updated_by":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"reviewer":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"state":"REVIEWER"},{"updated":"2019-11-20 17:36:28.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"a438b39c307684446e665328383e387f64517451","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-09-18 16:01:09.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"76efe8272459d8807ce957906a6b2ab94b2c2c95","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-18 17:54:24.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstackclient-check-plugins https://zuul.opendev.org/t/openstack/build/f491972354ab4b73bfac7a1494767c6c : SUCCESS in 5m 07s (non-voting)\n- osc-tox-py27-tips https://zuul.opendev.org/t/openstack/build/3a48f0a7f2904168b22ee2fb77a208d5 : SUCCESS in 4m 41s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/eacea7e158a744d6aa918dce818cfaaa : SUCCESS in 4m 45s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/486d46a5040e44ff8295b0afd7000385 : SUCCESS in 5m 43s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/101b9042f1154b06a79943d8128d7ff2 : SUCCESS in 4m 47s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/dcba07ee5ecf4892ab373f559e7f289d : SUCCESS in 5m 56s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/bec13bb9e41d4814bf672ec3013111ea : SUCCESS in 3m 15s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/f552abad0c5a4c3aa176f449a8e66b69 : SUCCESS in 3m 16s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/95525201e0c54cf2925aea9b4564aef5 : SUCCESS in 3m 44s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/71f9a345dc284e68b9c4f7f889007fc1 : SUCCESS in 4m 54s\n- tempest-full https://zuul.opendev.org/t/openstack/build/b7a42100b01449a2a5fc8a73011f5f67 : SUCCESS in 1h 45m 26s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/b5ed8f682f374ba3a3bd2d34cb1e987e : SUCCESS in 1h 30m 42s\n- osc-functional-devstack https://zuul.opendev.org/t/openstack/build/05bfb4c813c6437cb28e349d03142060 : SUCCESS in 1h 01m 32s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/3a68594e9a8148faa46ceb37740a54d5 : SUCCESS in 1h 05m 46s","accounts_in_message":[],"_revision_number":1},{"id":"6cb3a2e097b0c2069dc5b30d068f7540a121551e","author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"date":"2019-09-24 19:03:09.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1\n\nThanks Matt","accounts_in_message":[],"_revision_number":1},{"id":"22b8f71a33e0f1bc0bea6cae41a5d6f7cf174688","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-11-08 15:54:43.000000000","message":"Patch Set 2: Patch Set 1 was rebased","accounts_in_message":[],"_revision_number":2},{"id":"f5fcb286d5b4eeabf9d17714dc02b4f0e1023f33","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-11-08 15:54:48.000000000","message":"Patch Set 2: Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"2c5b5d4f2fa3fa8fc504c8cd940cd57094f19265","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-11-08 15:55:05.000000000","message":"Patch Set 2:\n\nPreviously approved, just a rebase, so fast approving.","accounts_in_message":[],"_revision_number":2},{"id":"a9e8adabaddec52ed2252deca6114303f083bccb","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-11-08 17:30:32.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstackclient-check-plugins https://zuul.opendev.org/t/openstack/build/21c32c80b3a7453cbce140a5a4ff0aaa : SUCCESS in 4m 36s (non-voting)\n- osc-tox-py27-tips https://zuul.opendev.org/t/openstack/build/7ecbaa7d3be840048801d60e499cb6e0 : SUCCESS in 3m 49s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/fa7484e25b304c7fa8bd21303e79605c : SUCCESS in 4m 02s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/ae84da46baa74100b85eeffd70d64daa : SUCCESS in 4m 21s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/482f9c7530f34830ba86bef9b4ad7ac3 : SUCCESS in 4m 00s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a39ca96e264043a5b37b66125abbb50c : SUCCESS in 3m 42s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/f42600d9e6be4ef293826f2acd9cf9c1 : SUCCESS in 2m 50s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/c6681545965247bfb76232bc82001d58 : SUCCESS in 3m 05s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/5f40fe3114ee4638b88a5cca98b10f31 : SUCCESS in 3m 18s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/cf28e89cd99b4c5da7a034f3b011f78c : SUCCESS in 5m 20s\n- tempest-full https://zuul.opendev.org/t/openstack/build/864dfc21810d41d19a0e37861c3f527a : SUCCESS in 1h 30m 40s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/a134591e01ea4873beb05c3b065ea595 : SUCCESS in 1h 20m 44s\n- osc-functional-devstack https://zuul.opendev.org/t/openstack/build/93c8c844fd1342ad95490e77a3fb01be : SUCCESS in 53m 43s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/69acc9da6e9041079ebb6bd2b486d552 : SUCCESS in 54m 00s","accounts_in_message":[],"_revision_number":2},{"id":"93ae48a02434c9a0ff66f2e86295a64675a505fa","author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"date":"2019-11-20 01:13:03.000000000","message":"Patch Set 2: Workflow+1\n\nrecheck","accounts_in_message":[],"_revision_number":2},{"id":"dff5f4c9ec702c95766ec286fc1aeeacbc5a13a9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-11-20 01:13:14.000000000","message":"Patch Set 2: 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":2},{"id":"f6da3336c1cfdf8c1371c41a1dd030ffbf5e7a3f","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-11-20 13:39:40.000000000","message":"Patch Set 3: Patch Set 2 was rebased","accounts_in_message":[],"_revision_number":3},{"id":"eadebd34a9b498d80f04e4dcdc4851dbba7eec69","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-11-20 13:40:01.000000000","message":"Patch Set 3: Workflow+1\n\nRebased, previously approved, re-approving.","accounts_in_message":[],"_revision_number":3},{"id":"21778fc579625bc84603b223336ada419a3d6b6c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-11-20 15:34:23.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstackclient-check-plugins https://zuul.opendev.org/t/openstack/build/42b33227ddb747c188af9fef1bf6bad9 : SUCCESS in 7m 30s (non-voting)\n- osc-tox-py27-tips https://zuul.opendev.org/t/openstack/build/0abd1c8cf6794875af2e809110dce107 : SUCCESS in 4m 06s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/a37755cf43904870ad1e317f45133e56 : SUCCESS in 4m 26s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/3a02a5db0fa14e1ca67b18350825797d : SUCCESS in 4m 36s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/605e0553a6de4185a6965cf1dda0e8f2 : SUCCESS in 3m 45s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1b59dd0a64d4444285a151ead1d7cc17 : SUCCESS in 4m 00s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/658aae41c96e40f39a9921ebb7717201 : SUCCESS in 3m 09s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/311b1e3348854419970a63ef8e5ed4cf : SUCCESS in 2m 36s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/9a3b66605b2743a4affc4d51d2e6cf63 : SUCCESS in 4m 01s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/80ba8d4153d143bda6293f1c38dc7685 : SUCCESS in 6m 00s\n- tempest-full https://zuul.opendev.org/t/openstack/build/8458006c13a745759e9e0c169f6fba5c : SUCCESS in 1h 47m 20s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/5fc151cbbaa142b2a1e387789603ee74 : SUCCESS in 1h 49m 10s\n- osc-functional-devstack https://zuul.opendev.org/t/openstack/build/b2b1fe4a8157481d88d69e7d6c5d42c6 : SUCCESS in 54m 29s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/c1b1bf4dadcb450c922dad0a3c68dde3 : SUCCESS in 46m 52s","accounts_in_message":[],"_revision_number":3},{"id":"3f1ac78f13a429f03f3d617448f342f3839a8a4c","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-11-20 15:34:35.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"646a0e70dda9247970a548d179e2ca8ba07265f6","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-11-20 17:36:28.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":3},{"id":"9713eb0675ec0aa73adc07f73a66cc8d29699575","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-11-20 17:36:28.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- osc-tox-py27-tips https://zuul.opendev.org/t/openstack/build/9392ca2f6e3b4355adcd6950771971dc : SUCCESS in 4m 55s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/624c8b1277f643fd8829ecae7a440215 : SUCCESS in 5m 56s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/5fec95e3dfe548679cece7db5fe78815 : SUCCESS in 3m 48s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3ef320388cd44ff393849b80775e24fa : SUCCESS in 4m 01s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/cba4b1d9fbde4049a7919e7d74f565d0 : SUCCESS in 3m 19s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/49b414dda3534f05b0a045ea87636ebf : SUCCESS in 4m 31s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/e69da9bc8a034373aade2e3f2f6abe95 : SUCCESS in 4m 38s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3d9fc607f6924452989693277fd958fc : SUCCESS in 6m 18s\n- tempest-full https://zuul.opendev.org/t/openstack/build/613aafd0a0c04dcaa51152f48d3402db : SUCCESS in 1h 56m 57s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/6293ded7bab74727b5b711a20cbde4e8 : SUCCESS in 1h 39m 32s\n- osc-functional-devstack https://zuul.opendev.org/t/openstack/build/ea035b2a994843099b396d6ec3ab798b : SUCCESS in 1h 01m 18s","accounts_in_message":[],"_revision_number":3},{"id":"be1cf0c650f0cf92c57c38a182e62a1469f4e6a8","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-11-20 17:37:40.000000000","message":"Patch Set 3:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4ae37f68f35043cab87e0d395814d8e0 : SUCCESS in 52s","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"5b3a827a1ff80e4b51c7ede44b84bf640d5b6380","revisions":{"1fe26d2956f8d60bd9a8502a4b682225b1c5940d":{"kind":"REWORK","_number":1,"created":"2019-09-18 16:01:09.000000000","uploader":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"ref":"refs/changes/39/682939/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-openstackclient","ref":"refs/changes/39/682939/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/39/682939/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/39/682939/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/39/682939/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-openstackclient refs/changes/39/682939/1"}}},"commit":{"parents":[{"commit":"f7ebabc74558f06e3ec75f1916617f4021d853d1","subject":"Microversion 2.79: Add delete_on_termination to volume-attach API","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/f7ebabc74558f06e3ec75f1916617f4021d853d1"}]}],"author":{"name":"Matt Riedemann","email":"mriedem.os@gmail.com","date":"2019-09-18 15:58:12.000000000","tz":-240},"committer":{"name":"Matt Riedemann","email":"mriedem.os@gmail.com","date":"2019-09-18 15:58:12.000000000","tz":-240},"subject":"Provide stderr in exception when check_parser fails","message":"Provide stderr in exception when check_parser fails\n\nFor negative tests that are asserting an argparse failure\nit would be useful to assert the specific reason for the\nfailure in the test rather than just getting an exception,\nespecially to avoid false positives in the tests when what\nis being tested and failing isn\u0027t the actual expected reason\nfor the failure.\n\nThis wraps the check_parser code that parses the args and\nmocks sys.stderr so we can trap that output and put it in the\nexception message that gets raised to the test.\n\nAs a result, we can tighten up a test that was passing before\nfor the wrong reason [1].\n\n[1] https://review.opendev.org/#/c/673725/12/openstackclient/tests/unit/compute/v2/test_server.py@605\n\nChange-Id: I0f1dc1215bdfb3eba98ccaf66a0041d220b93812\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/1fe26d2956f8d60bd9a8502a4b682225b1c5940d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/1fe26d2956f8d60bd9a8502a4b682225b1c5940d"}]},"branch":"refs/heads/master"},"e0db05b8bb93fdd7b6b27f56d8583211b1e6645c":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2019-11-08 15:54:43.000000000","uploader":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"ref":"refs/changes/39/682939/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-openstackclient","ref":"refs/changes/39/682939/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/39/682939/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/39/682939/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/39/682939/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-openstackclient refs/changes/39/682939/2"}}},"commit":{"parents":[{"commit":"74bc0dba60c04962d57f4423168199bfee75775d","subject":"Microversion 2.79: Add delete_on_termination to volume-attach API","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/74bc0dba60c04962d57f4423168199bfee75775d"}]}],"author":{"name":"Matt Riedemann","email":"mriedem.os@gmail.com","date":"2019-09-18 15:58:12.000000000","tz":-240},"committer":{"name":"Matt Riedemann","email":"mriedem.os@gmail.com","date":"2019-11-08 15:54:43.000000000","tz":0},"subject":"Provide stderr in exception when check_parser fails","message":"Provide stderr in exception when check_parser fails\n\nFor negative tests that are asserting an argparse failure\nit would be useful to assert the specific reason for the\nfailure in the test rather than just getting an exception,\nespecially to avoid false positives in the tests when what\nis being tested and failing isn\u0027t the actual expected reason\nfor the failure.\n\nThis wraps the check_parser code that parses the args and\nmocks sys.stderr so we can trap that output and put it in the\nexception message that gets raised to the test.\n\nAs a result, we can tighten up a test that was passing before\nfor the wrong reason [1].\n\n[1] https://review.opendev.org/#/c/673725/12/openstackclient/tests/unit/compute/v2/test_server.py@605\n\nChange-Id: I0f1dc1215bdfb3eba98ccaf66a0041d220b93812\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/e0db05b8bb93fdd7b6b27f56d8583211b1e6645c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/e0db05b8bb93fdd7b6b27f56d8583211b1e6645c"}]},"branch":"refs/heads/master"},"5b3a827a1ff80e4b51c7ede44b84bf640d5b6380":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2019-11-20 13:39:40.000000000","uploader":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"ref":"refs/changes/39/682939/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-openstackclient","ref":"refs/changes/39/682939/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/39/682939/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/39/682939/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/39/682939/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-openstackclient refs/changes/39/682939/3"}}},"commit":{"parents":[{"commit":"874a726f522dae3a08832f32230e2590a787d45c","subject":"Microversion 2.79: Add delete_on_termination to volume-attach API","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/874a726f522dae3a08832f32230e2590a787d45c"}]}],"author":{"name":"Matt Riedemann","email":"mriedem.os@gmail.com","date":"2019-09-18 15:58:12.000000000","tz":-240},"committer":{"name":"Matt Riedemann","email":"mriedem.os@gmail.com","date":"2019-11-20 13:39:40.000000000","tz":0},"subject":"Provide stderr in exception when check_parser fails","message":"Provide stderr in exception when check_parser fails\n\nFor negative tests that are asserting an argparse failure\nit would be useful to assert the specific reason for the\nfailure in the test rather than just getting an exception,\nespecially to avoid false positives in the tests when what\nis being tested and failing isn\u0027t the actual expected reason\nfor the failure.\n\nThis wraps the check_parser code that parses the args and\nmocks sys.stderr so we can trap that output and put it in the\nexception message that gets raised to the test.\n\nAs a result, we can tighten up a test that was passing before\nfor the wrong reason [1].\n\n[1] https://review.opendev.org/#/c/673725/12/openstackclient/tests/unit/compute/v2/test_server.py@605\n\nChange-Id: I0f1dc1215bdfb3eba98ccaf66a0041d220b93812\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/5b3a827a1ff80e4b51c7ede44b84bf640d5b6380"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/5b3a827a1ff80e4b51c7ede44b84bf640d5b6380"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
