)]}'
{".functests":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0037fd4123df9c04c546106ad4fa2490cabbfac0","unresolved":false,"context_lines":[{"line_number":8,"context_line":"cd -"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"rvalue\u003d$?"},{"line_number":11,"context_line":"exit $rvalue"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"ba8a016a_cb1eea62","line":11,"updated":"2015-11-17 23:23:10.000000000","message":"The `set -e` doesn\u0027t do this for us?","commit_id":"e1f990c413cb2afef01b3a1b261c2022e8bd5754"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"c3820d5f16070dd9082681e456907fd7f9c1a860","unresolved":false,"context_lines":[{"line_number":4,"context_line":"set -e"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"cd ${SRC_DIR}"},{"line_number":7,"context_line":"./wrap-testr.sh functional $@"},{"line_number":8,"context_line":"cd -"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"rvalue\u003d$?"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"9a8ffd7b_f9567005","line":7,"updated":"2015-11-24 18:29:24.000000000","message":"what\u0027s the reasoning for breaking out some logic to wrap-testr.sh rather than having the logic inline here?","commit_id":"c5d8cc7cfaf61dcad8cb9019d7720599eb60095f"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"cd98625183815467acddcc9f49fc41505aec9823","unresolved":false,"context_lines":[{"line_number":4,"context_line":"set -e"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"cd ${SRC_DIR}"},{"line_number":7,"context_line":"./wrap-testr.sh functional $@"},{"line_number":8,"context_line":"cd -"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"rvalue\u003d$?"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"9a8ffd7b_54ee6323","line":7,"in_reply_to":"9a8ffd7b_f9567005","updated":"2015-11-24 18:42:10.000000000","message":"again, this was from lifeless\u0027s suggestion in patch set 2. I think this gives us a great path forward to getting all of the tests to use testr instead of nose.","commit_id":"c5d8cc7cfaf61dcad8cb9019d7720599eb60095f"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"33545127913ed16646a45fcb067a503e664273b3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"set -e"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"cd ${SRC_DIR}"},{"line_number":7,"context_line":"ostestr --serial --pretty --regex \"^test\\.functional\\.\" $@"},{"line_number":8,"context_line":"cd -"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"rvalue\u003d$?"}],"source_content_type":"application/x-shellscript","patch_set":12,"id":"5a710552_871d9a11","line":7,"updated":"2015-12-14 19:38:25.000000000","message":"having --regex here means that -n cannot be used\n\ne.g. tox -e func -- -n test.functional.tests.TestContainer.testDelete\n\nOn a previous version of the patch I thought there was trick where if the any flags were set then the --regex would not be included by default.\n\nYou can do:\n\ne.g. tox -e func -- -r test.functional.tests.TestContainer.testDelete$\n\ni.e. the -r overrides the previous -r on the os-testr command","commit_id":"ec0c3fa483a696692d8d309c3a242831f04a50b7"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"bd08b5b815b67f5236400c6168ed9008df34b56a","unresolved":false,"context_lines":[{"line_number":8,"context_line":"ostestr --serial --pretty $@"},{"line_number":9,"context_line":"cd -"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"rvalue\u003d$?"},{"line_number":12,"context_line":"exit $rvalue"}],"source_content_type":"application/x-shellscript","patch_set":15,"id":"5a710552_930fd6e0","line":11,"updated":"2015-12-15 21:43:55.000000000","message":"This is just getting the return code from \u0027cd -\u0027","commit_id":"51bc819a612603c7848078476d84437f4e4958b5"}],".testr.conf":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"ea4606622afdbec9667590523244e74fea14327f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"test_command\u003d${PYTHON:-python} -m subunit.run discover -t ./ ${OS_TEST_PATH} $LISTOPT $IDOPTION"},{"line_number":3,"context_line":"test_id_option\u003d--load-list $IDFILE"},{"line_number":4,"context_line":"test_list_option\u003d--list"}],"source_content_type":"text/plain","patch_set":2,"id":"da85f559_437b6b8c","line":2,"updated":"2015-11-11 19:55:19.000000000","message":"so the OS_TEST_PATH thing here is really an anti feature IMO. \n\nhttp://testrepository.readthedocs.org/en/latest/MANUAL.html#python \n\nis the normal upstream recommendation.","commit_id":"a26dddb8052e1d6d14ac08a92ad261a7b991ceb8"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"25911dbd218aae46d7f3ce837fae3efb8fbf2653","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"test_command\u003dSWIFT_TEST_DEBUG_LOGS\u003d${SWIFT_TEST_DEBUG_LOGS} \\"},{"line_number":3,"context_line":"             ${PYTHON:-python} -m subunit.run discover -t ./ ${TESTS_DIR:-./swift/test/unit/} $LISTOPT $IDOPTION"},{"line_number":4,"context_line":"test_id_option\u003d--load-list $IDFILE"},{"line_number":5,"context_line":"test_list_option\u003d--list"}],"source_content_type":"text/plain","patch_set":15,"id":"5a710552_7377cb3a","line":3,"updated":"2015-12-15 21:41:53.000000000","message":"Are we going to be using testr for unit tests as well as functional? Because you have set the default TESTS_DIR to ./swift/test/unit/ instead of ./swift/test/functional/","commit_id":"51bc819a612603c7848078476d84437f4e4958b5"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7e318d99d58618cd006f4d00f84f955d826e70a1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"test_command\u003dSWIFT_TEST_DEBUG_LOGS\u003d${SWIFT_TEST_DEBUG_LOGS} \\"},{"line_number":3,"context_line":"             ${PYTHON:-python} -m subunit.run discover -t ./ ${TESTS_DIR:-./swift/test/unit/} $LISTOPT $IDOPTION"},{"line_number":4,"context_line":"test_id_option\u003d--load-list $IDFILE"},{"line_number":5,"context_line":"test_list_option\u003d--list"}],"source_content_type":"text/plain","patch_set":15,"id":"5a710552_93e8367e","line":3,"in_reply_to":"5a710552_1378c6f1","updated":"2015-12-15 21:50:13.000000000","message":"I\u0027m confused on how users could run it? It isn\u0027t setup.","commit_id":"51bc819a612603c7848078476d84437f4e4958b5"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"bd08b5b815b67f5236400c6168ed9008df34b56a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"test_command\u003dSWIFT_TEST_DEBUG_LOGS\u003d${SWIFT_TEST_DEBUG_LOGS} \\"},{"line_number":3,"context_line":"             ${PYTHON:-python} -m subunit.run discover -t ./ ${TESTS_DIR:-./swift/test/unit/} $LISTOPT $IDOPTION"},{"line_number":4,"context_line":"test_id_option\u003d--load-list $IDFILE"},{"line_number":5,"context_line":"test_list_option\u003d--list"}],"source_content_type":"text/plain","patch_set":15,"id":"5a710552_f3b97acc","line":3,"in_reply_to":"5a710552_7377cb3a","updated":"2015-12-15 21:43:55.000000000","message":"I would think for the future it is ready, if desired.","commit_id":"51bc819a612603c7848078476d84437f4e4958b5"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"7b769d20389eb32ed3e0844dad9e30671f607b9a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"test_command\u003dSWIFT_TEST_DEBUG_LOGS\u003d${SWIFT_TEST_DEBUG_LOGS} \\"},{"line_number":3,"context_line":"             ${PYTHON:-python} -m subunit.run discover -t ./ ${TESTS_DIR:-./swift/test/unit/} $LISTOPT $IDOPTION"},{"line_number":4,"context_line":"test_id_option\u003d--load-list $IDFILE"},{"line_number":5,"context_line":"test_list_option\u003d--list"}],"source_content_type":"text/plain","patch_set":15,"id":"5a710552_1378c6f1","line":3,"in_reply_to":"5a710552_f3b97acc","updated":"2015-12-15 21:47:54.000000000","message":"True, but we haven\u0027t confirmed that it works with the default set of unit tests, so this could cause some confusion for users who try and run testr on unittests rather than nose.\n\nThe point of this testr for function test is for tempest.","commit_id":"51bc819a612603c7848078476d84437f4e4958b5"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"9bb6b91e3998734b1f4280e7a10989123b8e353e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"test_command\u003dSWIFT_TEST_DEBUG_LOGS\u003d${SWIFT_TEST_DEBUG_LOGS} \\"},{"line_number":3,"context_line":"             ${PYTHON:-python} -m subunit.run \\"},{"line_number":4,"context_line":"             discover -t ./ ${TESTS_DIR:-./swift/test/functional/} $LISTOPT $IDOPTION"},{"line_number":5,"context_line":"test_id_option\u003d--load-list $IDFILE"},{"line_number":6,"context_line":"test_list_option\u003d--list"}],"source_content_type":"text/plain","patch_set":17,"id":"5a710552_d9ffbdff","line":4,"updated":"2015-12-15 22:19:05.000000000","message":"Path to the functaional tests are not under the swift dir, sorry my bad, I should have picked it up in the last comment:\n\n  ${TESTS_DIR:-./test/functional/} \n\nOnce this is done, we can run ostesr --serial from the command line and it should test the func tests (for those playing along at home).","commit_id":"d41ea0cfb6ef47c6598c2d9c5fc7531a721bc72a"},{"author":{"_account_id":18476,"name":"Ganesh Maharaj Mahalingam","email":"ganesh.mahalingam@intel.com","username":"gmmaha"},"change_message_id":"d269e4b1a6bddb675bee7a1fff01bbe13a49d96d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"test_command\u003dSWIFT_TEST_DEBUG_LOGS\u003d${SWIFT_TEST_DEBUG_LOGS} \\"},{"line_number":3,"context_line":"             ${PYTHON:-python} -m subunit.run \\"},{"line_number":4,"context_line":"             discover -t ./ ${TESTS_DIR:-./swift/test/functional/} $LISTOPT $IDOPTION"},{"line_number":5,"context_line":"test_id_option\u003d--load-list $IDFILE"},{"line_number":6,"context_line":"test_list_option\u003d--list"}],"source_content_type":"text/plain","patch_set":17,"id":"5a710552_b90f5187","line":4,"in_reply_to":"5a710552_d9ffbdff","updated":"2015-12-15 22:30:22.000000000","message":"thanks for checking it out. Uploading new patch now.","commit_id":"d41ea0cfb6ef47c6598c2d9c5fc7531a721bc72a"}],"/COMMIT_MSG":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"c3820d5f16070dd9082681e456907fd7f9c1a860","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     paul luse \u003cpaul.e.luse@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-24 09:48:49 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Modify functional tests to use testr"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Defcore uses Tempest, which uses Test Repository."},{"line_number":10,"context_line":"This change makes it easier for Defcore to pull functional"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a8ffd7b_ded832f2","line":7,"updated":"2015-11-24 18:29:24.000000000","message":"How much churn would there be to modify *all* tests to use testr?\n\nSeems to me that this will be confusing i.e. to have two different test frameworks in the project which accept different parameters e.g. IIRC the mechanism to filter to a test subset differs between testr and nose.","commit_id":"c5d8cc7cfaf61dcad8cb9019d7720599eb60095f"},{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"01f726017c1647e89c8ea0004c233f44c00e1896","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     paul luse \u003cpaul.e.luse@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-24 09:48:49 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Modify functional tests to use testr"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Defcore uses Tempest, which uses Test Repository."},{"line_number":10,"context_line":"This change makes it easier for Defcore to pull functional"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a8ffd7b_cb5f110d","line":7,"in_reply_to":"9a8ffd7b_14253baa","updated":"2015-11-24 19:51:55.000000000","message":"Maybe i\u0027ll do it in another patch if it\u0027s ok.","commit_id":"c5d8cc7cfaf61dcad8cb9019d7720599eb60095f"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"cd98625183815467acddcc9f49fc41505aec9823","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     paul luse \u003cpaul.e.luse@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-24 09:48:49 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Modify functional tests to use testr"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Defcore uses Tempest, which uses Test Repository."},{"line_number":10,"context_line":"This change makes it easier for Defcore to pull functional"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a8ffd7b_14253baa","line":7,"in_reply_to":"9a8ffd7b_ded832f2","updated":"2015-11-24 18:42:10.000000000","message":"Yup, I\u0027d definitely prefer to have one test framework instead of two. But the immediate problem I want to see solved is functest integration with tempest. I\u0027m ok with moving only functests and getting unit/probe tests moved later.","commit_id":"c5d8cc7cfaf61dcad8cb9019d7720599eb60095f"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"c3820d5f16070dd9082681e456907fd7f9c1a860","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Defcore uses Tempest, which uses Test Repository."},{"line_number":10,"context_line":"This change makes it easier for Defcore to pull functional"},{"line_number":11,"context_line":"tests from Swift and run them.  Additionally, using testr"},{"line_number":12,"context_line":"allows tests to be run in parallel."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Concurrency set to 1 for now, \u003e1 causes failures for"},{"line_number":15,"context_line":"reasons that are still TBD."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a8ffd7b_9e906aee","line":12,"updated":"2015-11-24 18:29:24.000000000","message":"its not clear that parallel is an advantage for functional tests - see next paragraph","commit_id":"c5d8cc7cfaf61dcad8cb9019d7720599eb60095f"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"33545127913ed16646a45fcb067a503e664273b3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Ganesh Maharaj Mahalingam \u003cganesh.mahalingam@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-07 14:46:08 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Modify functional tests to use testr"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Defcore uses Tempest, which uses Test Repository."},{"line_number":10,"context_line":"This change makes it easier for Defcore to pull functional"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"5a710552_1c5581c5","line":7,"updated":"2015-12-14 19:38:25.000000000","message":"not: uses os-testr (i know, that in turn uses testr)","commit_id":"ec0c3fa483a696692d8d309c3a242831f04a50b7"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"33545127913ed16646a45fcb067a503e664273b3","unresolved":false,"context_lines":[{"line_number":12,"context_line":"allows tests to be run in parallel."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Concurrency set to 1 for now, \u003e1 causes failures for"},{"line_number":15,"context_line":"reasons that are still TBD."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Removed the logic to override default regex as that might be something"},{"line_number":18,"context_line":"we will not need given that wrap-testr.sh is always called from a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"5a710552_7cc12580","line":15,"updated":"2015-12-14 19:38:25.000000000","message":"concurrency isn\u0027t used anymore, we have --serial","commit_id":"ec0c3fa483a696692d8d309c3a242831f04a50b7"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"33545127913ed16646a45fcb067a503e664273b3","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Removed the logic to override default regex as that might be something"},{"line_number":18,"context_line":"we will not need given that wrap-testr.sh is always called from a"},{"line_number":19,"context_line":".xxxtests file."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Co-Authored-By: John Dickinson \u003cme@not.mn\u003e"},{"line_number":22,"context_line":"Co-Authored-By: Robert Collins \u003crbtcollins@hpe.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"5a710552_fc3bd59a","line":19,"updated":"2015-12-14 19:38:25.000000000","message":"wrap-testr.sh does not exist","commit_id":"ec0c3fa483a696692d8d309c3a242831f04a50b7"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"bd08b5b815b67f5236400c6168ed9008df34b56a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Ganesh Maharaj Mahalingam \u003cganesh.mahalingam@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-15 20:50:14 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Modify functional tests to use testr"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Defcore uses Tempest, which uses Test Repository."},{"line_number":10,"context_line":"This change makes it easier for Defcore to pull functional"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"5a710552_1377663b","line":7,"updated":"2015-12-15 21:43:55.000000000","message":"s+testr+ostestr/testr+","commit_id":"51bc819a612603c7848078476d84437f4e4958b5"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"bd08b5b815b67f5236400c6168ed9008df34b56a","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: I53ef4a116996a772cf1f3abc2eb0ad60047322d5"},{"line_number":27,"context_line":"Related-Bug: 1177924"},{"line_number":28,"context_line":"Signed-off-by: Ganesh Maharaj Mahalingam \u003cganesh.mahalingam@intel.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"5a710552_53a40ea5","line":28,"updated":"2015-12-15 21:43:55.000000000","message":"Signed-off lines aren\u0027t needed in OpenStack","commit_id":"51bc819a612603c7848078476d84437f4e4958b5"}],"test-requirements.txt":[{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"78949406ba81ee2be50b1ce76cb3ff7b30b214de","unresolved":false,"context_lines":[{"line_number":10,"context_line":"nosehtmloutput"},{"line_number":11,"context_line":"oslosphinx"},{"line_number":12,"context_line":"sphinx\u003e\u003d1.1.2,\u003c1.2"},{"line_number":13,"context_line":"testrepository"},{"line_number":14,"context_line":"mock\u003e\u003d1.0"},{"line_number":15,"context_line":"python-swiftclient"},{"line_number":16,"context_line":"python-keystoneclient\u003e\u003d1.3.0"}],"source_content_type":"text/plain","patch_set":1,"id":"da85f559_85740036","line":13,"updated":"2015-11-11 18:13:06.000000000","message":"version could also be specified, if it makes sense like other projects did but i am not sure?","commit_id":"048209387f1cce1eea70aa49dbe1f8e85f4ed6a0"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0037fd4123df9c04c546106ad4fa2490cabbfac0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"nosehtmloutput"},{"line_number":11,"context_line":"oslosphinx"},{"line_number":12,"context_line":"sphinx\u003e\u003d1.1.2,\u003c1.2"},{"line_number":13,"context_line":"testrepository"},{"line_number":14,"context_line":"mock\u003e\u003d1.0"},{"line_number":15,"context_line":"python-swiftclient"},{"line_number":16,"context_line":"python-keystoneclient\u003e\u003d1.3.0"}],"source_content_type":"text/plain","patch_set":4,"id":"ba8a016a_7ff774f5","line":13,"updated":"2015-11-17 23:23:10.000000000","message":"Looks like global requirements demands \u003e\u003d0.0.18","commit_id":"e1f990c413cb2afef01b3a1b261c2022e8bd5754"},{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"01f726017c1647e89c8ea0004c233f44c00e1896","unresolved":false,"context_lines":[{"line_number":10,"context_line":"nosehtmloutput"},{"line_number":11,"context_line":"oslosphinx"},{"line_number":12,"context_line":"sphinx\u003e\u003d1.1.2,\u003c1.2"},{"line_number":13,"context_line":"testrepository"},{"line_number":14,"context_line":"mock\u003e\u003d1.0"},{"line_number":15,"context_line":"python-swiftclient"},{"line_number":16,"context_line":"python-keystoneclient\u003e\u003d1.3.0"}],"source_content_type":"text/plain","patch_set":6,"id":"9a8ffd7b_0bd999f3","line":13,"updated":"2015-11-24 19:51:55.000000000","message":"testrepository\u003e\u003d0.0.18","commit_id":"c5d8cc7cfaf61dcad8cb9019d7720599eb60095f"}],"tox.ini":[{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"78949406ba81ee2be50b1ce76cb3ff7b30b214de","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  flake8 swift test doc setup.py"},{"line_number":41,"context_line":"  flake8 --filename\u003dswift* bin"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"[testenv:func]"},{"line_number":44,"context_line":"commands \u003d python setup.py testr"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"[testenv:venv]"}],"source_content_type":"text/x-properties","patch_set":1,"id":"da85f559_7a2dfba6","line":43,"updated":"2015-11-11 18:13:06.000000000","message":"setenv \u003d OS_TEST_PATH\u003d./test/functional\n\nAlso Making this change might start  the tests running \"tox -e func\".","commit_id":"048209387f1cce1eea70aa49dbe1f8e85f4ed6a0"},{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"78949406ba81ee2be50b1ce76cb3ff7b30b214de","unresolved":false,"context_lines":[{"line_number":41,"context_line":"  flake8 --filename\u003dswift* bin"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"[testenv:func]"},{"line_number":44,"context_line":"commands \u003d python setup.py testr"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"[testenv:venv]"},{"line_number":47,"context_line":"commands \u003d {posargs}"}],"source_content_type":"text/x-properties","patch_set":1,"id":"da85f559_457b78f5","line":44,"updated":"2015-11-11 18:13:06.000000000","message":"Also provision for positional args like: python setup.py testr --testr-args\u003d\u0027{posargs}\u0027","commit_id":"048209387f1cce1eea70aa49dbe1f8e85f4ed6a0"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"ea4606622afdbec9667590523244e74fea14327f","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"[testenv:func]"},{"line_number":44,"context_line":"setenv \u003d OS_TEST_PATH\u003d./test/functional"},{"line_number":45,"context_line":"commands \u003d python setup.py testr --testr-args\u003d\u0027{posargs}\u0027"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"[testenv:venv]"},{"line_number":48,"context_line":"commands \u003d {posargs}"}],"source_content_type":"text/x-properties","patch_set":2,"id":"da85f559_c3943b44","line":45,"updated":"2015-11-11 19:55:19.000000000","message":"\u0027test\u0027 not \u0027testr\u0027 for the subcommand of setup.py.\n\nBut actually do this\n\n commands \u003d tools/wrap-testr functional {posargs}\n\n\u003d\u003d\u003d\n\n #!/bin/bash\n # $1 is the default test regex to run\n # $2... the user supplied parameters to replace that\n set -o pipefail\n default\u003d$1\n shift\n if [ -n \"$1\" ]; then\n     default\u003d\"\"\n fi\n python setup.py testr --testr-args\u003d\"--subunit $default $@\" | subunit2pyunit","commit_id":"a26dddb8052e1d6d14ac08a92ad261a7b991ceb8"}],"wrap-testr.sh":[{"author":{"_account_id":18476,"name":"Ganesh Maharaj Mahalingam","email":"ganesh.mahalingam@intel.com","username":"gmmaha"},"change_message_id":"dd980d5f36cb63924a398021b68cc1f59321ec5b","unresolved":false,"context_lines":[{"line_number":5,"context_line":" default\u003d$1"},{"line_number":6,"context_line":" shift"},{"line_number":7,"context_line":" if [ -n \"$1\" ]; then"},{"line_number":8,"context_line":"     default\u003d\"\""},{"line_number":9,"context_line":" fi"},{"line_number":10,"context_line":"# concurrency \u003e 1 fails for reasons TBD.  Do not change until those issues are understood and"},{"line_number":11,"context_line":"# resolved..."}],"source_content_type":"text/x-sh","patch_set":6,"id":"9a8ffd7b_7e5586c4","line":8,"updated":"2015-11-24 18:15:30.000000000","message":"This should not be made empty as any additional arguments go to testr-args. For eg: adding --isolated to testr is running probe tests also currently.","commit_id":"c5d8cc7cfaf61dcad8cb9019d7720599eb60095f"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"c3820d5f16070dd9082681e456907fd7f9c1a860","unresolved":false,"context_lines":[{"line_number":7,"context_line":" if [ -n \"$1\" ]; then"},{"line_number":8,"context_line":"     default\u003d\"\""},{"line_number":9,"context_line":" fi"},{"line_number":10,"context_line":"# concurrency \u003e 1 fails for reasons TBD.  Do not change until those issues are understood and"},{"line_number":11,"context_line":"# resolved..."},{"line_number":12,"context_line":"python setup.py test --testr-args\u003d\"--parallel --concurrency\u003d1 --subunit $default $@\" | subunit2pyunit"}],"source_content_type":"text/x-sh","patch_set":6,"id":"9a8ffd7b_be3f6e24","line":10,"updated":"2015-11-24 18:29:24.000000000","message":"waving my hands here, but there are functional tests that use the same acocunt and set state on that account (and even perhaps the same container names), so if they run in parallel they could corrupt each other\u0027s test state perhaps?\n\nis --parallel necessary if --concurrency\u003d1? Its not clear from the testr docs.","commit_id":"c5d8cc7cfaf61dcad8cb9019d7720599eb60095f"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"4fa73d306bf4b1160c31496395baf6a3feb117f9","unresolved":false,"context_lines":[{"line_number":7,"context_line":" if [ -n \"$1\" ]; then"},{"line_number":8,"context_line":"     default\u003d\"\""},{"line_number":9,"context_line":" fi"},{"line_number":10,"context_line":"# concurrency \u003e 1 fails for reasons TBD.  Do not change until those issues are understood and"},{"line_number":11,"context_line":"# resolved..."},{"line_number":12,"context_line":"python setup.py test --testr-args\u003d\"--parallel --concurrency\u003d1 --subunit $default $@\" | subunit2pyunit"}],"source_content_type":"text/x-sh","patch_set":6,"id":"9a8ffd7b_d7d1ebfc","line":10,"in_reply_to":"9a8ffd7b_be3f6e24","updated":"2015-11-24 23:33:22.000000000","message":"doesn\u0027t work for me w/o it","commit_id":"c5d8cc7cfaf61dcad8cb9019d7720599eb60095f"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"c3820d5f16070dd9082681e456907fd7f9c1a860","unresolved":false,"context_lines":[{"line_number":9,"context_line":" fi"},{"line_number":10,"context_line":"# concurrency \u003e 1 fails for reasons TBD.  Do not change until those issues are understood and"},{"line_number":11,"context_line":"# resolved..."},{"line_number":12,"context_line":"python setup.py test --testr-args\u003d\"--parallel --concurrency\u003d1 --subunit $default $@\" | subunit2pyunit"}],"source_content_type":"text/x-sh","patch_set":6,"id":"9a8ffd7b_be968e92","line":12,"updated":"2015-11-24 18:29:24.000000000","message":"I\u0027m curious, in swiftclient and other projects I see:\n\n  python setup.py testr\n\nNB the trailing \u0027r\u0027\n\nIs this a typo here? it seems to work, i.e. I see a testrepository dir being created, but I don\u0027t understand why.\n\nAlso, on master we get coverage with functests, but we seem to lose it here. Do we need to add --coverage arg?","commit_id":"c5d8cc7cfaf61dcad8cb9019d7720599eb60095f"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"9e10d78f9ac839641628dca1aa587825d0463eb5","unresolved":false,"context_lines":[{"line_number":9,"context_line":" fi"},{"line_number":10,"context_line":"# concurrency \u003e 1 fails for reasons TBD.  Do not change until those issues are understood and"},{"line_number":11,"context_line":"# resolved..."},{"line_number":12,"context_line":"python setup.py test --testr-args\u003d\"--parallel --concurrency\u003d1 --subunit $default $@\" | subunit2pyunit"}],"source_content_type":"text/x-sh","patch_set":6,"id":"9a8ffd7b_4d26ccbb","line":12,"in_reply_to":"9a8ffd7b_0ae8aa7b","updated":"2015-11-24 23:41:27.000000000","message":"so this works for coverage but Ganesh has an outstanding comment above in the same file so whoever pushes next hit this too:\n\npython setup.py test --coverage -testr-args\u003d\"--parallel --concurrency\u003d1 --subunit $default $@\" | subunit2pyunit","commit_id":"c5d8cc7cfaf61dcad8cb9019d7720599eb60095f"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"4fa73d306bf4b1160c31496395baf6a3feb117f9","unresolved":false,"context_lines":[{"line_number":9,"context_line":" fi"},{"line_number":10,"context_line":"# concurrency \u003e 1 fails for reasons TBD.  Do not change until those issues are understood and"},{"line_number":11,"context_line":"# resolved..."},{"line_number":12,"context_line":"python setup.py test --testr-args\u003d\"--parallel --concurrency\u003d1 --subunit $default $@\" | subunit2pyunit"}],"source_content_type":"text/x-sh","patch_set":6,"id":"9a8ffd7b_0ae8aa7b","line":12,"in_reply_to":"9a8ffd7b_1949f48b","updated":"2015-11-24 23:33:22.000000000","message":"yeah coverage is good.  when I add the flag its yelling at me about something or another.  Will look at it a bit more here shortly unless someone beats me to it","commit_id":"c5d8cc7cfaf61dcad8cb9019d7720599eb60095f"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"cd98625183815467acddcc9f49fc41505aec9823","unresolved":false,"context_lines":[{"line_number":9,"context_line":" fi"},{"line_number":10,"context_line":"# concurrency \u003e 1 fails for reasons TBD.  Do not change until those issues are understood and"},{"line_number":11,"context_line":"# resolved..."},{"line_number":12,"context_line":"python setup.py test --testr-args\u003d\"--parallel --concurrency\u003d1 --subunit $default $@\" | subunit2pyunit"}],"source_content_type":"text/x-sh","patch_set":6,"id":"9a8ffd7b_1949f48b","line":12,"in_reply_to":"9a8ffd7b_be968e92","updated":"2015-11-24 18:42:10.000000000","message":"The recommendation from lifeless was to use \"test\" instead of \"testr\", so based on that, \"testr\" is the incorrect one.","commit_id":"c5d8cc7cfaf61dcad8cb9019d7720599eb60095f"}]}
