)]}'
{"tools/debug_helper.sh":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"f6737bdbd06f3a89024f079e0cc49f393c0dc2cb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"python -m testtools.run discover -t ./ ./keystone/tests --list \u003e /tmp/ks_all_tests"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"if [ \"$1\" ]"},{"line_number":6,"context_line":"then"}],"source_content_type":"text/x-sh","patch_set":6,"id":"AAAATn%2F9sk4%3D","line":3,"updated":"2013-12-07 04:44:48.000000000","message":"Can you use mktemp or something like that to create a unique temp file name?  It\u0027s unlikely that more than 1 debug test run will happen on a box at the same time, but if it does happen it would be a pain to debug.","commit_id":"f03078dcf0aa3ea106e361bdc5f9c9b166d553e2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"369d7dad2d5fa40286c35ce1b70a33ab66711ffb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"python -m testtools.run discover -t ./ ./keystone/tests --list \u003e /tmp/ks_all_tests"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"if [ \"$1\" ]"},{"line_number":6,"context_line":"then"}],"source_content_type":"text/x-sh","patch_set":6,"id":"AAAATn%2F9qx8%3D","line":3,"in_reply_to":"AAAATn%2F9q4Q%3D","updated":"2013-12-09 01:21:32.000000000","message":"*facepalm* ... thanks, got it working now, uploading a new patch.","commit_id":"f03078dcf0aa3ea106e361bdc5f9c9b166d553e2"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"4e2003efdafc0e73be391c72c8988607b339c378","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"python -m testtools.run discover -t ./ ./keystone/tests --list \u003e /tmp/ks_all_tests"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"if [ \"$1\" ]"},{"line_number":6,"context_line":"then"}],"source_content_type":"text/x-sh","patch_set":6,"id":"AAAATn%2F9q4Q%3D","line":3,"in_reply_to":"AAAATn%2F9q4w%3D","updated":"2013-12-08 23:46:37.000000000","message":"I think it might work.  What I had in mind was moving that last comment from tox.ini into the shell script and just have a oneline in the tox.ini to call it.","commit_id":"f03078dcf0aa3ea106e361bdc5f9c9b166d553e2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"63b131000fc19cb5d9bf84b18915f2359c71adb6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"python -m testtools.run discover -t ./ ./keystone/tests --list \u003e /tmp/ks_all_tests"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"if [ \"$1\" ]"},{"line_number":6,"context_line":"then"}],"source_content_type":"text/x-sh","patch_set":6,"id":"AAAATn%2F9q4w%3D","line":3,"in_reply_to":"AAAATn%2F9sk4%3D","updated":"2013-12-08 23:34:06.000000000","message":"hmmm, so i tried using mktemp (with file format ks_to_run.xxxx), and logically it works, but i can\u0027t reference a random file from tox.ini.\n\nwould storing it in an env variable, and calling it, work?","commit_id":"f03078dcf0aa3ea106e361bdc5f9c9b166d553e2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"3cb17e567cd3739747acb29aec58cd41b59007dd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"ALL_TESTS\u003d`mktemp /tmp/ks_all.XXXXXXXXXX` || exit 1"},{"line_number":4,"context_line":"TESTS_TO_RUN\u003d`mktemp /tmp/ks_to_run.XXXXXXXXXX` || exit 1"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"python -m testtools.run discover -t ./ ./keystone/tests --list \u003e $ALL_TESTS"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-sh","patch_set":8,"id":"AAAATn%2F9qhE%3D","line":4,"updated":"2013-12-09 03:59:41.000000000","message":"instead of using /tmp, you can add a -t flag, i actually had this in place, but ended up fiddling around with it too much, and forgot to add it back in. it explains why the files were found in your keystone directory.  http://unixhelp.ed.ac.uk/CGI/man-cgi?mktemp","commit_id":"de124378dc43e349b84198f70a3d8ed183a86ffe"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8504e7dc1a506ac28f0bc22d9c62fb6d19281e7e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"ALL_TESTS\u003d`mktemp /tmp/ks_all.XXXXXXXXXX` || exit 1"},{"line_number":4,"context_line":"TESTS_TO_RUN\u003d`mktemp /tmp/ks_to_run.XXXXXXXXXX` || exit 1"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"python -m testtools.run discover -t ./ ./keystone/tests --list \u003e $ALL_TESTS"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-sh","patch_set":8,"id":"AAAATn%2F9oZc%3D","line":4,"in_reply_to":"AAAATn%2F9qhE%3D","updated":"2013-12-09 14:34:09.000000000","message":"Done","commit_id":"de124378dc43e349b84198f70a3d8ed183a86ffe"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"02fd0cafd9e5cd2dd7486c10169ef7261a1a1ea8","unresolved":false,"context_lines":[{"line_number":3,"context_line":"ALL_TESTS\u003d`mktemp -t ks_all.XXXXXXXXXX` || exit 1"},{"line_number":4,"context_line":"TESTS_TO_RUN\u003d`mktemp -t ks_to_run.XXXXXXXXXX` || exit 1"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"python -m testtools.run discover -t ./ ./keystone/tests --list \u003e $ALL_TESTS"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"if [ \"$1\" ]"},{"line_number":9,"context_line":"then"}],"source_content_type":"text/x-sh","patch_set":9,"id":"AAAATn%2F9nXg%3D","line":6,"updated":"2013-12-09 16:37:52.000000000","message":"You are still missing the STANDARD_THREADS env var or command line switch, which is going to prevent the debugger from switching once it hits a breakpoint.","commit_id":"dc2a3e91dcbd50932b06f42c8b0289bec957b3c3"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e9dd5eb275b3267538352d51627322ba23317a01","unresolved":false,"context_lines":[{"line_number":3,"context_line":"ALL_TESTS\u003d`mktemp -t ks_all.XXXXXXXXXX` || exit 1"},{"line_number":4,"context_line":"TESTS_TO_RUN\u003d`mktemp -t ks_to_run.XXXXXXXXXX` || exit 1"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"python -m testtools.run discover -t ./ ./keystone/tests --list \u003e $ALL_TESTS"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"if [ \"$1\" ]"},{"line_number":9,"context_line":"then"}],"source_content_type":"text/x-sh","patch_set":9,"id":"AAAATn%2F9mvs%3D","line":6,"in_reply_to":"AAAATn%2F9nFE%3D","updated":"2013-12-09 18:44:32.000000000","message":"I tried STANDARD_THREADS and it didn\u0027t cause any problems that I could see.","commit_id":"dc2a3e91dcbd50932b06f42c8b0289bec957b3c3"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"198b218e2ada7d8867f75bb684ce5ee45ff6a3fc","unresolved":false,"context_lines":[{"line_number":3,"context_line":"ALL_TESTS\u003d`mktemp -t ks_all.XXXXXXXXXX` || exit 1"},{"line_number":4,"context_line":"TESTS_TO_RUN\u003d`mktemp -t ks_to_run.XXXXXXXXXX` || exit 1"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"python -m testtools.run discover -t ./ ./keystone/tests --list \u003e $ALL_TESTS"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"if [ \"$1\" ]"},{"line_number":9,"context_line":"then"}],"source_content_type":"text/x-sh","patch_set":9,"id":"AAAATn%2F9nFE%3D","line":6,"in_reply_to":"AAAATn%2F9nXg%3D","updated":"2013-12-09 17:22:26.000000000","message":"your comment makes it seem like this won\u0027t work, but i\u0027ve been using it for a few days now, everything seems good...","commit_id":"dc2a3e91dcbd50932b06f42c8b0289bec957b3c3"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d161d5063ca4aaaec5b77ef43b2c0172af40ece2","unresolved":false,"context_lines":[{"line_number":3,"context_line":"ALL_TESTS\u003d`mktemp -t ks_all.XXXXXXXXXX` || exit 1"},{"line_number":4,"context_line":"TESTS_TO_RUN\u003d`mktemp -t ks_to_run.XXXXXXXXXX` || exit 1"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"python -m testtools.run discover -t ./ ./keystone/tests --list \u003e $ALL_TESTS"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"if [ \"$1\" ]"},{"line_number":9,"context_line":"then"}],"source_content_type":"text/x-sh","patch_set":11,"id":"AAAATn%2F9mu0%3D","line":6,"updated":"2013-12-09 18:47:08.000000000","message":"this line just discovers all the test names, it doesn\u0027t run any tests.","commit_id":"e573f70dfe11a9e746c281e98c5efb472ed0cf20"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"0d2a94fead538d8740ec819cd842e0b5f85a6475","unresolved":false,"context_lines":[{"line_number":3,"context_line":"ALL_TESTS\u003d`mktemp -t ks_all.XXXXXXXXXX` || exit 1"},{"line_number":4,"context_line":"TESTS_TO_RUN\u003d`mktemp -t ks_to_run.XXXXXXXXXX` || exit 1"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"python -m testtools.run discover -t ./ ./keystone/tests --list \u003e $ALL_TESTS"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"if [ \"$1\" ]"},{"line_number":9,"context_line":"then"}],"source_content_type":"text/x-sh","patch_set":11,"id":"AAAATn%2F9mI4%3D","line":6,"in_reply_to":"AAAATn%2F9mu0%3D","updated":"2013-12-09 20:50:06.000000000","message":"that\u0027d be a useful inline comment","commit_id":"e573f70dfe11a9e746c281e98c5efb472ed0cf20"}],"tox.ini":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"98237e036d49df78f670103c942c44b9145262cd","unresolved":false,"context_lines":[{"line_number":30,"context_line":"[testenv:debug]"},{"line_number":31,"context_line":"commands \u003d"},{"line_number":32,"context_line":" python -c \"print \u0027${posargs}\u0027\" \u003e test_to_run"},{"line_number":33,"context_line":" python -m testtools.run discover --load-list test_to_run"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"[flake8]"},{"line_number":36,"context_line":"filename\u003d *.py,keystone-*"}],"source_content_type":"text/x-properties","patch_set":1,"id":"AAAATn%2F%2FmCo%3D","line":33,"updated":"2013-10-31 17:44:19.000000000","message":"shouldn\u0027t test_to_run be an argument?","commit_id":"428ec23670765fb25eb60874c1f164505c7487e9"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"86911ce1d0171aceb3294745114bf449b9a96fef","unresolved":false,"context_lines":[{"line_number":30,"context_line":"[testenv:debug]"},{"line_number":31,"context_line":"commands \u003d"},{"line_number":32,"context_line":" python -c \"print \u0027${posargs}\u0027\" \u003e test_to_run"},{"line_number":33,"context_line":" python -m testtools.run discover --load-list test_to_run"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"[flake8]"},{"line_number":36,"context_line":"filename\u003d *.py,keystone-*"}],"source_content_type":"text/x-properties","patch_set":1,"id":"AAAATn%2F%2Fl6Q%3D","line":33,"in_reply_to":"AAAATn%2F%2FmCo%3D","updated":"2013-10-31 18:28:27.000000000","message":"I wish it worked that way, but --load-list takes a filename (I also tried - to read from stdin and that wasn\u0027t supported)","commit_id":"428ec23670765fb25eb60874c1f164505c7487e9"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"a7250ccb02ef5f3ca5a6b218ef63182ae91933d7","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"commands \u003d"},{"line_number":38,"context_line":" bash -c \"python -m testtools.run discover -t ./ ./keystone/tests --list \u003e /tmp/ks_all_tests\""},{"line_number":39,"context_line":" bash -c \"grep {posargs} \u003c /tmp/ks_all_tests \u003e /tmp/ks_tests_to_run\""},{"line_number":40,"context_line":" python -m testtools.run discover --load-list /tmp/ks_tests_to_run"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"[flake8]"}],"source_content_type":"text/x-properties","patch_set":5,"id":"AAAATn%2F%2BWQM%3D","line":39,"updated":"2013-11-27 03:28:29.000000000","message":"Add in the STANDARD_THREADS env var to get around eventlet threading issues","commit_id":"acd8051bad80dcabd8adebd58a6b82b7ed71a55d"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"4d52b3e3c24e7cfcbec0082b5696e63b6458656f","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"commands \u003d"},{"line_number":38,"context_line":" bash -c \"python -m testtools.run discover -t ./ ./keystone/tests --list \u003e /tmp/ks_all_tests\""},{"line_number":39,"context_line":" bash -c \"grep {posargs} \u003c /tmp/ks_all_tests \u003e /tmp/ks_tests_to_run\""},{"line_number":40,"context_line":" python -m testtools.run discover --load-list /tmp/ks_tests_to_run"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"[flake8]"}],"source_content_type":"text/x-properties","patch_set":5,"id":"AAAATn%2F%2BuF8%3D","line":39,"updated":"2013-11-21 04:24:02.000000000","message":"This only works if you specify tests on the command line. That\u0027s probably the most common way to run this, but if you don\u0027t specify tests you get a strange error.","commit_id":"acd8051bad80dcabd8adebd58a6b82b7ed71a55d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"28a2d2045a2df1d9d8c744f72664ff7c1f04df8f","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"commands \u003d"},{"line_number":38,"context_line":" bash -c \"python -m testtools.run discover -t ./ ./keystone/tests --list \u003e /tmp/ks_all_tests\""},{"line_number":39,"context_line":" bash -c \"grep {posargs} \u003c /tmp/ks_all_tests \u003e /tmp/ks_tests_to_run\""},{"line_number":40,"context_line":" python -m testtools.run discover --load-list /tmp/ks_tests_to_run"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"[flake8]"}],"source_content_type":"text/x-properties","patch_set":5,"id":"AAAATn%2F%2BS1M%3D","line":39,"in_reply_to":"AAAATn%2F%2BuF8%3D","updated":"2013-11-27 19:03:59.000000000","message":"we could make it exit (earlier) if {posargs} is empty, or run the whole suite","commit_id":"acd8051bad80dcabd8adebd58a6b82b7ed71a55d"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3cd354003b65eab9ae2dec99cf8b24d2971ed4f3","unresolved":false,"context_lines":[{"line_number":32,"context_line":"whitelist_externals\u003d/bin/bash"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"commands \u003d"},{"line_number":35,"context_line":" bash -c \"./tools/debug_helper.sh {posargs}\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"[flake8]"},{"line_number":38,"context_line":"filename\u003d *.py,keystone-*"}],"source_content_type":"text/x-properties","patch_set":7,"id":"AAAATn%2F9qjk%3D","line":35,"updated":"2013-12-09 03:32:25.000000000","message":"Is bash -c needed here? I only had it because I needed to redirect output.","commit_id":"6bb3aaf5a5d52228f0f65d00cffa190a58731cbe"}]}
