)]}'
{"keystone/identity/backends/ldap.py":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"a844fd56f37b0bb4139889bbeb2dfc6f924552cf","unresolved":false,"context_lines":[{"line_number":225,"context_line":"            # This could be a bool or a string.  If it\u0027s a string,"},{"line_number":226,"context_line":"            # we need to convert it so we can invert it properly."},{"line_number":227,"context_line":"            enabled \u003d obj.get(\u0027enabled\u0027, self.enabled_default)"},{"line_number":228,"context_line":"            if isinstance(enabled, six.string_types):"},{"line_number":229,"context_line":"                if enabled.lower() \u003d\u003d \u0027true\u0027:"},{"line_number":230,"context_line":"                    enabled \u003d True"},{"line_number":231,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_5e2b27eb","line":228,"updated":"2015-01-28 03:08:43.000000000","message":"Does this include str and unicode?  If so, then ack","commit_id":"7e5018a6cd318a12fe2116c24be800a35d75b8c4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5b6e9a651f79d8e98a2cfc09bd117c0f081ce24a","unresolved":false,"context_lines":[{"line_number":225,"context_line":"            # This could be a bool or a string.  If it\u0027s a string,"},{"line_number":226,"context_line":"            # we need to convert it so we can invert it properly."},{"line_number":227,"context_line":"            enabled \u003d obj.get(\u0027enabled\u0027, self.enabled_default)"},{"line_number":228,"context_line":"            if isinstance(enabled, six.string_types):"},{"line_number":229,"context_line":"                if enabled.lower() \u003d\u003d \u0027true\u0027:"},{"line_number":230,"context_line":"                    enabled \u003d True"},{"line_number":231,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_c76746e9","line":228,"in_reply_to":"fa81d914_5e2b27eb","updated":"2015-01-28 04:26:01.000000000","message":"yep, it covers basestring for py2.X and str for py3.X\n\nbasestring covers both str and unicode\n\nsource: https://pythonhosted.org/six/#six.string_types and \nhttps://docs.python.org/2/library/functions.html#basestring","commit_id":"7e5018a6cd318a12fe2116c24be800a35d75b8c4"}],"keystone/tests/test_backend_ldap.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"d3d83387eba5c9b07910a274d431a36b53f76e83","unresolved":false,"context_lines":[{"line_number":2127,"context_line":"            \"N/A: Covered by test_user_enabled_invert\")"},{"line_number":2128,"context_line":""},{"line_number":2129,"context_line":"    def test_user_enabled_attribute_handles_expired(self):"},{"line_number":2130,"context_line":"        self.skipTest(\"N/A: Does not apply to emulation\")"},{"line_number":2131,"context_line":""},{"line_number":2132,"context_line":"    def test_user_enabled_attribute_handles_utf8(self):"},{"line_number":2133,"context_line":"        self.skipTest(\"N/A: Does not apply to emulation\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa81d914_77f8f07c","line":2130,"updated":"2015-01-28 16:39:15.000000000","message":"Does this test have a specific result when run w/ emulation? Please don\u0027t skip tests but check for the expected behavior not a skip.","commit_id":"c41734d0826de1db6665fb88e67c524f8fcb2655"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5dfe0d242d3d59f74fa85f93c2f0ef1c33285731","unresolved":false,"context_lines":[{"line_number":2127,"context_line":"            \"N/A: Covered by test_user_enabled_invert\")"},{"line_number":2128,"context_line":""},{"line_number":2129,"context_line":"    def test_user_enabled_attribute_handles_expired(self):"},{"line_number":2130,"context_line":"        self.skipTest(\"N/A: Does not apply to emulation\")"},{"line_number":2131,"context_line":""},{"line_number":2132,"context_line":"    def test_user_enabled_attribute_handles_utf8(self):"},{"line_number":2133,"context_line":"        self.skipTest(\"N/A: Does not apply to emulation\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa81d914_6e7735d5","line":2130,"in_reply_to":"fa81d914_77f8f07c","updated":"2015-01-28 18:14:30.000000000","message":"this was is actually fine since the user is expecting the enabled status to be false, which is what it\u0027s defaulted to if emulation is enabled with inversion.","commit_id":"c41734d0826de1db6665fb88e67c524f8fcb2655"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"d3d83387eba5c9b07910a274d431a36b53f76e83","unresolved":false,"context_lines":[{"line_number":2130,"context_line":"        self.skipTest(\"N/A: Does not apply to emulation\")"},{"line_number":2131,"context_line":""},{"line_number":2132,"context_line":"    def test_user_enabled_attribute_handles_utf8(self):"},{"line_number":2133,"context_line":"        self.skipTest(\"N/A: Does not apply to emulation\")"},{"line_number":2134,"context_line":""},{"line_number":2135,"context_line":""},{"line_number":2136,"context_line":"class LdapIdentitySqlAssignment(BaseLDAPIdentity, tests.SQLDriverOverrides,"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa81d914_d7efdcae","line":2133,"updated":"2015-01-28 16:39:15.000000000","message":"Same as above.","commit_id":"c41734d0826de1db6665fb88e67c524f8fcb2655"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5dfe0d242d3d59f74fa85f93c2f0ef1c33285731","unresolved":false,"context_lines":[{"line_number":2130,"context_line":"        self.skipTest(\"N/A: Does not apply to emulation\")"},{"line_number":2131,"context_line":""},{"line_number":2132,"context_line":"    def test_user_enabled_attribute_handles_utf8(self):"},{"line_number":2133,"context_line":"        self.skipTest(\"N/A: Does not apply to emulation\")"},{"line_number":2134,"context_line":""},{"line_number":2135,"context_line":""},{"line_number":2136,"context_line":"class LdapIdentitySqlAssignment(BaseLDAPIdentity, tests.SQLDriverOverrides,"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa81d914_6e0c9543","line":2133,"in_reply_to":"fa81d914_d7efdcae","updated":"2015-01-28 18:14:30.000000000","message":"I re-did the test here, and made it check for False","commit_id":"c41734d0826de1db6665fb88e67c524f8fcb2655"},{"author":{"_account_id":9098,"name":"Nathan Kinder","email":"nkinder@redhat.com","username":"nkinder"},"change_message_id":"d440fe3af156b78ad4c397fe23f34ace4afd8dd5","unresolved":false,"context_lines":[{"line_number":1308,"context_line":"            {"},{"line_number":1309,"context_line":"                \u0027uid\u0027: [123456789],"},{"line_number":1310,"context_line":"                \u0027mail\u0027: [\u0027shaun@acme.com\u0027],"},{"line_number":1311,"context_line":"                \u0027passwordisexpired\u0027: [\u0027true\u0027],"},{"line_number":1312,"context_line":"                \u0027cn\u0027: [\u0027uid\u003d123456789,c\u003dus,ou\u003dour_ldap,o\u003dacme.com\u0027]"},{"line_number":1313,"context_line":"            }"},{"line_number":1314,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa81d914_cf2bb8e9","line":1311,"updated":"2015-01-28 19:54:08.000000000","message":"It would be nice to mix the case here to test that the call to lower() is working properly.","commit_id":"099e162565e7cd07f833d79ce9742c76909384e9"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0b15be9bca912edae8b9a3329a019993fc79091c","unresolved":false,"context_lines":[{"line_number":1308,"context_line":"            {"},{"line_number":1309,"context_line":"                \u0027uid\u0027: [123456789],"},{"line_number":1310,"context_line":"                \u0027mail\u0027: [\u0027shaun@acme.com\u0027],"},{"line_number":1311,"context_line":"                \u0027passwordisexpired\u0027: [\u0027true\u0027],"},{"line_number":1312,"context_line":"                \u0027cn\u0027: [\u0027uid\u003d123456789,c\u003dus,ou\u003dour_ldap,o\u003dacme.com\u0027]"},{"line_number":1313,"context_line":"            }"},{"line_number":1314,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa81d914_f8bf61fa","line":1311,"in_reply_to":"fa81d914_cf2bb8e9","updated":"2015-01-28 21:41:40.000000000","message":"Done","commit_id":"099e162565e7cd07f833d79ce9742c76909384e9"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7176af4e5c4c7187d2fc441fa8aecbf382be4911","unresolved":false,"context_lines":[{"line_number":1309,"context_line":"                \u0027uid\u0027: [123456789],"},{"line_number":1310,"context_line":"                \u0027mail\u0027: [\u0027shaun@acme.com\u0027],"},{"line_number":1311,"context_line":"                \u0027passwordisexpired\u0027: [\u0027TRUE\u0027],"},{"line_number":1312,"context_line":"                \u0027cn\u0027: [\u0027uid\u003d123456789,c\u003dus,ou\u003dour_ldap,o\u003dacme.com\u0027]"},{"line_number":1313,"context_line":"            }"},{"line_number":1314,"context_line":"        )"},{"line_number":1315,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa81d914_72e35333","line":1312,"updated":"2015-01-29 22:05:39.000000000","message":"this is an odd value for a cn.","commit_id":"ad9ecdbab9ab4243477aeac8a92214cb1ac830c6"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7176af4e5c4c7187d2fc441fa8aecbf382be4911","unresolved":false,"context_lines":[{"line_number":1314,"context_line":"        )"},{"line_number":1315,"context_line":""},{"line_number":1316,"context_line":"        user_api \u003d identity.backends.ldap.UserApi(CONF)"},{"line_number":1317,"context_line":"        user_ref \u003d user_api.get(\u0027123456789\u0027)"},{"line_number":1318,"context_line":"        self.assertIs(False, user_ref[\u0027enabled\u0027])"},{"line_number":1319,"context_line":""},{"line_number":1320,"context_line":"    @mock.patch.object(common_ldap_core.BaseLdap, \u0027_ldap_get\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa81d914_d2f4fff3","line":1317,"updated":"2015-01-29 22:05:39.000000000","message":"a variable for this would be nice then it would be more obvious it\u0027s the same value all over.","commit_id":"ad9ecdbab9ab4243477aeac8a92214cb1ac830c6"}]}
