)]}'
{"oslo_policy/policy.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"be465ac7cd4f2b9e91aa5e254dd98a858d4600c2","unresolved":false,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"The following classes can be used as parents for custom special check types:"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    * :class:`AndCheck \u003coslo_policy.policy.AndCheck\u003e`"},{"line_number":135,"context_line":"    * :class:`NotCheck \u003coslo_policy.policy.NotCheck\u003e`"},{"line_number":136,"context_line":"    * :class:`OrCheck \u003coslo_policy.policy.OrCheck\u003e`"},{"line_number":137,"context_line":"    * :class:`RuleCheck \u003coslo_policy.policy.RuleCheck\u003e`"}],"source_content_type":"text/x-python","patch_set":2,"id":"7ad32947_f3431c6b","line":134,"updated":"2015-04-27 23:16:29.000000000","message":"should be able to do :class:`~oslo_policy.policy.AndCheck`\n\nThese links don\u0027t work.","commit_id":"70bd18cafb7b310e3859255c4fe663eeccc23885"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"146b11271db9bfa7697c4435e3f21736fa4e6813","unresolved":false,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"The following classes can be used as parents for custom special check types:"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    * :class:`AndCheck \u003coslo_policy.policy.AndCheck\u003e`"},{"line_number":135,"context_line":"    * :class:`NotCheck \u003coslo_policy.policy.NotCheck\u003e`"},{"line_number":136,"context_line":"    * :class:`OrCheck \u003coslo_policy.policy.OrCheck\u003e`"},{"line_number":137,"context_line":"    * :class:`RuleCheck \u003coslo_policy.policy.RuleCheck\u003e`"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a0c5dc1_6752b3df","line":134,"in_reply_to":"7ad32947_f3431c6b","updated":"2015-05-12 15:44:52.000000000","message":"It does not help either. I suspect that\u0027s because API docs for those classes are not generated at all. Should I remove \"links\"?","commit_id":"70bd18cafb7b310e3859255c4fe663eeccc23885"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"399ce5a66530934a2328905f30fd5578c1eda5cd","unresolved":false,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"The following classes can be used as parents for custom special check types:"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    * :class:`~oslo_policy.policy.AndCheck`"},{"line_number":135,"context_line":"    * :class:`~oslo_policy.policy.NotCheck`"},{"line_number":136,"context_line":"    * :class:`~oslo_policy.policy.OrCheck`"},{"line_number":137,"context_line":"    * :class:`~oslo_policy.policy.RuleCheck`"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_25870f63","line":134,"updated":"2015-05-14 16:00:14.000000000","message":"You might need to add specific directives before these have anything to link to, e.g., adding something like\n\n    .. autoclass:: oslo_policy.policy.AndCheck\n\nI don\u0027t think sphinx will generate docs for something just because you created a link for it. And if it isn\u0027t documented in the module directly (via comment or doc-string), it won\u0027t document the symbol for you.","commit_id":"33c0a66145c4e2cf92390b329030f5058bf335ef"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"fd69121906048152d7c10254233f5980213207aa","unresolved":false,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"The following classes can be used as parents for custom special check types:"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    * :class:`~oslo_policy.policy.AndCheck`"},{"line_number":135,"context_line":"    * :class:`~oslo_policy.policy.NotCheck`"},{"line_number":136,"context_line":"    * :class:`~oslo_policy.policy.OrCheck`"},{"line_number":137,"context_line":"    * :class:`~oslo_policy.policy.RuleCheck`"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_225c894a","line":134,"in_reply_to":"7a016987_25870f63","updated":"2015-05-15 08:21:51.000000000","message":"Done","commit_id":"33c0a66145c4e2cf92390b329030f5058bf335ef"}],"oslo_policy/tests/test_policy.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d267dea40f2fa82d33b8d014d30433a4671f8f18","unresolved":false,"context_lines":[{"line_number":496,"context_line":"class BaseCheckTypesTestCase(base.PolicyBaseTestCase):"},{"line_number":497,"context_line":""},{"line_number":498,"context_line":"    @mock.patch.object(_checks, \u0027registered_checks\u0027, {})"},{"line_number":499,"context_line":"    def test_base_check_types_are_public(self):"},{"line_number":500,"context_line":"        for check_type in (\u0027and\u0027, \u0027not\u0027, \u0027or\u0027, \u0027rule\u0027):"},{"line_number":501,"context_line":"            class TestCheck(getattr(policy, check_type.title() + \u0027Check\u0027)):"},{"line_number":502,"context_line":"                pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_6a793c93","line":499,"updated":"2015-04-23 15:35:05.000000000","message":"a docstring here would be nice, to explain why we are checking only these types","commit_id":"70bd18cafb7b310e3859255c4fe663eeccc23885"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"146b11271db9bfa7697c4435e3f21736fa4e6813","unresolved":false,"context_lines":[{"line_number":496,"context_line":"class BaseCheckTypesTestCase(base.PolicyBaseTestCase):"},{"line_number":497,"context_line":""},{"line_number":498,"context_line":"    @mock.patch.object(_checks, \u0027registered_checks\u0027, {})"},{"line_number":499,"context_line":"    def test_base_check_types_are_public(self):"},{"line_number":500,"context_line":"        for check_type in (\u0027and\u0027, \u0027not\u0027, \u0027or\u0027, \u0027rule\u0027):"},{"line_number":501,"context_line":"            class TestCheck(getattr(policy, check_type.title() + \u0027Check\u0027)):"},{"line_number":502,"context_line":"                pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a0c5dc1_27e27bd6","line":499,"in_reply_to":"bab921fb_6a793c93","updated":"2015-05-12 15:44:52.000000000","message":"Done","commit_id":"70bd18cafb7b310e3859255c4fe663eeccc23885"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d267dea40f2fa82d33b8d014d30433a4671f8f18","unresolved":false,"context_lines":[{"line_number":497,"context_line":""},{"line_number":498,"context_line":"    @mock.patch.object(_checks, \u0027registered_checks\u0027, {})"},{"line_number":499,"context_line":"    def test_base_check_types_are_public(self):"},{"line_number":500,"context_line":"        for check_type in (\u0027and\u0027, \u0027not\u0027, \u0027or\u0027, \u0027rule\u0027):"},{"line_number":501,"context_line":"            class TestCheck(getattr(policy, check_type.title() + \u0027Check\u0027)):"},{"line_number":502,"context_line":"                pass"},{"line_number":503,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_aa3194ee","line":500,"updated":"2015-04-23 15:35:05.000000000","message":"I wouldn\u0027t be against writing these all out as:\n\n  AndCheck, NotCheck, OrCheck, RuleCheck\n\ninstead of using .title()","commit_id":"70bd18cafb7b310e3859255c4fe663eeccc23885"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"146b11271db9bfa7697c4435e3f21736fa4e6813","unresolved":false,"context_lines":[{"line_number":497,"context_line":""},{"line_number":498,"context_line":"    @mock.patch.object(_checks, \u0027registered_checks\u0027, {})"},{"line_number":499,"context_line":"    def test_base_check_types_are_public(self):"},{"line_number":500,"context_line":"        for check_type in (\u0027and\u0027, \u0027not\u0027, \u0027or\u0027, \u0027rule\u0027):"},{"line_number":501,"context_line":"            class TestCheck(getattr(policy, check_type.title() + \u0027Check\u0027)):"},{"line_number":502,"context_line":"                pass"},{"line_number":503,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a0c5dc1_874927d3","line":500,"in_reply_to":"bab921fb_575ccd24","updated":"2015-05-12 15:44:52.000000000","message":"Done","commit_id":"70bd18cafb7b310e3859255c4fe663eeccc23885"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"cc14854a9ba99639f0ea8f807426cf9812ef804e","unresolved":false,"context_lines":[{"line_number":497,"context_line":""},{"line_number":498,"context_line":"    @mock.patch.object(_checks, \u0027registered_checks\u0027, {})"},{"line_number":499,"context_line":"    def test_base_check_types_are_public(self):"},{"line_number":500,"context_line":"        for check_type in (\u0027and\u0027, \u0027not\u0027, \u0027or\u0027, \u0027rule\u0027):"},{"line_number":501,"context_line":"            class TestCheck(getattr(policy, check_type.title() + \u0027Check\u0027)):"},{"line_number":502,"context_line":"                pass"},{"line_number":503,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_575ccd24","line":500,"in_reply_to":"bab921fb_aa3194ee","updated":"2015-04-23 21:28:08.000000000","message":"Yeah, I think we should just be doing\n\n    for check_type in (policy.AndCheck, policy.NotCheck, policy.OrCheck, policy.RuleCheck):\n        class TestCheck(check_type):\n            pass\n\n        # ...","commit_id":"70bd18cafb7b310e3859255c4fe663eeccc23885"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"be465ac7cd4f2b9e91aa5e254dd98a858d4600c2","unresolved":false,"context_lines":[{"line_number":502,"context_line":"                pass"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"            policy.register(check_type, TestCheck)"},{"line_number":505,"context_line":"            self.assertEqual(TestCheck, _checks.registered_checks[check_type])"}],"source_content_type":"text/x-python","patch_set":2,"id":"7ad32947_be20cb4a","line":505,"updated":"2015-04-27 23:16:29.000000000","message":"the check_type that was used should be printed out if this fails otherwise it will be hard to tell which didn\u0027t work.","commit_id":"70bd18cafb7b310e3859255c4fe663eeccc23885"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"146b11271db9bfa7697c4435e3f21736fa4e6813","unresolved":false,"context_lines":[{"line_number":502,"context_line":"                pass"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"            policy.register(check_type, TestCheck)"},{"line_number":505,"context_line":"            self.assertEqual(TestCheck, _checks.registered_checks[check_type])"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a0c5dc1_23738eb3","line":505,"in_reply_to":"7ad32947_be20cb4a","updated":"2015-05-12 15:44:52.000000000","message":"Done","commit_id":"70bd18cafb7b310e3859255c4fe663eeccc23885"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"59c95edee0adeff2682d22c184bd195ee8c51e2a","unresolved":false,"context_lines":[{"line_number":497,"context_line":""},{"line_number":498,"context_line":"    @mock.patch.object(_checks, \u0027registered_checks\u0027, {})"},{"line_number":499,"context_line":"    def test_base_check_types_are_public(self):"},{"line_number":500,"context_line":"        \u0027\u0027\u0027Check that those check types are part of public API."},{"line_number":501,"context_line":""},{"line_number":502,"context_line":"           They are blessed to be used by library consumers."},{"line_number":503,"context_line":"        \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_342de046","line":500,"updated":"2015-05-15 13:00:46.000000000","message":"Using policy.Class shows that they are part of the public API. What is the point of testing register too?","commit_id":"7f12e0c1c55cb7fb5188e3f1c2cc130f4d2f4d4d"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"25d292f58249669bbc04a37ee7c5ee74082d1cb0","unresolved":false,"context_lines":[{"line_number":497,"context_line":""},{"line_number":498,"context_line":"    @mock.patch.object(_checks, \u0027registered_checks\u0027, {})"},{"line_number":499,"context_line":"    def test_base_check_types_are_public(self):"},{"line_number":500,"context_line":"        \u0027\u0027\u0027Check that those check types are part of public API."},{"line_number":501,"context_line":""},{"line_number":502,"context_line":"           They are blessed to be used by library consumers."},{"line_number":503,"context_line":"        \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_c297ea8e","line":500,"in_reply_to":"7a016987_342de046","updated":"2015-05-15 13:44:09.000000000","message":"that\u0027s just a sanity check that they actually behave correctly - serving as base check types for custom checks registered by apps.","commit_id":"7f12e0c1c55cb7fb5188e3f1c2cc130f4d2f4d4d"}]}
