)]}'
{"keystone/tests/unit/test_v3.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"82b48fd95409be7073991a2a73bce31877fea81d","unresolved":false,"context_lines":[{"line_number":639,"context_line":"                voluptuous.Required(\u0027id\u0027): unicode or str,"},{"line_number":640,"context_line":"                voluptuous.Required(\u0027name\u0027): unicode or str"},{"line_number":641,"context_line":"            },"},{"line_number":642,"context_line":"            voluptuous.Required(\u0027roles\u0027): list,"},{"line_number":643,"context_line":"            voluptuous.Required(\u0027user\u0027): {"},{"line_number":644,"context_line":"                voluptuous.Required(\u0027domain\u0027): {"},{"line_number":645,"context_line":"                    voluptuous.Required(\u0027id\u0027): unicode or str,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_6f6ef030","line":642,"updated":"2015-12-05 11:14:34.000000000","message":"Role list contains id and name, doesn\u0027t it?\n\nI think we should make this check more accurate.","commit_id":"d74080bcadd8dca27a77c43713a6da668ca92d15"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"82b48fd95409be7073991a2a73bce31877fea81d","unresolved":false,"context_lines":[{"line_number":666,"context_line":""},{"line_number":667,"context_line":"        schema(token)"},{"line_number":668,"context_line":""},{"line_number":669,"context_line":"        # TODO(lbragstad): Find a way to build this check into the schema."},{"line_number":670,"context_line":"        self.assertEqual(self.role_id, token[\u0027roles\u0027][0][\u0027id\u0027])"},{"line_number":671,"context_line":""},{"line_number":672,"context_line":"        return token"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_2f78e8f1","line":669,"updated":"2015-12-05 11:14:34.000000000","message":"I don\u0027t think so, the schema is for asserting the format of the token, and that the expected keys are there. This is checking on a specific value of an attribute, hence doesn\u0027t belong to a schema check.\n\nDoes this make sense ?","commit_id":"d74080bcadd8dca27a77c43713a6da668ca92d15"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"67b5aff672374dd484544947f21b6438e214336c","unresolved":false,"context_lines":[{"line_number":679,"context_line":"                         \u0027user\u0027, \u0027project\u0027],"},{"line_number":680,"context_line":"            \u0027optional\u0027: [\u0027bind\u0027, \u0027catalog\u0027, \u0027OS-TRUST:trust\u0027,"},{"line_number":681,"context_line":"                         \u0027is_admin_project\u0027],"},{"line_number":682,"context_line":"            \u0027additionalProperties\u0027: False"},{"line_number":683,"context_line":"        }"},{"line_number":684,"context_line":"        validator_object \u003d validators.SchemaValidator("},{"line_number":685,"context_line":"            project_scoped_token_schema)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_cd98d41e","line":682,"updated":"2016-01-14 23:04:30.000000000","message":"Does this need to be included in more than one place? Like in each object level? Or does this apply all the way \"down\"?","commit_id":"6775f96aacfc590a0bc3268c6cefc96457c6d59a"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"4281ddc8d6c432c9c3cf5e088627ed33b3a1b8ed","unresolved":false,"context_lines":[{"line_number":644,"context_line":"        self.token_properties[\u0027is_admin_project\u0027] \u003d {\u0027type\u0027: [\u0027boolean\u0027]}"},{"line_number":645,"context_line":"        self.token_properties[\u0027catalog\u0027] \u003d {\u0027type\u0027: [\u0027array\u0027]}"},{"line_number":646,"context_line":"        self.token_properties[\u0027roles\u0027] \u003d {\u0027type\u0027: [\u0027array\u0027]}"},{"line_number":647,"context_line":"        self.token_properties[\u0027project\u0027] \u003d {"},{"line_number":648,"context_line":"            \u0027type\u0027: [\u0027object\u0027],"},{"line_number":649,"context_line":"            \u0027required\u0027: [\u0027id\u0027, \u0027name\u0027, \u0027domain\u0027],"},{"line_number":650,"context_line":"            \u0027properties\u0027: {"},{"line_number":651,"context_line":"                \u0027id\u0027: {\u0027type\u0027: [\u0027string\u0027]},"},{"line_number":652,"context_line":"                \u0027name\u0027: {\u0027type\u0027: [\u0027string\u0027]},"},{"line_number":653,"context_line":"                \u0027domain\u0027: {"},{"line_number":654,"context_line":"                    \u0027type\u0027: [\u0027object\u0027],"},{"line_number":655,"context_line":"                    \u0027required\u0027: [\u0027id\u0027, \u0027name\u0027],"},{"line_number":656,"context_line":"                    \u0027properties\u0027: {"},{"line_number":657,"context_line":"                        \u0027id\u0027: {\u0027type\u0027: [\u0027string\u0027]},"},{"line_number":658,"context_line":"                        \u0027name\u0027: {\u0027type\u0027: [\u0027string\u0027]}"},{"line_number":659,"context_line":"                    },"},{"line_number":660,"context_line":"                    \u0027additionalProperties\u0027: False"},{"line_number":661,"context_line":"                }"},{"line_number":662,"context_line":"            },"},{"line_number":663,"context_line":"            \u0027additionalProperties\u0027: False"},{"line_number":664,"context_line":"        }"},{"line_number":665,"context_line":""},{"line_number":666,"context_line":"        if token.get(\u0027OS-TRUST:trust\u0027):"},{"line_number":667,"context_line":"            self.token_properties[\u0027OS-TRUST:trust\u0027] \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_719195f0","line":664,"range":{"start_line":647,"start_character":0,"end_line":664,"end_character":9},"updated":"2016-01-24 09:50:42.000000000","message":"same here, this will cause the token schema grew by itself, and will fail to catch the creep data.\n\nI did a hack (valid domain after valid project response) and confirm this would happen if the testcase is run together.\n\nhttp://paste.openstack.org/show/484773/","commit_id":"2c28b8304a1bb2dc891e5cfc6940e465fe4f97c8"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"dacf6fe9a62b5daa23a127ece9d2dcc64b038a9a","unresolved":false,"context_lines":[{"line_number":663,"context_line":"            \u0027additionalProperties\u0027: False"},{"line_number":664,"context_line":"        }"},{"line_number":665,"context_line":""},{"line_number":666,"context_line":"        if token.get(\u0027OS-TRUST:trust\u0027):"},{"line_number":667,"context_line":"            self.token_properties[\u0027OS-TRUST:trust\u0027] \u003d {"},{"line_number":668,"context_line":"                \u0027type\u0027: [\u0027object\u0027],"},{"line_number":669,"context_line":"                \u0027required\u0027: [\u0027id\u0027, \u0027impersonation\u0027, \u0027trustor_user\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba63e191_1c0d3a37","line":666,"updated":"2016-01-19 20:37:21.000000000","message":"This looks like a substantial improvement in validation. Very nice!","commit_id":"2c28b8304a1bb2dc891e5cfc6940e465fe4f97c8"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"4281ddc8d6c432c9c3cf5e088627ed33b3a1b8ed","unresolved":false,"context_lines":[{"line_number":696,"context_line":"            \u0027properties\u0027: self.token_properties,"},{"line_number":697,"context_line":"            \u0027required\u0027: [\u0027audit_ids\u0027, \u0027expires_at\u0027, \u0027issued_at\u0027, \u0027methods\u0027,"},{"line_number":698,"context_line":"                         \u0027user\u0027, \u0027project\u0027],"},{"line_number":699,"context_line":"            \u0027optional\u0027: [\u0027bind\u0027, \u0027catalog\u0027, \u0027OS-TRUST:trust\u0027,"},{"line_number":700,"context_line":"                         \u0027is_admin_project\u0027],"},{"line_number":701,"context_line":"            \u0027additionalProperties\u0027: False"},{"line_number":702,"context_line":"        }"},{"line_number":703,"context_line":"        validator_object \u003d validators.SchemaValidator("}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_51c331ed","line":700,"range":{"start_line":699,"start_character":0,"end_line":700,"end_character":45},"updated":"2016-01-24 09:50:42.000000000","message":"seems pointless too since `required` has been defined, but good as it is.","commit_id":"2c28b8304a1bb2dc891e5cfc6940e465fe4f97c8"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"dacf6fe9a62b5daa23a127ece9d2dcc64b038a9a","unresolved":false,"context_lines":[{"line_number":698,"context_line":"                         \u0027user\u0027, \u0027project\u0027],"},{"line_number":699,"context_line":"            \u0027optional\u0027: [\u0027bind\u0027, \u0027catalog\u0027, \u0027OS-TRUST:trust\u0027,"},{"line_number":700,"context_line":"                         \u0027is_admin_project\u0027],"},{"line_number":701,"context_line":"            \u0027additionalProperties\u0027: False"},{"line_number":702,"context_line":"        }"},{"line_number":703,"context_line":"        validator_object \u003d validators.SchemaValidator("},{"line_number":704,"context_line":"            project_scoped_token_schema)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba63e191_1c13fa0e","line":701,"updated":"2016-01-19 20:37:21.000000000","message":"So its all the \u0027additionalProperties\u0027:False statements that prevent scope creep, correct?","commit_id":"2c28b8304a1bb2dc891e5cfc6940e465fe4f97c8"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"348b2f54da951747725dcb46dc06f7923b8fa744","unresolved":false,"context_lines":[{"line_number":698,"context_line":"                         \u0027user\u0027, \u0027project\u0027],"},{"line_number":699,"context_line":"            \u0027optional\u0027: [\u0027bind\u0027, \u0027catalog\u0027, \u0027OS-TRUST:trust\u0027,"},{"line_number":700,"context_line":"                         \u0027is_admin_project\u0027],"},{"line_number":701,"context_line":"            \u0027additionalProperties\u0027: False"},{"line_number":702,"context_line":"        }"},{"line_number":703,"context_line":"        validator_object \u003d validators.SchemaValidator("},{"line_number":704,"context_line":"            project_scoped_token_schema)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_a5a59447","line":701,"in_reply_to":"ba63e191_1c13fa0e","updated":"2016-01-23 13:07:34.000000000","message":"Exactly. Validation would fail if anything is found beyond what is described in the schema.","commit_id":"2c28b8304a1bb2dc891e5cfc6940e465fe4f97c8"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"eff80be50e8a89b953be0e2600aca2153f1637b9","unresolved":false,"context_lines":[{"line_number":659,"context_line":"                    \u0027type\u0027: \u0027string\u0027,"},{"line_number":660,"context_line":"                },"},{"line_number":661,"context_line":"            },"},{"line_number":662,"context_line":"            \u0027required\u0027: [\u0027kerberos\u0027],"},{"line_number":663,"context_line":"            \u0027additionalProperties\u0027: False,"},{"line_number":664,"context_line":"        }"},{"line_number":665,"context_line":"        project_scoped_properties[\u0027project\u0027] \u003d {"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_d6a6f70d","line":662,"range":{"start_line":662,"start_character":12,"end_line":662,"end_character":37},"updated":"2016-01-25 23:47:32.000000000","message":"kerberos bind is required for project scope?\n\nedit, nevermind, i see it","commit_id":"9f0e84e7cb6f7163f5858f17c061634bda916bcb"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"eff80be50e8a89b953be0e2600aca2153f1637b9","unresolved":false,"context_lines":[{"line_number":681,"context_line":"            \u0027additionalProperties\u0027: False"},{"line_number":682,"context_line":"        }"},{"line_number":683,"context_line":""},{"line_number":684,"context_line":"        if token.get(\u0027OS-TRUST:trust\u0027):"},{"line_number":685,"context_line":"            project_scoped_properties[\u0027OS-TRUST:trust\u0027] \u003d {"},{"line_number":686,"context_line":"                \u0027type\u0027: [\u0027object\u0027],"},{"line_number":687,"context_line":"                \u0027required\u0027: [\u0027id\u0027, \u0027impersonation\u0027, \u0027trustor_user\u0027,"},{"line_number":688,"context_line":"                             \u0027trustee_user\u0027],"},{"line_number":689,"context_line":"                \u0027properties\u0027: {"},{"line_number":690,"context_line":"                    \u0027id\u0027: {\u0027type\u0027: [\u0027string\u0027]},"},{"line_number":691,"context_line":"                    \u0027impersonation\u0027: {\u0027type\u0027: [\u0027boolean\u0027]},"},{"line_number":692,"context_line":"                    \u0027trustor_user\u0027: {"},{"line_number":693,"context_line":"                        \u0027type\u0027: [\u0027object\u0027],"},{"line_number":694,"context_line":"                        \u0027required\u0027: [\u0027id\u0027],"},{"line_number":695,"context_line":"                        \u0027properties\u0027: {"},{"line_number":696,"context_line":"                            \u0027id\u0027: {\u0027type\u0027: [\u0027string\u0027]}"},{"line_number":697,"context_line":"                        },"},{"line_number":698,"context_line":"                        \u0027additionalProperties\u0027: False"},{"line_number":699,"context_line":"                    },"},{"line_number":700,"context_line":"                    \u0027trustee_user\u0027: {"},{"line_number":701,"context_line":"                        \u0027type\u0027: [\u0027object\u0027],"},{"line_number":702,"context_line":"                        \u0027required\u0027: [\u0027id\u0027],"},{"line_number":703,"context_line":"                        \u0027properties\u0027: {"},{"line_number":704,"context_line":"                            \u0027id\u0027: {\u0027type\u0027: [\u0027string\u0027]}"},{"line_number":705,"context_line":"                        },"},{"line_number":706,"context_line":"                        \u0027additionalProperties\u0027: False"},{"line_number":707,"context_line":"                    }"},{"line_number":708,"context_line":"                },"},{"line_number":709,"context_line":"                \u0027additionalProperties\u0027: False"},{"line_number":710,"context_line":"            }"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        project_scoped_token_schema \u003d {"},{"line_number":713,"context_line":"            \u0027type\u0027: \u0027object\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_9694ff8a","line":710,"range":{"start_line":684,"start_character":8,"end_line":710,"end_character":13},"updated":"2016-01-25 23:47:32.000000000","message":"move this to line 729?","commit_id":"9f0e84e7cb6f7163f5858f17c061634bda916bcb"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"eff80be50e8a89b953be0e2600aca2153f1637b9","unresolved":false,"context_lines":[{"line_number":714,"context_line":"            \u0027properties\u0027: project_scoped_properties,"},{"line_number":715,"context_line":"            \u0027required\u0027: [\u0027audit_ids\u0027, \u0027expires_at\u0027, \u0027issued_at\u0027, \u0027methods\u0027,"},{"line_number":716,"context_line":"                         \u0027user\u0027, \u0027project\u0027],"},{"line_number":717,"context_line":"            \u0027optional\u0027: [\u0027bind\u0027, \u0027catalog\u0027, \u0027OS-TRUST:trust\u0027,"},{"line_number":718,"context_line":"                         \u0027is_admin_project\u0027],"},{"line_number":719,"context_line":"            \u0027additionalProperties\u0027: False"},{"line_number":720,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_f6ebfb10","line":717,"range":{"start_line":717,"start_character":26,"end_line":717,"end_character":31},"updated":"2016-01-25 23:47:32.000000000","message":"oh okay, this is optional","commit_id":"9f0e84e7cb6f7163f5858f17c061634bda916bcb"}],"keystone/tests/unit/test_v3_auth.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"4281ddc8d6c432c9c3cf5e088627ed33b3a1b8ed","unresolved":false,"context_lines":[{"line_number":507,"context_line":"        self.assertValidDomainScopedTokenResponse(r)"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"    def test_project_scoped_token_format(self):"},{"line_number":510,"context_line":"        # ensure project scoped token responses contains the appropriate data"},{"line_number":511,"context_line":"        project_scoped_token \u003d self.get_requested_token("},{"line_number":512,"context_line":"            self.build_authentication_request("},{"line_number":513,"context_line":"                user_id\u003dself.default_domain_user[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_11b93979","line":510,"updated":"2016-01-24 09:50:42.000000000","message":"Is it possible to add a negative testcase to test that there is creep data in the token response and jsonschema could capture this issue?","commit_id":"2c28b8304a1bb2dc891e5cfc6940e465fe4f97c8"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"aa9f77b1d4a675ca1d890290ae486a0947b2c54d","unresolved":false,"context_lines":[{"line_number":507,"context_line":"        self.assertValidDomainScopedTokenResponse(r)"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"    def test_project_scoped_token_format(self):"},{"line_number":510,"context_line":"        # ensure project scoped token responses contains the appropriate data"},{"line_number":511,"context_line":"        project_scoped_token \u003d self.get_requested_token("},{"line_number":512,"context_line":"            self.build_authentication_request("},{"line_number":513,"context_line":"                user_id\u003dself.default_domain_user[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_bda1ee95","line":510,"in_reply_to":"9a68dd71_11b93979","updated":"2016-01-25 18:16:45.000000000","message":"Done","commit_id":"2c28b8304a1bb2dc891e5cfc6940e465fe4f97c8"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"f661f0c0132192ec44771fa930ea6cd1b02c0170","unresolved":false,"context_lines":[{"line_number":483,"context_line":""},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"class TokenDataTests(object):"},{"line_number":486,"context_line":"    \"\"\"Test the data in specific token types.\"\"\""},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"    def test_unscoped_token_format(self):"},{"line_number":489,"context_line":"        # ensure the unscoped token response contains the appropriate data"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a5de9d1_55937aa3","line":486,"updated":"2016-01-28 20:23:00.000000000","message":"Could add test verifying a token contains correct values when using a trust token.","commit_id":"fe14d330c7a5528a7a78c0445567845d62d3b2c0"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"90a8cce73471167dc095e02c46a7db3faec1e6af","unresolved":false,"context_lines":[{"line_number":483,"context_line":""},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"class TokenDataTests(object):"},{"line_number":486,"context_line":"    \"\"\"Test the data in specific token types.\"\"\""},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"    def test_unscoped_token_format(self):"},{"line_number":489,"context_line":"        # ensure the unscoped token response contains the appropriate data"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a5de9d1_f55626d1","line":486,"in_reply_to":"7a5de9d1_55937aa3","updated":"2016-01-28 20:25:11.000000000","message":"Nvm, done in the following patch.","commit_id":"fe14d330c7a5528a7a78c0445567845d62d3b2c0"}]}
