)]}'
{"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0f51ef4acf02263b37d78485175706b7965b7eb4","unresolved":false,"context_lines":[{"line_number":2349,"context_line":"        except re.error:"},{"line_number":2350,"context_line":"            query \u003d _exact_instance_filter("},{"line_number":2351,"context_line":"                                 query, filters.copy(), [filter_name])"},{"line_number":2352,"context_line":"            continue"},{"line_number":2353,"context_line":"        if db_regexp_op \u003d\u003d \u0027LIKE\u0027:"},{"line_number":2354,"context_line":"            query \u003d query.filter(column_attr.op(db_regexp_op)("},{"line_number":2355,"context_line":"                                 u\u0027%\u0027 + filter_val + u\u0027%\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a77a97e_360f9f89","line":2352,"updated":"2016-11-22 18:06:25.000000000","message":"Nit: not sure I like the continue here. I think it makes it hard to read what changes are made to the filter.\n\nCould we instead use \"try/except/else\"? I think that shows the structure of the choice here better.","commit_id":"18f28af299a918654742f9bfc92d1915f5c00b3a"}],"nova/tests/unit/api/openstack/compute/test_serversV21.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0f51ef4acf02263b37d78485175706b7965b7eb4","unresolved":false,"context_lines":[{"line_number":588,"context_line":"        self.assertEqual(0, num_servers)"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":"    def test_get_server_details_with_bad_name(self):"},{"line_number":591,"context_line":"        req \u003d self.req(\u0027/fake/servers/detail?name\u003d%2Binstance\u0027)"},{"line_number":592,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":593,"context_line":"                          self.controller.index, req)"},{"line_number":594,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a77a97e_560c1b42","side":"PARENT","line":591,"range":{"start_line":591,"start_character":50,"end_line":591,"end_character":61},"updated":"2016-11-22 18:06:25.000000000","message":"if you add a space at the beginning, I think that would give you the invalid name, if you wanted to test an invalid name still?","commit_id":"f98e4aa5b70312cb75d5db92e9ab862ffcab1ca3"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5b7ea2279bca8420d23b24d0f353ea0686770fe1","unresolved":false,"context_lines":[{"line_number":599,"context_line":"                objects\u003d[fakes.stub_instance_obj(100, uuid\u003dserver_uuid)])"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"        req \u003d self.req(\u0027/fake/servers/detail?name\u003d%2Binstance\u0027)"},{"line_number":602,"context_line":"        self.stubs.Set(compute_api.API, \u0027get_all\u0027, fake_get_all)"},{"line_number":603,"context_line":"        servers \u003d self.controller.index(req)[\u0027servers\u0027]"},{"line_number":604,"context_line":"        self.assertEqual(len(servers), 1)"},{"line_number":605,"context_line":"        self.assertEqual(servers[0][\u0027id\u0027], server_uuid)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a71b18c_af5f770d","line":602,"updated":"2016-12-12 15:02:43.000000000","message":"Nit: Ideally we wouldn\u0027t stub this out, but it does follow the pattern above.","commit_id":"f54574e107effcc63530a94c0ce7906aa8d6f659"}],"nova/tests/unit/db/test_db_api.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0f51ef4acf02263b37d78485175706b7965b7eb4","unresolved":false,"context_lines":[{"line_number":1256,"context_line":"                              sort_keys\u003dkeys)"},{"line_number":1257,"context_line":""},{"line_number":1258,"context_line":"    def test_instance_get_all_by_filters_with_invalidregex(self):"},{"line_number":1259,"context_line":"        inst_name \u003d \u0027+\u0027"},{"line_number":1260,"context_line":"        self.create_instance_with_args(display_name\u003dinst_name)"},{"line_number":1261,"context_line":"        filters \u003d {\u0027display_name\u0027: inst_name}"},{"line_number":1262,"context_line":"        result \u003d db.instance_get_all_by_filters(self.context, filters)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a77a97e_c95deced","line":1259,"range":{"start_line":1259,"start_character":8,"end_line":1259,"end_character":17},"updated":"2016-11-22 18:06:25.000000000","message":"Micro Nit: I would go for invalid_regex_name, so its clear what is being tested\n\nIn general though, totally loving seeing this test here.","commit_id":"18f28af299a918654742f9bfc92d1915f5c00b3a"}]}
