)]}'
{"id":"openstack%2Fpython-swiftclient~18698","triplet_id":"openstack%2Fpython-swiftclient~master~I0b3f1bcb5d4ff59c65eb3219b30a9e64f54d70bd","project":"openstack/python-swiftclient","branch":"master","topic":"bp/grizzly-testtools","hashtags":[],"change_id":"I0b3f1bcb5d4ff59c65eb3219b30a9e64f54d70bd","subject":"Use testr instead of nose.","status":"MERGED","created":"2012-12-28 00:01:55.000000000","updated":"2013-01-30 21:56:29.000000000","submitted":"2013-01-30 21:56:29.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"5a5f7c040646abd5f71adfbbb3e66d177e858e81","_number":18698,"virtual_id_number":18698,"owner":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":0,"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":2,"date":"2013-01-30 21:56:29.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"all":[{"value":2,"date":"2013-01-22 12:26:33.000000000","_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":2,"date":"2013-01-30 21:54:14.000000000","_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"}],"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":{"approved":{"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},"all":[{"value":0,"date":"2013-01-22 12:26:33.000000000","_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":1,"date":"2013-01-30 21:54:14.000000000","_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},{"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2013-01-22 12:26:33.000000000","updated_by":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"reviewer":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"state":"REVIEWER"},{"updated":"2013-01-30 21:54:14.000000000","updated_by":{"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},"reviewer":{"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},"state":"REVIEWER"},{"updated":"2013-01-30 21:56:29.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"76c936513ecddab44f8bd80b30b989b1a7030b36","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-12-28 00:15:14.000000000","message":"Patch Set 1: Works for me\n\nBuild successful\n\n- http://logs.openstack.org/18698/1/check/gate-python-swiftclient-docs/106 : SUCCESS\n- http://logs.openstack.org/18698/1/check/gate-python-swiftclient-pep8/155 : SUCCESS\n- http://logs.openstack.org/18698/1/check/gate-python-swiftclient-python26/154 : SUCCESS\n- http://logs.openstack.org/18698/1/check/gate-python-swiftclient-python27/154 : SUCCESS\n","accounts_in_message":[],"_revision_number":1},{"id":"54461abadcd2ee79e4d282d73236613445298ae7","author":{"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},"date":"2013-01-03 21:26:53.000000000","message":"Patch Set 1: I would prefer that you didn\u0027t merge this\n\nI would prefer that the test output still show the coverage metrics as it did before","accounts_in_message":[],"_revision_number":1},{"id":"1099d3d97af5952b883898237c9cb8c4f1ca3319","author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"date":"2013-01-03 22:09:48.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"6f50768ad88d3821cf71b348ea6bf02ad03355a9","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-01-03 22:12:05.000000000","message":"Patch Set 2: Works for me\n\nBuild successful\n\n- http://logs.openstack.org/18698/2/check/gate-python-swiftclient-docs/108 : SUCCESS\n- http://logs.openstack.org/18698/2/check/gate-python-swiftclient-pep8/157 : SUCCESS\n- http://logs.openstack.org/18698/2/check/gate-python-swiftclient-python26/156 : SUCCESS\n- http://logs.openstack.org/18698/2/check/gate-python-swiftclient-python27/156 : SUCCESS\n","accounts_in_message":[],"_revision_number":2},{"id":"5a18d8629117025d6c88e747a693100186e9fad8","author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"date":"2013-01-08 13:36:30.000000000","message":"Patch Set 2:\n\nWhy do I get those big red WARNING ? \n\nstack@devstack:~/python-swiftclient$ rm -rf .testrepository; tox -e py27                                    [review/monty_taylor/bp/grizzly-testtools]\nGLOB sdist-make: /opt/stack/python-swiftclient/setup.py\npy27 sdist-reinst: /opt/stack/python-swiftclient/.tox/dist/python-swiftclient-1.2.0.28.gd05ddc0.zip\npy27 runtests: commands[0]\nWARNING:test command found but not installed in testenv\n  cmd: /bin/bash\n  env: /opt/stack/python-swiftclient/.tox/py27\nMaybe forgot to specify a dependency?\npy27 runtests: commands[1]\nWARNING:test command found but not installed in testenv\n  cmd: /bin/bash\n  env: /opt/stack/python-swiftclient/.tox/py27\nMaybe forgot to specify a dependency?\nrunning\u003d${PYTHON:-python} -m subunit.run discover -t ./ ./tests --list \nrunning\u003d${PYTHON:-python} -m subunit.run discover -t ./ ./tests  --load-list /tmp/tmpRXFlrz\nrunning\u003d${PYTHON:-python} -m subunit.run discover -t ./ ./tests  --load-list /tmp/tmpLpKjkp\nRan 45 tests in 0.087s\nPASSED (id\u003d0)\nSlowest Tests\nTest id                                                               Runtime (s)\n--------------------------------------------------------------------  -----------\ntests.test_swiftclient.TestConnection.test_reset_stream               0.010\ntests.test_swiftclient.TestConnection.test_resp_read_on_server_error  0.008\ntests.test_swiftclient.TestConnection.test_instance_kwargs            0.006\ntests.test_swiftclient.TestGetAuth.test_auth_v2_with_os_options       0.005\ntests.test_swiftclient.TestDeleteContainer.test_ok                    0.004\ntests.test_swiftclient.TestConnection.test_instance                   0.004\ntests.test_swiftclient.TestGetAuth.test_auth_v2                       0.003\ntests.test_swiftclient.TestConnection.test_retry                      0.003\ntests.test_swiftclient.TestJsonImport.test_no_simplejson              0.002\ntests.test_swiftclient.TestPutObject.test_server_error                0.002\n_______________________________________________________________________ summary _______________________________________________________________________\n  py27: commands succeeded\n  congratulations :)","accounts_in_message":[],"_revision_number":2},{"id":"f01446c74dac5d12ecbae4752d1121ff9121efa1","author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"date":"2013-01-10 07:14:51.000000000","message":"Patch Set 2:\n\nThe red warning is a tox thing, because we use /bin/test in the script, and that\u0027s not something that it installs into the venv. It\u0027s kind of annoying, right?","accounts_in_message":[],"_revision_number":2},{"id":"80886b637b917435ce3c2143595c7794879795c7","author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"date":"2013-01-10 08:29:07.000000000","message":"Patch Set 2: Work In Progress\n\nHave a version coming without the warnings.","accounts_in_message":[],"_revision_number":2},{"id":"df698e344b5b76de1ca68e74f10d779dae5703c3","author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"date":"2013-01-13 20:16:11.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"fe752740cc685769234a8865aaa6923f0feac286","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-01-13 20:17:52.000000000","message":"Patch Set 3: Works for me\n\nBuild successful\n\n- http://logs.openstack.org/18698/3/check/gate-python-swiftclient-docs/116 : SUCCESS\n- http://logs.openstack.org/18698/3/check/gate-python-swiftclient-pep8/165 : SUCCESS\n- http://logs.openstack.org/18698/3/check/gate-python-swiftclient-python26/164 : SUCCESS\n- http://logs.openstack.org/18698/3/check/gate-python-swiftclient-python27/164 : SUCCESS\n","accounts_in_message":[],"_revision_number":3},{"id":"be1f317d441ae1ba76dc3d443e0382ccbbe46c87","author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"date":"2013-01-14 08:39:07.000000000","message":"Patch Set 3: Looks good to me (core reviewer)\n\nI had an error at first :\n\nstack@devstack:~/python-swiftclient$ tox \nGLOB sdist-make: /opt/stack/python-swiftclient/setup.py\npy26 create: /opt/stack/python-swiftclient/.tox/py26\nERROR: InterpreterNotFound: python2.6\npy27 sdist-reinst: /opt/stack/python-swiftclient/.tox/dist/python-swiftclient-1.2.0.29.g7be3303.zip\npy27 runtests: commands[0]\nusage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]\n   or: setup.py --help [cmd1 cmd2 ...]\n   or: setup.py --help-commands\n   or: setup.py cmd --help\n\nerror: invalid command \u0027testr\u0027\nERROR: InvocationError: \u0027/opt/stack/python-swiftclient/.tox/py27/bin/python setup.py testr --testr-args\u003d\u0027\npep8 create: /opt/stack/python-swiftclient/.tox/pep8\npep8 installdeps: pep8\n\nuntil I pip installed testrepository and now it works well without any red warning (TOXENV\u003dpy27).\n\nThanks.","accounts_in_message":[],"_revision_number":3},{"id":"78b741c2c97adf6d0dce4f597605b5fcde1c95e7","author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"date":"2013-01-14 23:25:12.000000000","message":"Patch Set 3: Work In Progress\n\nRunning testr from setup.py will currently always exit with success, which breaks the gate.","accounts_in_message":[],"_revision_number":3},{"id":"64345a0f8b8a4ceb7ca2f1e91da43b3ab5bb5baf","author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"date":"2013-01-18 21:16:12.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"d41cd8d9e413d34452e63561fbff3e6c042f26a0","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-01-18 21:18:03.000000000","message":"Patch Set 4: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/18698/4/check/gate-python-swiftclient-docs/119 : SUCCESS\n- http://logs.openstack.org/18698/4/check/gate-python-swiftclient-pep8/168 : SUCCESS\n- http://logs.openstack.org/18698/4/check/gate-python-swiftclient-python26/167 : SUCCESS\n- http://logs.openstack.org/18698/4/check/gate-python-swiftclient-python27/167 : SUCCESS\n","accounts_in_message":[],"_revision_number":4},{"id":"0db0d2f16a281c286ad53b92e793a2f5e6242519","author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"date":"2013-01-22 12:26:33.000000000","message":"Patch Set 4: Looks good to me (core reviewer)\n\nTested it again and it look all nice and dandy.","accounts_in_message":[],"_revision_number":4},{"id":"6f4d02bb81ab7287e3693267f802aaed49fe678a","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-01-30 21:54:14.000000000","message":"Patch Set 4: No score\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":4},{"id":"b540acd3de0a4784765ae67a2cfce8805fce98f8","author":{"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},"date":"2013-01-30 21:54:14.000000000","message":"Patch Set 4: Looks good to me (core reviewer); Approved\n\n","accounts_in_message":[],"_revision_number":4},{"id":"21c92cd7a35caf59046446340e31cc0b39704970","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-01-30 21:56:29.000000000","message":"Patch Set 4: Verified\n\nBuild succeeded.\n\n- http://logs.openstack.org/18698/4/gate/gate-python-swiftclient-docs/134 : SUCCESS\n- http://logs.openstack.org/18698/4/gate/gate-python-swiftclient-pep8/183 : SUCCESS\n- http://logs.openstack.org/18698/4/gate/gate-python-swiftclient-python26/182 : SUCCESS\n- http://logs.openstack.org/18698/4/gate/gate-python-swiftclient-python27/182 : SUCCESS\n","accounts_in_message":[],"_revision_number":4},{"id":"214c3caa6d624ed6558a48aad26a6c0e3824384b","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-01-30 21:56:29.000000000","message":"Change has been successfully merged into the git repository.","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"bfeffb63667b796999997acf43be395d31b6a184","revisions":{"b40f60bd833ceff5f648475c356d299be494cae1":{"kind":"REWORK","_number":1,"created":"2012-12-28 00:01:55.000000000","uploader":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"ref":"refs/changes/98/18698/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/98/18698/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/18698/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/18698/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/18698/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/98/18698/1"}}},"commit":{"parents":[{"commit":"e93d47a930f6079547c668070665a85f731d332f","subject":"Use testtools as base class for test cases.","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/e93d47a930f6079547c668070665a85f731d332f"}]}],"author":{"name":"Monty Taylor","email":"mordred@inaugust.com","date":"2012-12-27 23:26:50.000000000","tz":-480},"committer":{"name":"Monty Taylor","email":"mordred@inaugust.com","date":"2012-12-27 23:56:08.000000000","tz":-480},"subject":"Use testr instead of nose","message":"Use testr instead of nose\n\nPart of blueprint grizzly-testtools\n\nChange-Id: I0b3f1bcb5d4ff59c65eb3219b30a9e64f54d70bd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/b40f60bd833ceff5f648475c356d299be494cae1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/b40f60bd833ceff5f648475c356d299be494cae1"}]},"branch":"refs/heads/master"},"d05ddc0962120323634768c0789ffa18812eb924":{"kind":"REWORK","_number":2,"created":"2013-01-03 22:09:48.000000000","uploader":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"ref":"refs/changes/98/18698/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/98/18698/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/18698/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/18698/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/18698/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/98/18698/2"}}},"commit":{"parents":[{"commit":"e93d47a930f6079547c668070665a85f731d332f","subject":"Use testtools as base class for test cases.","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/e93d47a930f6079547c668070665a85f731d332f"}]}],"author":{"name":"Monty Taylor","email":"mordred@inaugust.com","date":"2012-12-27 23:26:50.000000000","tz":-480},"committer":{"name":"Monty Taylor","email":"mordred@inaugust.com","date":"2013-01-03 22:09:41.000000000","tz":-300},"subject":"Use testr instead of nose","message":"Use testr instead of nose\n\nPart of blueprint grizzly-testtools\n\nChange-Id: I0b3f1bcb5d4ff59c65eb3219b30a9e64f54d70bd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/d05ddc0962120323634768c0789ffa18812eb924"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/d05ddc0962120323634768c0789ffa18812eb924"}]},"branch":"refs/heads/master"},"7be3303d0e1c863a16e3c87b99e4ce842c03388a":{"kind":"REWORK","_number":3,"created":"2013-01-13 20:16:11.000000000","uploader":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"ref":"refs/changes/98/18698/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/98/18698/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/18698/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/18698/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/18698/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/98/18698/3"}}},"commit":{"parents":[{"commit":"1aa712eaf224efcb575dd76c546adce810b1b2f4","subject":"Add generated files to .gitignore.","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/1aa712eaf224efcb575dd76c546adce810b1b2f4"}]}],"author":{"name":"Monty Taylor","email":"mordred@inaugust.com","date":"2012-12-27 23:26:50.000000000","tz":-480},"committer":{"name":"Monty Taylor","email":"mordred@inaugust.com","date":"2013-01-13 20:10:55.000000000","tz":-480},"subject":"Use testr instead of nose.","message":"Use testr instead of nose.\n\nnose is invasive and can sometimes alter the outcome of a test run. testr,\non the other hand, keeps a distinction between running tests and displaying\nresults of the test runs. Additionally, it supports the stock python unittest\nprotocol.\n\nEven better, testr supports parallel test running, which makes things faster,\nand a command \"testr run --failing\" which will just re-run the latest failing\ntests (often something one wants to do in iterative dev)\n\nPart of blueprint grizzly-testtools\n\nChange-Id: I0b3f1bcb5d4ff59c65eb3219b30a9e64f54d70bd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/7be3303d0e1c863a16e3c87b99e4ce842c03388a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/7be3303d0e1c863a16e3c87b99e4ce842c03388a"}]},"branch":"refs/heads/master"},"bfeffb63667b796999997acf43be395d31b6a184":{"kind":"REWORK","_number":4,"created":"2013-01-18 21:16:12.000000000","uploader":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"ref":"refs/changes/98/18698/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/98/18698/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/18698/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/18698/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/98/18698/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/98/18698/4"}}},"commit":{"parents":[{"commit":"1aa712eaf224efcb575dd76c546adce810b1b2f4","subject":"Add generated files to .gitignore.","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/1aa712eaf224efcb575dd76c546adce810b1b2f4"}]}],"author":{"name":"Monty Taylor","email":"mordred@inaugust.com","date":"2012-12-27 23:26:50.000000000","tz":-480},"committer":{"name":"Monty Taylor","email":"mordred@inaugust.com","date":"2013-01-18 21:13:27.000000000","tz":-300},"subject":"Use testr instead of nose.","message":"Use testr instead of nose.\n\nnose is invasive and can sometimes alter the outcome of a test run. testr,\non the other hand, keeps a distinction between running tests and displaying\nresults of the test runs. Additionally, it supports the stock python unittest\nprotocol.\n\nEven better, testr supports parallel test running, which makes things faster,\nand a command \"testr run --failing\" which will just re-run the latest failing\ntests (often something one wants to do in iterative dev)\n\nPart of blueprint grizzly-testtools\n\nChange-Id: I0b3f1bcb5d4ff59c65eb3219b30a9e64f54d70bd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/bfeffb63667b796999997acf43be395d31b6a184"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/bfeffb63667b796999997acf43be395d31b6a184"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
