)]}'
{"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":"e31d4ac564141352f20eac40d667f4d4b36e44e2","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":1,"id":"d1aa93c8_cc0a6938","line":1208,"updated":"2026-08-25 17:01:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"695056d21ff317e7ef6d4687b1d0ab2cafd38ceb"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e31d4ac564141352f20eac40d667f4d4b36e44e2","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":1,"id":"df970bba_998ac63c","line":1209,"updated":"2026-08-25 17:01:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"695056d21ff317e7ef6d4687b1d0ab2cafd38ceb"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e31d4ac564141352f20eac40d667f4d4b36e44e2","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":1,"id":"acf33177_e98dfcc1","line":1210,"updated":"2026-08-25 17:01:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"695056d21ff317e7ef6d4687b1d0ab2cafd38ceb"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e31d4ac564141352f20eac40d667f4d4b36e44e2","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":1,"id":"840dd51d_5de15977","line":1211,"updated":"2026-08-25 17:01:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"695056d21ff317e7ef6d4687b1d0ab2cafd38ceb"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e31d4ac564141352f20eac40d667f4d4b36e44e2","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":1,"id":"19c76010_2a78846c","line":1225,"updated":"2026-08-25 17:01:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"695056d21ff317e7ef6d4687b1d0ab2cafd38ceb"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e31d4ac564141352f20eac40d667f4d4b36e44e2","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":1,"id":"0e89ef06_9984b4c3","line":1226,"updated":"2026-08-25 17:01:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"695056d21ff317e7ef6d4687b1d0ab2cafd38ceb"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e31d4ac564141352f20eac40d667f4d4b36e44e2","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":1,"id":"dcd25aa8_2fb1323e","line":1227,"updated":"2026-08-25 17:01:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"695056d21ff317e7ef6d4687b1d0ab2cafd38ceb"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e31d4ac564141352f20eac40d667f4d4b36e44e2","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":1,"id":"12c3c2b6_a490dd15","line":1228,"updated":"2026-08-25 17:01:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"695056d21ff317e7ef6d4687b1d0ab2cafd38ceb"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e31d4ac564141352f20eac40d667f4d4b36e44e2","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":1,"id":"7f5572bb_c19d93a1","line":1229,"updated":"2026-08-25 17:01:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"695056d21ff317e7ef6d4687b1d0ab2cafd38ceb"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e31d4ac564141352f20eac40d667f4d4b36e44e2","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":1,"id":"6f8d38c4_a7060d35","line":1237,"updated":"2026-08-25 17:01:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"695056d21ff317e7ef6d4687b1d0ab2cafd38ceb"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e31d4ac564141352f20eac40d667f4d4b36e44e2","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":1,"id":"efe2dcce_2efc9281","line":1238,"updated":"2026-08-25 17:01:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"695056d21ff317e7ef6d4687b1d0ab2cafd38ceb"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e31d4ac564141352f20eac40d667f4d4b36e44e2","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":1,"id":"2065d32c_b9284604","line":1239,"updated":"2026-08-25 17:01:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"695056d21ff317e7ef6d4687b1d0ab2cafd38ceb"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e31d4ac564141352f20eac40d667f4d4b36e44e2","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":1,"id":"b792a833_26a18345","line":1240,"updated":"2026-08-25 17:01:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"695056d21ff317e7ef6d4687b1d0ab2cafd38ceb"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e31d4ac564141352f20eac40d667f4d4b36e44e2","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":1,"id":"30fa21e6_1a8cf9d3","line":1252,"updated":"2026-08-25 17:01:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"695056d21ff317e7ef6d4687b1d0ab2cafd38ceb"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e31d4ac564141352f20eac40d667f4d4b36e44e2","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":1,"id":"5b7216a8_f3a8d6fb","line":1253,"updated":"2026-08-25 17:01:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"695056d21ff317e7ef6d4687b1d0ab2cafd38ceb"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e31d4ac564141352f20eac40d667f4d4b36e44e2","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":1,"id":"61483cd7_f0130679","line":1254,"updated":"2026-08-25 17:01:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"695056d21ff317e7ef6d4687b1d0ab2cafd38ceb"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e31d4ac564141352f20eac40d667f4d4b36e44e2","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":1,"id":"da9469c0_a8412e52","line":1255,"updated":"2026-08-25 17:01:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"695056d21ff317e7ef6d4687b1d0ab2cafd38ceb"}]}
