)]}'
{"HACKING.rst":[{"author":{"_account_id":2976,"name":"Adalberto Medeiros","email":"adalbas@gmail.com","username":"adalbas"},"change_message_id":"1814477e837d213dababa39b094e7c8bbb36f9cd","unresolved":false,"context_lines":[{"line_number":156,"context_line":"Test Skips"},{"line_number":157,"context_line":"----------"},{"line_number":158,"context_line":"If a test is broken because of a bug it is appropriate to skip the test until"},{"line_number":159,"context_line":"bug has been fixed. However, the skip message should formatted so that"},{"line_number":160,"context_line":"Tempest\u0027s skip tracking tool can watch the bug status. The skip message should"},{"line_number":161,"context_line":"contain the string \u0027bug\u0027 immediately followed by either whitespace or a colon."},{"line_number":162,"context_line":"Then the bug number should be included in the message optionally with a \u0027#\u0027 in"}],"source_content_type":"text/x-rst","patch_set":3,"id":"AAAAOH%2F%2F80Q%3D","line":159,"updated":"2013-03-19 19:37:57.000000000","message":"Small typo: \"Should be formatted\"","commit_id":"69c29504831bc78eb760a4f489abc2b1548eaf90"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"7daae39c51c45403c440db2e6831f48568d0c9f2","unresolved":false,"context_lines":[{"line_number":156,"context_line":"Test Skips"},{"line_number":157,"context_line":"----------"},{"line_number":158,"context_line":"If a test is broken because of a bug it is appropriate to skip the test until"},{"line_number":159,"context_line":"bug has been fixed. However, the skip message should formatted so that"},{"line_number":160,"context_line":"Tempest\u0027s skip tracking tool can watch the bug status. The skip message should"},{"line_number":161,"context_line":"contain the string \u0027bug\u0027 immediately followed by either whitespace or a colon."},{"line_number":162,"context_line":"Then the bug number should be included in the message optionally with a \u0027#\u0027 in"}],"source_content_type":"text/x-rst","patch_set":3,"id":"AAAAOH%2F%2F8xY%3D","line":159,"in_reply_to":"AAAAOH%2F%2F80Q%3D","updated":"2013-03-19 21:26:14.000000000","message":"Done","commit_id":"69c29504831bc78eb760a4f489abc2b1548eaf90"}],"tools/hacking.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"c02cc8a600c938ba262fe3cd56a073530ff12df2","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                return (pos, \"T404: test functions must \""},{"line_number":324,"context_line":"                        \"not have doc strings\")"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"SKIP_DECORATOR \u003d \u0027@testtools.skip(\u0027  # Bug #123 (To pass self test)"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"def tempest_skip_bugs(physical_line):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOH%2F%2F8zY%3D","line":326,"updated":"2013-03-19 19:39:24.000000000","message":"if we change the bug_re to be\n\nr\u0027\\s*@testtools.skip\\(.*bug:*\\s*\\#*\\d+\u0027, re.IGNORECASE)\n\nthen we don\u0027t need this line","commit_id":"69c29504831bc78eb760a4f489abc2b1548eaf90"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"7daae39c51c45403c440db2e6831f48568d0c9f2","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                return (pos, \"T404: test functions must \""},{"line_number":324,"context_line":"                        \"not have doc strings\")"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"SKIP_DECORATOR \u003d \u0027@testtools.skip(\u0027  # Bug #123 (To pass self test)"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"def tempest_skip_bugs(physical_line):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOH%2F%2F8w4%3D","line":326,"in_reply_to":"AAAAOH%2F%2F8zY%3D","updated":"2013-03-19 21:26:14.000000000","message":"Done, slightly differently though, the cheap hack here isn\u0027t needed anymore.","commit_id":"69c29504831bc78eb760a4f489abc2b1548eaf90"},{"author":{"_account_id":2976,"name":"Adalberto Medeiros","email":"adalbas@gmail.com","username":"adalbas"},"change_message_id":"1814477e837d213dababa39b094e7c8bbb36f9cd","unresolved":false,"context_lines":[{"line_number":340,"context_line":"        if not bug.match(physical_line):"},{"line_number":341,"context_line":"            return (pos, \u0027T601: skips must have an associated bug\u0027)"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"        bug_re \u003d re.compile(r\u0027.*skip\\(.*bug:*\\s*\\#*\\d+\u0027, re.IGNORECASE)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"        if not bug_re.match(physical_line):"},{"line_number":346,"context_line":"            return (pos, \u0027T602: Bug number formatted incorrectly\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOH%2F%2F8zs%3D","line":343,"updated":"2013-03-19 19:37:57.000000000","message":"This regex also accepts bug123456 format (no space and no colon). Is that ok?","commit_id":"69c29504831bc78eb760a4f489abc2b1548eaf90"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"7daae39c51c45403c440db2e6831f48568d0c9f2","unresolved":false,"context_lines":[{"line_number":340,"context_line":"        if not bug.match(physical_line):"},{"line_number":341,"context_line":"            return (pos, \u0027T601: skips must have an associated bug\u0027)"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"        bug_re \u003d re.compile(r\u0027.*skip\\(.*bug:*\\s*\\#*\\d+\u0027, re.IGNORECASE)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"        if not bug_re.match(physical_line):"},{"line_number":346,"context_line":"            return (pos, \u0027T602: Bug number formatted incorrectly\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOH%2F%2F8w8%3D","line":343,"in_reply_to":"AAAAOH%2F%2F8zs%3D","updated":"2013-03-19 21:26:14.000000000","message":"This regex is mostly a copy and paste from the regex in tools/skip_tracker.py, so I think that it is fine this way. The tests here are just to ensure that all future skips get picked up by the tool.","commit_id":"69c29504831bc78eb760a4f489abc2b1548eaf90"}]}
