)]}'
{"keystone/tests/unit/test_v3_trust.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a798b97dddc3b11a5fcc114d2a81b6154e88b2e9","unresolved":false,"context_lines":[{"line_number":1205,"context_line":"        return token"},{"line_number":1206,"context_line":""},{"line_number":1207,"context_line":"    def test_rejects_empty_methods(self):"},{"line_number":1208,"context_line":"        \"\"\"The fernet round-trip gap: ec2credential/oauth2_credential have"},{"line_number":1209,"context_line":"        no bit in the method bitmask, so a token carrying only one of"},{"line_number":1210,"context_line":"        those decodes back to an empty list on any cache miss."},{"line_number":1211,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"84f15603_31a6d0e6","line":1208,"updated":"2026-08-25 18:42:34.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"d719264b44bbd87fe4e880619d9af9b9b7be8350"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a798b97dddc3b11a5fcc114d2a81b6154e88b2e9","unresolved":false,"context_lines":[{"line_number":1206,"context_line":""},{"line_number":1207,"context_line":"    def test_rejects_empty_methods(self):"},{"line_number":1208,"context_line":"        \"\"\"The fernet round-trip gap: ec2credential/oauth2_credential have"},{"line_number":1209,"context_line":"        no bit in the method bitmask, so a token carrying only one of"},{"line_number":1210,"context_line":"        those decodes back to an empty list on any cache miss."},{"line_number":1211,"context_line":"        \"\"\""},{"line_number":1212,"context_line":"        self.assertTrue(delegation.is_delegated_method(self._token([])))"}],"source_content_type":"text/x-python","patch_set":2,"id":"00688a22_06dbb9dd","line":1209,"updated":"2026-08-25 18:42:34.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"d719264b44bbd87fe4e880619d9af9b9b7be8350"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a798b97dddc3b11a5fcc114d2a81b6154e88b2e9","unresolved":false,"context_lines":[{"line_number":1207,"context_line":"    def test_rejects_empty_methods(self):"},{"line_number":1208,"context_line":"        \"\"\"The fernet round-trip gap: ec2credential/oauth2_credential have"},{"line_number":1209,"context_line":"        no bit in the method bitmask, so a token carrying only one of"},{"line_number":1210,"context_line":"        those decodes back to an empty list on any cache miss."},{"line_number":1211,"context_line":"        \"\"\""},{"line_number":1212,"context_line":"        self.assertTrue(delegation.is_delegated_method(self._token([])))"},{"line_number":1213,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"52617932_782d0a3a","line":1210,"updated":"2026-08-25 18:42:34.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"d719264b44bbd87fe4e880619d9af9b9b7be8350"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a798b97dddc3b11a5fcc114d2a81b6154e88b2e9","unresolved":false,"context_lines":[{"line_number":1208,"context_line":"        \"\"\"The fernet round-trip gap: ec2credential/oauth2_credential have"},{"line_number":1209,"context_line":"        no bit in the method bitmask, so a token carrying only one of"},{"line_number":1210,"context_line":"        those decodes back to an empty list on any cache miss."},{"line_number":1211,"context_line":"        \"\"\""},{"line_number":1212,"context_line":"        self.assertTrue(delegation.is_delegated_method(self._token([])))"},{"line_number":1213,"context_line":""},{"line_number":1214,"context_line":"    def test_allows_builtin_primary_method(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"f824213e_d5fba4e6","line":1211,"updated":"2026-08-25 18:42:34.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"d719264b44bbd87fe4e880619d9af9b9b7be8350"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a798b97dddc3b11a5fcc114d2a81b6154e88b2e9","unresolved":false,"context_lines":[{"line_number":1222,"context_line":"        )"},{"line_number":1223,"context_line":""},{"line_number":1224,"context_line":"    def test_rejects_unknown_future_method_by_default(self):"},{"line_number":1225,"context_line":"        \"\"\"Deny-by-default: a brand new, unreviewed method name must be"},{"line_number":1226,"context_line":"        treated as delegated until an operator or a future patch"},{"line_number":1227,"context_line":"        explicitly allowlists it -- this is the property an"},{"line_number":1228,"context_line":"        allow-by-default denylist design would not have."}],"source_content_type":"text/x-python","patch_set":2,"id":"932de8f5_e2954906","line":1225,"updated":"2026-08-25 18:42:34.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"d719264b44bbd87fe4e880619d9af9b9b7be8350"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a798b97dddc3b11a5fcc114d2a81b6154e88b2e9","unresolved":false,"context_lines":[{"line_number":1223,"context_line":""},{"line_number":1224,"context_line":"    def test_rejects_unknown_future_method_by_default(self):"},{"line_number":1225,"context_line":"        \"\"\"Deny-by-default: a brand new, unreviewed method name must be"},{"line_number":1226,"context_line":"        treated as delegated until an operator or a future patch"},{"line_number":1227,"context_line":"        explicitly allowlists it -- this is the property an"},{"line_number":1228,"context_line":"        allow-by-default denylist design would not have."},{"line_number":1229,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"2e0172dc_04cb3d7a","line":1226,"updated":"2026-08-25 18:42:34.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"d719264b44bbd87fe4e880619d9af9b9b7be8350"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a798b97dddc3b11a5fcc114d2a81b6154e88b2e9","unresolved":false,"context_lines":[{"line_number":1224,"context_line":"    def test_rejects_unknown_future_method_by_default(self):"},{"line_number":1225,"context_line":"        \"\"\"Deny-by-default: a brand new, unreviewed method name must be"},{"line_number":1226,"context_line":"        treated as delegated until an operator or a future patch"},{"line_number":1227,"context_line":"        explicitly allowlists it -- this is the property an"},{"line_number":1228,"context_line":"        allow-by-default denylist design would not have."},{"line_number":1229,"context_line":"        \"\"\""},{"line_number":1230,"context_line":"        self.assertTrue("}],"source_content_type":"text/x-python","patch_set":2,"id":"ea9f8d71_8fc83032","line":1227,"updated":"2026-08-25 18:42:34.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"d719264b44bbd87fe4e880619d9af9b9b7be8350"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a798b97dddc3b11a5fcc114d2a81b6154e88b2e9","unresolved":false,"context_lines":[{"line_number":1225,"context_line":"        \"\"\"Deny-by-default: a brand new, unreviewed method name must be"},{"line_number":1226,"context_line":"        treated as delegated until an operator or a future patch"},{"line_number":1227,"context_line":"        explicitly allowlists it -- this is the property an"},{"line_number":1228,"context_line":"        allow-by-default denylist design would not have."},{"line_number":1229,"context_line":"        \"\"\""},{"line_number":1230,"context_line":"        self.assertTrue("},{"line_number":1231,"context_line":"            delegation.is_delegated_method("}],"source_content_type":"text/x-python","patch_set":2,"id":"c75e7139_b50638cf","line":1228,"updated":"2026-08-25 18:42:34.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"d719264b44bbd87fe4e880619d9af9b9b7be8350"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a798b97dddc3b11a5fcc114d2a81b6154e88b2e9","unresolved":false,"context_lines":[{"line_number":1226,"context_line":"        treated as delegated until an operator or a future patch"},{"line_number":1227,"context_line":"        explicitly allowlists it -- this is the property an"},{"line_number":1228,"context_line":"        allow-by-default denylist design would not have."},{"line_number":1229,"context_line":"        \"\"\""},{"line_number":1230,"context_line":"        self.assertTrue("},{"line_number":1231,"context_line":"            delegation.is_delegated_method("},{"line_number":1232,"context_line":"                self._token([\u0027some_future_delegated_method\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"d69cd9f4_cdfccdb6","line":1229,"updated":"2026-08-25 18:42:34.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"d719264b44bbd87fe4e880619d9af9b9b7be8350"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a798b97dddc3b11a5fcc114d2a81b6154e88b2e9","unresolved":false,"context_lines":[{"line_number":1234,"context_line":"        )"},{"line_number":1235,"context_line":""},{"line_number":1236,"context_line":"    def test_additional_primary_auth_methods_allows_custom_plugin(self):"},{"line_number":1237,"context_line":"        \"\"\"An operator-registered custom auth plugin (e.g. a site-specific"},{"line_number":1238,"context_line":"        SSO integration) is not mistaken for a delegated credential once"},{"line_number":1239,"context_line":"        listed in [auth] additional_primary_auth_methods."},{"line_number":1240,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"6c1f2307_28cd6385","line":1237,"updated":"2026-08-25 18:42:34.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"d719264b44bbd87fe4e880619d9af9b9b7be8350"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a798b97dddc3b11a5fcc114d2a81b6154e88b2e9","unresolved":false,"context_lines":[{"line_number":1235,"context_line":""},{"line_number":1236,"context_line":"    def test_additional_primary_auth_methods_allows_custom_plugin(self):"},{"line_number":1237,"context_line":"        \"\"\"An operator-registered custom auth plugin (e.g. a site-specific"},{"line_number":1238,"context_line":"        SSO integration) is not mistaken for a delegated credential once"},{"line_number":1239,"context_line":"        listed in [auth] additional_primary_auth_methods."},{"line_number":1240,"context_line":"        \"\"\""},{"line_number":1241,"context_line":"        CONF.set_override("}],"source_content_type":"text/x-python","patch_set":2,"id":"2c9822de_2fe9444a","line":1238,"updated":"2026-08-25 18:42:34.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"d719264b44bbd87fe4e880619d9af9b9b7be8350"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a798b97dddc3b11a5fcc114d2a81b6154e88b2e9","unresolved":false,"context_lines":[{"line_number":1236,"context_line":"    def test_additional_primary_auth_methods_allows_custom_plugin(self):"},{"line_number":1237,"context_line":"        \"\"\"An operator-registered custom auth plugin (e.g. a site-specific"},{"line_number":1238,"context_line":"        SSO integration) is not mistaken for a delegated credential once"},{"line_number":1239,"context_line":"        listed in [auth] additional_primary_auth_methods."},{"line_number":1240,"context_line":"        \"\"\""},{"line_number":1241,"context_line":"        CONF.set_override("},{"line_number":1242,"context_line":"            \u0027additional_primary_auth_methods\u0027, [\u0027sso\u0027], group\u003d\u0027auth\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"17272b9b_a2d6efa5","line":1239,"updated":"2026-08-25 18:42:34.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"d719264b44bbd87fe4e880619d9af9b9b7be8350"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a798b97dddc3b11a5fcc114d2a81b6154e88b2e9","unresolved":false,"context_lines":[{"line_number":1237,"context_line":"        \"\"\"An operator-registered custom auth plugin (e.g. a site-specific"},{"line_number":1238,"context_line":"        SSO integration) is not mistaken for a delegated credential once"},{"line_number":1239,"context_line":"        listed in [auth] additional_primary_auth_methods."},{"line_number":1240,"context_line":"        \"\"\""},{"line_number":1241,"context_line":"        CONF.set_override("},{"line_number":1242,"context_line":"            \u0027additional_primary_auth_methods\u0027, [\u0027sso\u0027], group\u003d\u0027auth\u0027"},{"line_number":1243,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"450f75b7_8c337b35","line":1240,"updated":"2026-08-25 18:42:34.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"d719264b44bbd87fe4e880619d9af9b9b7be8350"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a798b97dddc3b11a5fcc114d2a81b6154e88b2e9","unresolved":false,"context_lines":[{"line_number":1249,"context_line":"            delegation.is_delegated_method(self._token([\u0027sso\u0027]))"},{"line_number":1250,"context_line":"        )"},{"line_number":1251,"context_line":""},{"line_number":1252,"context_line":"    def test_unlisted_custom_plugin_still_denied_by_default(self):"},{"line_number":1253,"context_line":"        \"\"\"Without the config option set, the same custom method is still"},{"line_number":1254,"context_line":"        denied -- adding the extension point does not weaken the default"},{"line_number":1255,"context_line":"        posture for anyone who hasn\u0027t opted in."}],"source_content_type":"text/x-python","patch_set":2,"id":"6c4f0550_008ae195","line":1252,"updated":"2026-08-25 18:42:34.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"d719264b44bbd87fe4e880619d9af9b9b7be8350"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a798b97dddc3b11a5fcc114d2a81b6154e88b2e9","unresolved":false,"context_lines":[{"line_number":1250,"context_line":"        )"},{"line_number":1251,"context_line":""},{"line_number":1252,"context_line":"    def test_unlisted_custom_plugin_still_denied_by_default(self):"},{"line_number":1253,"context_line":"        \"\"\"Without the config option set, the same custom method is still"},{"line_number":1254,"context_line":"        denied -- adding the extension point does not weaken the default"},{"line_number":1255,"context_line":"        posture for anyone who hasn\u0027t opted in."},{"line_number":1256,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"ac6686c4_f7d0c9f6","line":1253,"updated":"2026-08-25 18:42:34.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"d719264b44bbd87fe4e880619d9af9b9b7be8350"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a798b97dddc3b11a5fcc114d2a81b6154e88b2e9","unresolved":false,"context_lines":[{"line_number":1251,"context_line":""},{"line_number":1252,"context_line":"    def test_unlisted_custom_plugin_still_denied_by_default(self):"},{"line_number":1253,"context_line":"        \"\"\"Without the config option set, the same custom method is still"},{"line_number":1254,"context_line":"        denied -- adding the extension point does not weaken the default"},{"line_number":1255,"context_line":"        posture for anyone who hasn\u0027t opted in."},{"line_number":1256,"context_line":"        \"\"\""},{"line_number":1257,"context_line":"        self.assertTrue("}],"source_content_type":"text/x-python","patch_set":2,"id":"87a2a569_b6d46f5a","line":1254,"updated":"2026-08-25 18:42:34.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"d719264b44bbd87fe4e880619d9af9b9b7be8350"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a798b97dddc3b11a5fcc114d2a81b6154e88b2e9","unresolved":false,"context_lines":[{"line_number":1252,"context_line":"    def test_unlisted_custom_plugin_still_denied_by_default(self):"},{"line_number":1253,"context_line":"        \"\"\"Without the config option set, the same custom method is still"},{"line_number":1254,"context_line":"        denied -- adding the extension point does not weaken the default"},{"line_number":1255,"context_line":"        posture for anyone who hasn\u0027t opted in."},{"line_number":1256,"context_line":"        \"\"\""},{"line_number":1257,"context_line":"        self.assertTrue("},{"line_number":1258,"context_line":"            delegation.is_delegated_method(self._token([\u0027sso\u0027]))"}],"source_content_type":"text/x-python","patch_set":2,"id":"86ffb0a7_ea3af6aa","line":1255,"updated":"2026-08-25 18:42:34.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"d719264b44bbd87fe4e880619d9af9b9b7be8350"}]}
