)]}'
{"tests/test_client.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"64883a36f322ac4899a3c8f8e183753e695b22d5","unresolved":false,"context_lines":[{"line_number":7,"context_line":"class ClientTest(utils.TestCase):"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    def setUp(self):"},{"line_number":10,"context_line":"        super(ClientTest, self).setUp()"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    def test_get_client_class_v2(self):"},{"line_number":13,"context_line":"        output \u003d novaclient.client.get_client_class(\u00272\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F0vA%3D","line":10,"updated":"2013-01-03 17:17:28.000000000","message":"Please eliminate the setUp() method entirely, rather than changing \"pass\" to a call to the superclass method…","commit_id":"e3da8bac1a824a2cc15234391020b68bbf98acaf"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"102a4166640944d74ee50d799ed4acf94919826a","unresolved":false,"context_lines":[{"line_number":7,"context_line":"class ClientTest(utils.TestCase):"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    def setUp(self):"},{"line_number":10,"context_line":"        super(ClientTest, self).setUp()"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    def test_get_client_class_v2(self):"},{"line_number":13,"context_line":"        output \u003d novaclient.client.get_client_class(\u00272\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F0gc%3D","line":10,"in_reply_to":"AAAAM3%2F%2F0vA%3D","updated":"2013-01-03 19:58:27.000000000","message":"Done","commit_id":"e3da8bac1a824a2cc15234391020b68bbf98acaf"}],"tests/test_shell.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"64883a36f322ac4899a3c8f8e183753e695b22d5","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def test_help(self):"},{"line_number":48,"context_line":"        required \u003d ["},{"line_number":49,"context_line":"            \u0027.*?^usage: \u0027,"},{"line_number":50,"context_line":"            \u0027.*?(?m)^\\s+root-password\\s+Change the root password\u0027,"},{"line_number":51,"context_line":"            \u0027.*?(?m)^See \"nova help COMMAND\" for help on a specific command\u0027,"},{"line_number":52,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F0u4%3D","line":49,"updated":"2013-01-03 17:17:28.000000000","message":"Um, this bothers me a little bit, because \u0027^\u0027 in regular expressions means \"match at beginning of string\" (or \"line\" with the \u0027m\u0027 switch enabled, which is what (?m) does in the lines below).","commit_id":"e3da8bac1a824a2cc15234391020b68bbf98acaf"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"102a4166640944d74ee50d799ed4acf94919826a","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def test_help(self):"},{"line_number":48,"context_line":"        required \u003d ["},{"line_number":49,"context_line":"            \u0027.*?^usage: \u0027,"},{"line_number":50,"context_line":"            \u0027.*?(?m)^\\s+root-password\\s+Change the root password\u0027,"},{"line_number":51,"context_line":"            \u0027.*?(?m)^See \"nova help COMMAND\" for help on a specific command\u0027,"},{"line_number":52,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F0gQ%3D","line":49,"in_reply_to":"AAAAM3%2F%2F0u4%3D","updated":"2013-01-03 19:58:27.000000000","message":"The underlying regex method changes with assertThat/matchersMatchesRegex from re.search to re.match (or vice versa - meaning that we gain anchors where we didn\u0027t have them before ... let me try this without .*? or (?m) and see if it still works...","commit_id":"e3da8bac1a824a2cc15234391020b68bbf98acaf"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"64883a36f322ac4899a3c8f8e183753e695b22d5","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        help_text \u003d self.shell(\u0027help\u0027)"},{"line_number":54,"context_line":"        for r in required:"},{"line_number":55,"context_line":"            self.assertThat(help_text,"},{"line_number":56,"context_line":"                            matchers.MatchesRegex(r, re.DOTALL|re.MULTILINE))"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def test_help_on_subcommand(self):"},{"line_number":59,"context_line":"        required \u003d ["}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F0uU%3D","line":56,"updated":"2013-01-03 17:17:28.000000000","message":"By including re.MULTILINE, I think the \"(?m)\" group above becomes meaningless.  Also, I\u0027m surprised pep8 allows for there to be no spaces around the \u0027|\u0027 operator here; it complains about that for other arithmetic operators.  I\u0027d like to see spaces added against the possibility that it decides to start complaining about this construction in the future.","commit_id":"e3da8bac1a824a2cc15234391020b68bbf98acaf"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"102a4166640944d74ee50d799ed4acf94919826a","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        help_text \u003d self.shell(\u0027help\u0027)"},{"line_number":54,"context_line":"        for r in required:"},{"line_number":55,"context_line":"            self.assertThat(help_text,"},{"line_number":56,"context_line":"                            matchers.MatchesRegex(r, re.DOTALL|re.MULTILINE))"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def test_help_on_subcommand(self):"},{"line_number":59,"context_line":"        required \u003d ["}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F0gY%3D","line":56,"in_reply_to":"AAAAM3%2F%2F0uU%3D","updated":"2013-01-03 19:58:27.000000000","message":"Done","commit_id":"e3da8bac1a824a2cc15234391020b68bbf98acaf"}],"tests/v1_1/test_shell.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"64883a36f322ac4899a3c8f8e183753e695b22d5","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                                                         self.FAKE_ENV[var]))"},{"line_number":67,"context_line":"        self.shell \u003d self.useFixture(ShellFixture()).shell"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        #HACK(bcwaldon): replace this when we start using stubs"},{"line_number":70,"context_line":"        self.useFixture(fixtures.MonkeyPatch("},{"line_number":71,"context_line":"            \u0027novaclient.client.get_client_class\u0027,"},{"line_number":72,"context_line":"            lambda *_: fakes.FakeClient))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F0uQ%3D","line":69,"updated":"2013-01-03 17:17:28.000000000","message":"nit: I\u0027d eliminate this HACK(bcwaldon) now that we\u0027re essentially using stubs.","commit_id":"e3da8bac1a824a2cc15234391020b68bbf98acaf"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"102a4166640944d74ee50d799ed4acf94919826a","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                                                         self.FAKE_ENV[var]))"},{"line_number":67,"context_line":"        self.shell \u003d self.useFixture(ShellFixture()).shell"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        #HACK(bcwaldon): replace this when we start using stubs"},{"line_number":70,"context_line":"        self.useFixture(fixtures.MonkeyPatch("},{"line_number":71,"context_line":"            \u0027novaclient.client.get_client_class\u0027,"},{"line_number":72,"context_line":"            lambda *_: fakes.FakeClient))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F0gI%3D","line":69,"in_reply_to":"AAAAM3%2F%2F0uQ%3D","updated":"2013-01-03 19:58:27.000000000","message":"Done","commit_id":"e3da8bac1a824a2cc15234391020b68bbf98acaf"}]}
