)]}'
{"tempest/hacking/checks.py":[{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"69b2c88e13b904ca2a1135a3404745a378db3ab7","unresolved":false,"context_lines":[{"line_number":22,"context_line":"SKIP_DECORATOR_RE \u003d re.compile(r\u0027\\s*@testtools.skip\\((.*)\\)\u0027)"},{"line_number":23,"context_line":"SKIP_STR_RE \u003d re.compile(r\u0027.*Bug #\\d+.*\u0027)"},{"line_number":24,"context_line":"PYTHON_CLIENT_RE \u003d re.compile(\u0027import (%s)client\u0027 % \u0027|\u0027.join(PYTHON_CLIENTS))"},{"line_number":25,"context_line":"TEST_DEFINITION \u003d re.compile(r\u0027^\\s*def test.*\u0027)"},{"line_number":26,"context_line":"SCENARIO_DECORATOR \u003d re.compile(r\u0027\\s*@.*services\\(\u0027)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAASn%2F%2FNQg%3D","line":25,"updated":"2013-09-10 00:11:16.000000000","message":"maybe you can use \u0027^\\s*def .*test.*\u0027 to make sure we match the test cases also when the function name does not start with \"test\" but ends with it","commit_id":"25a1a88cd0e54192d3ebed154f719582a6ffd0da"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"3296eefa0d395c47035d60a823b2e42a382fe84f","unresolved":false,"context_lines":[{"line_number":22,"context_line":"SKIP_DECORATOR_RE \u003d re.compile(r\u0027\\s*@testtools.skip\\((.*)\\)\u0027)"},{"line_number":23,"context_line":"SKIP_STR_RE \u003d re.compile(r\u0027.*Bug #\\d+.*\u0027)"},{"line_number":24,"context_line":"PYTHON_CLIENT_RE \u003d re.compile(\u0027import (%s)client\u0027 % \u0027|\u0027.join(PYTHON_CLIENTS))"},{"line_number":25,"context_line":"TEST_DEFINITION \u003d re.compile(r\u0027^\\s*def test.*\u0027)"},{"line_number":26,"context_line":"SCENARIO_DECORATOR \u003d re.compile(r\u0027\\s*@.*services\\(\u0027)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAASn%2F%2FNLQ%3D","line":25,"in_reply_to":"AAAASn%2F%2FNPU%3D","updated":"2013-09-10 01:15:09.000000000","message":"that is exactly what I wanted, nose considers a test every function which has \u0027text\u0027 as a word boundary[1], didn\u0027t know testr isn\u0027t and assumes tests start with \u0027test_\u0027\n\n1. http://nose.readthedocs.org/en/latest/writing_tests.html","commit_id":"25a1a88cd0e54192d3ebed154f719582a6ffd0da"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"26939ffdc543355cb89a6d5b73f4922c7e882f8c","unresolved":false,"context_lines":[{"line_number":22,"context_line":"SKIP_DECORATOR_RE \u003d re.compile(r\u0027\\s*@testtools.skip\\((.*)\\)\u0027)"},{"line_number":23,"context_line":"SKIP_STR_RE \u003d re.compile(r\u0027.*Bug #\\d+.*\u0027)"},{"line_number":24,"context_line":"PYTHON_CLIENT_RE \u003d re.compile(\u0027import (%s)client\u0027 % \u0027|\u0027.join(PYTHON_CLIENTS))"},{"line_number":25,"context_line":"TEST_DEFINITION \u003d re.compile(r\u0027^\\s*def test.*\u0027)"},{"line_number":26,"context_line":"SCENARIO_DECORATOR \u003d re.compile(r\u0027\\s*@.*services\\(\u0027)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAASn%2F%2FNPU%3D","line":25,"in_reply_to":"AAAASn%2F%2FNQg%3D","updated":"2013-09-10 00:31:05.000000000","message":"No, because we only need to enforce this for tests. It\u0027s not considered a test and won\u0027t be run unless the method\u0027s name starts with test:\nhttp://testtools.readthedocs.org/en/latest/for-test-authors.html#the-basics\n\nAdditionally, that regex you suggested wouldn\u0027t work as you wanted because it would match any method that had \u0027test\u0027 in the name.","commit_id":"25a1a88cd0e54192d3ebed154f719582a6ffd0da"}]}
