)]}'
{"doc/source/cors.rst":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"fda8e0e6e367e2dadc0fc40b667737cb0b781342","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    expose_headers\u003dContent-Type,Cache-Control,Content-Language,Expires,Last-Modified,Pragma,X-Custom-Header"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Module Documentation"},{"line_number":110,"context_line":"--------------------"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a4dcd0f_7ee07296","line":108,"updated":"2015-08-06 14:13:33.000000000","message":"(nit) unrelated whitespace change","commit_id":"dd74a021637ff3a30e7ce2c09d27c83c12d9c8be"}],"oslo_middleware/cors.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"fda8e0e6e367e2dadc0fc40b667737cb0b781342","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            return response"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        # Compare request method to permitted methods (Section 6.2.5)"},{"line_number":288,"context_line":"        permitted_methods \u003d \\"},{"line_number":289,"context_line":"            cors_config[\u0027allow_methods\u0027] + self.latent_configuration[\u0027methods\u0027]"},{"line_number":290,"context_line":"        if request_method not in permitted_methods:"},{"line_number":291,"context_line":"            LOG.debug(\u0027Request method \\\u0027%s\\\u0027 not in permitted list: %s\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_defbc679","line":288,"updated":"2015-08-06 14:13:33.000000000","message":"you should use brackets instead of \\ to wrap lines","commit_id":"dd74a021637ff3a30e7ce2c09d27c83c12d9c8be"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"fda8e0e6e367e2dadc0fc40b667737cb0b781342","unresolved":false,"context_lines":[{"line_number":289,"context_line":"            cors_config[\u0027allow_methods\u0027] + self.latent_configuration[\u0027methods\u0027]"},{"line_number":290,"context_line":"        if request_method not in permitted_methods:"},{"line_number":291,"context_line":"            LOG.debug(\u0027Request method \\\u0027%s\\\u0027 not in permitted list: %s\u0027"},{"line_number":292,"context_line":"                      % (request_method, cors_config[\u0027allow_methods\u0027]))"},{"line_number":293,"context_line":"            return response"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        # Compare request headers to permitted headers, case-insensitively."}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_de574658","line":292,"updated":"2015-08-06 14:13:33.000000000","message":"s/cors_config[\u0027allow_methods\u0027]/permitted_methods/","commit_id":"dd74a021637ff3a30e7ce2c09d27c83c12d9c8be"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"58842a88ff81435d8d59045ad48c13f79805dc43","unresolved":false,"context_lines":[{"line_number":202,"context_line":"            if isinstance(allow_methods, list):"},{"line_number":203,"context_line":"                self.latent_configuration[\u0027methods\u0027] \u003d allow_methods"},{"line_number":204,"context_line":"            else:"},{"line_number":205,"context_line":"                raise TypeError(\"methods parameter must be a list or None.\")"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    def process_response(self, response, request\u003dNone):"},{"line_number":208,"context_line":"        \u0027\u0027\u0027Check for CORS headers, and decorate if necessary."}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_b8d84554","line":205,"updated":"2015-08-12 16:37:04.000000000","message":"(nit) not a big deal but the parameter is allow_methods, not methods","commit_id":"b5a51918bfe87ae05c76c4868f01a8bd5dee8081"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"2a7601fca414b8a56636295141a0473da6955e2f","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        \u0027\u0027\u0027Initialize this middleware from an oslo.config instance.\u0027\u0027\u0027"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        # Set up a location for our latent configuration options"},{"line_number":102,"context_line":"        self.latent_configuration \u003d {"},{"line_number":103,"context_line":"            \u0027allow_headers\u0027: [],"},{"line_number":104,"context_line":"            \u0027expose_headers\u0027: [],"},{"line_number":105,"context_line":"            \u0027methods\u0027: []"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_f6049918","line":102,"updated":"2015-08-12 19:39:03.000000000","message":"We might want to make this private by prefixing it with _ but that can happen in another patch.","commit_id":"3fbb59574ca3bceb42baa0847d146f471145ab31"}],"oslo_middleware/tests/test_cors.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"fda8e0e6e367e2dadc0fc40b667737cb0b781342","unresolved":false,"context_lines":[{"line_number":1018,"context_line":"        # Now that the config is set up, create our application."},{"line_number":1019,"context_line":"        self.application \u003d cors.CORS(test_application, cfg.CONF)"},{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def test_latent_methods(self):"},{"line_number":1022,"context_line":"        \"\"\"Assert that latent HTTP methods are permitted.\"\"\""},{"line_number":1023,"context_line":""},{"line_number":1024,"context_line":"        # Add headers to the application."}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_de418664","line":1021,"updated":"2015-08-06 14:13:33.000000000","message":"would be good to have negative test(s)? ie non-list input","commit_id":"dd74a021637ff3a30e7ce2c09d27c83c12d9c8be"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"fda8e0e6e367e2dadc0fc40b667737cb0b781342","unresolved":false,"context_lines":[{"line_number":1041,"context_line":"                                expose_headers\u003dNone)"},{"line_number":1042,"context_line":""},{"line_number":1043,"context_line":"    def test_latent_allow_headers(self):"},{"line_number":1044,"context_line":"        \"\"\"Assert that latent HTTP methods are permitted.\"\"\""},{"line_number":1045,"context_line":""},{"line_number":1046,"context_line":"        # Add headers to the application."},{"line_number":1047,"context_line":"        self.application.set_latent(allow_headers\u003d[\u0027X-Latent\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_5e91f6ef","line":1044,"updated":"2015-08-06 14:13:33.000000000","message":"copy/paste?","commit_id":"dd74a021637ff3a30e7ce2c09d27c83c12d9c8be"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"fda8e0e6e367e2dadc0fc40b667737cb0b781342","unresolved":false,"context_lines":[{"line_number":1065,"context_line":"                                expose_headers\u003dNone)"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"    def test_latent_expose_headers(self):"},{"line_number":1068,"context_line":"        \"\"\"Assert that latent HTTP methods are permitted.\"\"\""},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"        # Add headers to the application."},{"line_number":1071,"context_line":"        self.application.set_latent(allow_headers\u003dNone,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_3ec3caee","line":1068,"updated":"2015-08-06 14:13:33.000000000","message":"copy/paste?","commit_id":"dd74a021637ff3a30e7ce2c09d27c83c12d9c8be"}]}
