)]}'
{"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":"a4b28729fd8e6ef5037d0dbcba47b3d1895792e4","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":"d0fb1a20_cb415c23","line":1208,"updated":"2026-08-25 18:42:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"b33744c4facad53aaa3aaf68655ef95e72a0c034"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a4b28729fd8e6ef5037d0dbcba47b3d1895792e4","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":"2efd99ba_44abb21e","line":1209,"updated":"2026-08-25 18:42:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"b33744c4facad53aaa3aaf68655ef95e72a0c034"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a4b28729fd8e6ef5037d0dbcba47b3d1895792e4","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":"d2b4bbf0_5c592a35","line":1210,"updated":"2026-08-25 18:42:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"b33744c4facad53aaa3aaf68655ef95e72a0c034"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a4b28729fd8e6ef5037d0dbcba47b3d1895792e4","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":"e5c5a5ec_bcbcbffa","line":1211,"updated":"2026-08-25 18:42:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"b33744c4facad53aaa3aaf68655ef95e72a0c034"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a4b28729fd8e6ef5037d0dbcba47b3d1895792e4","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":"7bb583f4_5e606874","line":1225,"updated":"2026-08-25 18:42:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"b33744c4facad53aaa3aaf68655ef95e72a0c034"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a4b28729fd8e6ef5037d0dbcba47b3d1895792e4","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":"640c19a4_d609840b","line":1226,"updated":"2026-08-25 18:42:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"b33744c4facad53aaa3aaf68655ef95e72a0c034"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a4b28729fd8e6ef5037d0dbcba47b3d1895792e4","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":"854f39fc_7f204389","line":1227,"updated":"2026-08-25 18:42:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"b33744c4facad53aaa3aaf68655ef95e72a0c034"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a4b28729fd8e6ef5037d0dbcba47b3d1895792e4","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":"d4d3aa8c_693a0707","line":1228,"updated":"2026-08-25 18:42:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"b33744c4facad53aaa3aaf68655ef95e72a0c034"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a4b28729fd8e6ef5037d0dbcba47b3d1895792e4","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":"2e6e226e_b0ed18df","line":1229,"updated":"2026-08-25 18:42:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"b33744c4facad53aaa3aaf68655ef95e72a0c034"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a4b28729fd8e6ef5037d0dbcba47b3d1895792e4","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":"675b273f_f6131645","line":1237,"updated":"2026-08-25 18:42:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"b33744c4facad53aaa3aaf68655ef95e72a0c034"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a4b28729fd8e6ef5037d0dbcba47b3d1895792e4","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":"18ef5ab0_f9c845ea","line":1238,"updated":"2026-08-25 18:42:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"b33744c4facad53aaa3aaf68655ef95e72a0c034"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a4b28729fd8e6ef5037d0dbcba47b3d1895792e4","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":"5462a645_e07a8ee2","line":1239,"updated":"2026-08-25 18:42:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"b33744c4facad53aaa3aaf68655ef95e72a0c034"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a4b28729fd8e6ef5037d0dbcba47b3d1895792e4","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":"6583a681_1bd0ccf8","line":1240,"updated":"2026-08-25 18:42:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"b33744c4facad53aaa3aaf68655ef95e72a0c034"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a4b28729fd8e6ef5037d0dbcba47b3d1895792e4","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":"3b33ae4f_72f7156c","line":1252,"updated":"2026-08-25 18:42:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"b33744c4facad53aaa3aaf68655ef95e72a0c034"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a4b28729fd8e6ef5037d0dbcba47b3d1895792e4","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":"4547def1_d8f3e96a","line":1253,"updated":"2026-08-25 18:42:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"b33744c4facad53aaa3aaf68655ef95e72a0c034"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a4b28729fd8e6ef5037d0dbcba47b3d1895792e4","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":"74b328a1_75b9e594","line":1254,"updated":"2026-08-25 18:42:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"b33744c4facad53aaa3aaf68655ef95e72a0c034"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a4b28729fd8e6ef5037d0dbcba47b3d1895792e4","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":"a581ad45_60f61d35","line":1255,"updated":"2026-08-25 18:42:35.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"b33744c4facad53aaa3aaf68655ef95e72a0c034"}]}
