)]}'
{"keystone/common/utils.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"2342d0d6f080d26c8e833d632ecef69ca22d1863","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        return value"},{"line_number":58,"context_line":"    except ValueError:"},{"line_number":59,"context_line":"        if len(value) \u003c\u003d 64:"},{"line_number":60,"context_line":"            if six.PY2 and isinstance(value, six.text_type):"},{"line_number":61,"context_line":"                value \u003d value.encode(\u0027utf-8\u0027)"},{"line_number":62,"context_line":"            return uuid.uuid5(RESOURCE_ID_NAMESPACE, value).hex"},{"line_number":63,"context_line":"        raise ValueError(_(\u0027Length of transformable resource id \u003e 64, \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_3824665e","line":60,"updated":"2016-02-17 22:22:22.000000000","message":"So in Python3 we want this to be test (aka unicode)?","commit_id":"90c95049a3e0a9ceadbd45b1aa5a7de50a8ea1d0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"935e8dab4215ece8df462c817343e915136c39e1","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        return value"},{"line_number":58,"context_line":"    except ValueError:"},{"line_number":59,"context_line":"        if len(value) \u003c\u003d 64:"},{"line_number":60,"context_line":"            if six.PY2 and isinstance(value, six.text_type):"},{"line_number":61,"context_line":"                value \u003d value.encode(\u0027utf-8\u0027)"},{"line_number":62,"context_line":"            return uuid.uuid5(RESOURCE_ID_NAMESPACE, value).hex"},{"line_number":63,"context_line":"        raise ValueError(_(\u0027Length of transformable resource id \u003e 64, \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_58d04af6","line":60,"in_reply_to":"dae33548_3824665e","updated":"2016-02-17 22:27:30.000000000","message":"This is on python3:\n\n \u003e\u003e\u003e uuid.uuid5(RESOURCE_ID_NAMESPACE, u\u0027something\u0027).hex\n \u0027d60c5d6757a05921aeeca652cc1c5a9f\u0027\n \u003e\u003e\u003e uuid.uuid5(RESOURCE_ID_NAMESPACE, (u\u0027something\u0027).encode(\u0027utf-8\u0027)).hex\n Traceback (most recent call last):\n   File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\n   File \"/usr/lib/python3.4/uuid.py\", line 617, in uuid5\n     hash \u003d sha1(namespace.bytes + bytes(name, \"utf-8\")).digest()\n TypeError: encoding or errors without a string argument\n\nOn python3 this must be text.","commit_id":"90c95049a3e0a9ceadbd45b1aa5a7de50a8ea1d0"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"138bcd03cf004c3af878bdb0cd2cd3e97eba49ff","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        return value"},{"line_number":58,"context_line":"    except ValueError:"},{"line_number":59,"context_line":"        if len(value) \u003c\u003d 64:"},{"line_number":60,"context_line":"            if six.PY2 and isinstance(value, six.text_type):"},{"line_number":61,"context_line":"                value \u003d value.encode(\u0027utf-8\u0027)"},{"line_number":62,"context_line":"            return uuid.uuid5(RESOURCE_ID_NAMESPACE, value).hex"},{"line_number":63,"context_line":"        raise ValueError(_(\u0027Length of transformable resource id \u003e 64, \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_d3f43d5c","line":60,"in_reply_to":"dae33548_58d04af6","updated":"2016-02-17 22:57:03.000000000","message":"Sounds good then.","commit_id":"90c95049a3e0a9ceadbd45b1aa5a7de50a8ea1d0"}],"keystone/tests/unit/common/test_utils.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"4dc115f539cd295ecfddb31243d1a8b29dee1108","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        uuid_str \u003d unicode(\u0027536e28c2017e405e89b25a1ed777b952\u0027"},{"line_number":64,"context_line":"                           \u0027f13de678ac714bb1b7d1e9a007c10db5\u0027)"},{"line_number":65,"context_line":"        resource_id_namespace \u003d common_utils.RESOURCE_ID_NAMESPACE"},{"line_number":66,"context_line":"        encoded \u003d uuid_str.encode(\u0027utf-8\u0027)"},{"line_number":67,"context_line":"        transformed_id \u003d uuid.uuid5(resource_id_namespace, encoded).hex"},{"line_number":68,"context_line":"        self.assertEqual(transformed_id, common_utils.resource_uuid(uuid_str))"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dae33548_f0724910","line":66,"range":{"start_line":66,"start_character":8,"end_line":66,"end_character":42},"updated":"2016-02-17 08:07:44.000000000","message":"why encode this? so the testcase can still pass without the fix.","commit_id":"db703fc93486a67664b1dd1bdb91657661d06114"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"2b0b76863576d60cdbb3d77c34f6912bc83f7823","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        uuid_str \u003d unicode(\u0027536e28c2017e405e89b25a1ed777b952\u0027"},{"line_number":64,"context_line":"                           \u0027f13de678ac714bb1b7d1e9a007c10db5\u0027)"},{"line_number":65,"context_line":"        resource_id_namespace \u003d common_utils.RESOURCE_ID_NAMESPACE"},{"line_number":66,"context_line":"        encoded \u003d uuid_str.encode(\u0027utf-8\u0027)"},{"line_number":67,"context_line":"        transformed_id \u003d uuid.uuid5(resource_id_namespace, encoded).hex"},{"line_number":68,"context_line":"        self.assertEqual(transformed_id, common_utils.resource_uuid(uuid_str))"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dae33548_90b49d82","line":66,"range":{"start_line":66,"start_character":8,"end_line":66,"end_character":42},"in_reply_to":"dae33548_f0724910","updated":"2016-02-17 08:12:09.000000000","message":"I missed that you are comparing them below.","commit_id":"db703fc93486a67664b1dd1bdb91657661d06114"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2126856f46dfafaa512b9cf640dfcae71780d74b","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        uuid_str \u003d unicode(\u0027536e28c2017e405e89b25a1ed777b952\u0027"},{"line_number":64,"context_line":"                           \u0027f13de678ac714bb1b7d1e9a007c10db5\u0027)"},{"line_number":65,"context_line":"        resource_id_namespace \u003d common_utils.RESOURCE_ID_NAMESPACE"},{"line_number":66,"context_line":"        encoded \u003d uuid_str.encode(\u0027utf-8\u0027)"},{"line_number":67,"context_line":"        transformed_id \u003d uuid.uuid5(resource_id_namespace, encoded).hex"},{"line_number":68,"context_line":"        self.assertEqual(transformed_id, common_utils.resource_uuid(uuid_str))"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dae33548_d07905ca","line":66,"range":{"start_line":66,"start_character":8,"end_line":66,"end_character":42},"in_reply_to":"dae33548_f0724910","updated":"2016-02-17 08:12:43.000000000","message":"it sets up the expected result, the \"transformed_id\", we still pass the original to the util function","commit_id":"db703fc93486a67664b1dd1bdb91657661d06114"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"b18deaba7bf5441984a7bfa417dd5065d4176441","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                          invalid_input)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        # 64 length unicode, to mimic what is returned from mappind_id backend"},{"line_number":63,"context_line":"        uuid_str \u003d unicode(\u0027536e28c2017e405e89b25a1ed777b952\u0027"},{"line_number":64,"context_line":"                           \u0027f13de678ac714bb1b7d1e9a007c10db5\u0027)"},{"line_number":65,"context_line":"        resource_id_namespace \u003d common_utils.RESOURCE_ID_NAMESPACE"},{"line_number":66,"context_line":"        encoded \u003d uuid_str.encode(\u0027utf-8\u0027)"},{"line_number":67,"context_line":"        transformed_id \u003d uuid.uuid5(resource_id_namespace, encoded).hex"},{"line_number":68,"context_line":"        self.assertEqual(transformed_id, common_utils.resource_uuid(uuid_str))"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def test_hash(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"dae33548_9e7bfef4","line":67,"range":{"start_line":63,"start_character":0,"end_line":67,"end_character":71},"updated":"2016-02-17 12:44:18.000000000","message":"since the behavior on python2 is different with python3, we need update these code accordingly.","commit_id":"db703fc93486a67664b1dd1bdb91657661d06114"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"75338ed4a99073cab5e45895a0d950b6282abf89","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        self.assertRaises(ValueError, common_utils.resource_uuid,"},{"line_number":61,"context_line":"                          invalid_input)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        # 64 length unicode string, to mimic what is returned from mappind_id"},{"line_number":64,"context_line":"        # backend."},{"line_number":65,"context_line":"        uuid_str \u003d six.text_type(\u0027536e28c2017e405e89b25a1ed777b952\u0027"},{"line_number":66,"context_line":"                                 \u0027f13de678ac714bb1b7d1e9a007c10db5\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"dae33548_f01e9c6e","line":63,"range":{"start_line":63,"start_character":73,"end_line":63,"end_character":74},"updated":"2016-02-17 20:38:47.000000000","message":"mapping*","commit_id":"48ccd37a280af466157acbc214b6175cea761f45"}]}
