)]}'
{"keystone/tests/functional/federation/fixtures.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"47d010b6405eefcbeb4896c9f56cdf6507d23a75","unresolved":false,"context_lines":[{"line_number":46,"context_line":"def randomize_mapping():"},{"line_number":47,"context_line":"    \"\"\"Return randomized copy of the MAPPING"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    The only part being randomized is the effective local keystone group."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    \"\"\""},{"line_number":52,"context_line":"    new_mapping \u003d copy.deepcopy(MAPPING)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa80f949_9fa8fc8e","line":49,"updated":"2015-11-06 06:18:24.000000000","message":"nits: only part being updated is local keystone user rather than group.","commit_id":"62b6fc8b058b15a700d33a3d782bc007ff98fbd5"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"b2d471611b16107875da10a76d7da57e7e4f289e","unresolved":false,"context_lines":[{"line_number":46,"context_line":"def randomize_mapping():"},{"line_number":47,"context_line":"    \"\"\"Return randomized copy of the MAPPING"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    The only part being randomized is the effective local keystone group."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    \"\"\""},{"line_number":52,"context_line":"    new_mapping \u003d copy.deepcopy(MAPPING)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa80f949_dfbf64a8","line":49,"in_reply_to":"fa80f949_9fa8fc8e","updated":"2015-11-06 06:21:30.000000000","message":"Done","commit_id":"62b6fc8b058b15a700d33a3d782bc007ff98fbd5"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"1574ebd634d9a31c6853577f235c96fbcd4e86a5","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    \"\"\""},{"line_number":52,"context_line":"    new_mapping \u003d copy.deepcopy(MAPPING)"},{"line_number":53,"context_line":"    new_mapping[0][\u0027local\u0027][0][\u0027user\u0027] \u003d uuid.uuid4().hex"},{"line_number":54,"context_line":"    return new_mapping"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa80f949_bf75c0fa","line":53,"updated":"2015-11-06 06:28:38.000000000","message":"new_mapping[0][\u0027local\u0027][1][\u0027group\u0027] \u003d uuid.uuid4().hex might be better.","commit_id":"793860a89e7d1f19fecb96aad9638179200ac7d3"}],"keystone/tests/functional/federation/test_v3_crud.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"26a45f68cc06ff980c221957a958ab601a230cb0","unresolved":false,"context_lines":[{"line_number":24,"context_line":"is_created \u003d testtools.matchers.Equals(requests.status_codes.codes.created)"},{"line_number":25,"context_line":"is_no_content \u003d testtools.matchers.Equals("},{"line_number":26,"context_line":"    requests.status_codes.codes.no_content)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"is_bad_request \u003d testtools.matchers.Equals("},{"line_number":29,"context_line":"    requests.status_codes.codes.bad_request)"},{"line_number":30,"context_line":"is_forbidden \u003d testtools.matchers.Equals(requests.status_codes.codes.forbidden)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_1548ac86","line":27,"updated":"2015-10-29 07:40:52.000000000","message":"separate each statement here with a blank line instead of just doing it in one place.","commit_id":"1c365f6f3037df81306d7c2a9fde4d2f8542abd9"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"26a45f68cc06ff980c221957a958ab601a230cb0","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class MappingMixin(object):"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def _mapping_url(self, id\u003d\u0027\u0027):"},{"line_number":52,"context_line":"        return self.PUBLIC_URL + \u0027/v3/OS-FEDERATION/mappings/\u0027 + id"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def mapping_ref(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_551ce476","line":51,"updated":"2015-10-29 07:40:52.000000000","message":"does the default value \u0027\u0027 has any meaning here? can we create a mapping with that empty id?","commit_id":"1c365f6f3037df81306d7c2a9fde4d2f8542abd9"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"26a45f68cc06ff980c221957a958ab601a230cb0","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        \"\"\"Test Mapping CRUD operations."},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        Test scenario:"},{"line_number":193,"context_line":"        - Create mapping"},{"line_number":194,"context_line":"        - Update mapping"},{"line_number":195,"context_line":"            * new mapping rules"},{"line_number":196,"context_line":"        - Remove mapping"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_701ece64","line":193,"updated":"2015-10-29 07:40:52.000000000","message":"add \"- Get mapping\" here","commit_id":"1c365f6f3037df81306d7c2a9fde4d2f8542abd9"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"7b0f225e1180ddc00700eab1fde52f7f980f6e2e","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        \"\"\"Test Mapping CRUD operations."},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        Test scenario:"},{"line_number":193,"context_line":"        - Create mapping"},{"line_number":194,"context_line":"        - Update mapping"},{"line_number":195,"context_line":"            * new mapping rules"},{"line_number":196,"context_line":"        - Remove mapping"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa80f949_f023c0a5","line":193,"in_reply_to":"1a26ad4f_701ece64","updated":"2015-11-04 16:26:34.000000000","message":"Done","commit_id":"1c365f6f3037df81306d7c2a9fde4d2f8542abd9"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"26a45f68cc06ff980c221957a958ab601a230cb0","unresolved":false,"context_lines":[{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        # update mapping attributes"},{"line_number":214,"context_line":"        r_update \u003d requests.patch(mapping_url, headers\u003dself.headers,"},{"line_number":215,"context_line":"                                  json\u003d{\u0027mapping\u0027: mapping})"},{"line_number":216,"context_line":"        self.assertThat(r_update.status_code, is_ok)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        # delete mapping"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_9047ea4a","line":215,"updated":"2015-10-29 07:40:52.000000000","message":"I assume there is nothing to be updated, but the tet scenario tell us Update mapping with \"* new mapping rules\", so, define a new mapping rule in the fixture then we update the mapping with it.","commit_id":"1c365f6f3037df81306d7c2a9fde4d2f8542abd9"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"7b0f225e1180ddc00700eab1fde52f7f980f6e2e","unresolved":false,"context_lines":[{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        # update mapping attributes"},{"line_number":214,"context_line":"        r_update \u003d requests.patch(mapping_url, headers\u003dself.headers,"},{"line_number":215,"context_line":"                                  json\u003d{\u0027mapping\u0027: mapping})"},{"line_number":216,"context_line":"        self.assertThat(r_update.status_code, is_ok)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        # delete mapping"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa80f949_d0579c00","line":215,"in_reply_to":"1a26ad4f_9047ea4a","updated":"2015-11-04 16:26:34.000000000","message":"Done","commit_id":"1c365f6f3037df81306d7c2a9fde4d2f8542abd9"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"26a45f68cc06ff980c221957a958ab601a230cb0","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        \"\"\"Try creating mapping with malformed request.\"\"\""},{"line_number":268,"context_line":"        mapping_url \u003d self._mapping_url(uuid.uuid4().hex)"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"        mapping \u003d {uuid.uuid4().hex: uuid.uuid4().hex for x in range(4)}"},{"line_number":271,"context_line":"        r \u003d requests.put(mapping_url, headers\u003dself.headers,"},{"line_number":272,"context_line":"                         json\u003d{\u0027mapping\u0027: mapping})"},{"line_number":273,"context_line":"        self.assertThat(r.status_code, is_bad_request)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_d0d9e284","line":270,"updated":"2015-10-29 07:40:52.000000000","message":"mapping \u003d {uuid.uuid4().hex: uuid.uuid4().hex} is enough.","commit_id":"1c365f6f3037df81306d7c2a9fde4d2f8542abd9"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"7b0f225e1180ddc00700eab1fde52f7f980f6e2e","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        \"\"\"Try creating mapping with malformed request.\"\"\""},{"line_number":268,"context_line":"        mapping_url \u003d self._mapping_url(uuid.uuid4().hex)"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"        mapping \u003d {uuid.uuid4().hex: uuid.uuid4().hex for x in range(4)}"},{"line_number":271,"context_line":"        r \u003d requests.put(mapping_url, headers\u003dself.headers,"},{"line_number":272,"context_line":"                         json\u003d{\u0027mapping\u0027: mapping})"},{"line_number":273,"context_line":"        self.assertThat(r.status_code, is_bad_request)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa80f949_d06ebcc8","line":270,"in_reply_to":"1a26ad4f_d0d9e284","updated":"2015-11-04 16:26:34.000000000","message":"Done","commit_id":"1c365f6f3037df81306d7c2a9fde4d2f8542abd9"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"26a45f68cc06ff980c221957a958ab601a230cb0","unresolved":false,"context_lines":[{"line_number":272,"context_line":"                         json\u003d{\u0027mapping\u0027: mapping})"},{"line_number":273,"context_line":"        self.assertThat(r.status_code, is_bad_request)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def test_update_mapping_malformed_request(self):"},{"line_number":276,"context_line":"        \"\"\"Try updating mapping with malformed request."},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        Make sure the request will not be accepted."}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_1013da0e","line":275,"updated":"2015-10-29 07:40:52.000000000","message":"test_create_mapping_malformed_request and this one could be consolidate into one \"test_mapping_malformed_request\".\n\nBut I am okay with as is, up to you :)","commit_id":"1c365f6f3037df81306d7c2a9fde4d2f8542abd9"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"26a45f68cc06ff980c221957a958ab601a230cb0","unresolved":false,"context_lines":[{"line_number":280,"context_line":"        - Create mapping"},{"line_number":281,"context_line":"        - Update mapping with malformed request"},{"line_number":282,"context_line":"        - Ensure the request fails"},{"line_number":283,"context_line":"        - Delete mapping"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        \"\"\""},{"line_number":286,"context_line":"        mapping_id \u003d uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_10451a16","line":283,"updated":"2015-10-29 07:40:52.000000000","message":"delete \"- Delete mapping\" since this testcase doesn\u0027t test it.","commit_id":"1c365f6f3037df81306d7c2a9fde4d2f8542abd9"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"7b0f225e1180ddc00700eab1fde52f7f980f6e2e","unresolved":false,"context_lines":[{"line_number":280,"context_line":"        - Create mapping"},{"line_number":281,"context_line":"        - Update mapping with malformed request"},{"line_number":282,"context_line":"        - Ensure the request fails"},{"line_number":283,"context_line":"        - Delete mapping"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        \"\"\""},{"line_number":286,"context_line":"        mapping_id \u003d uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa80f949_705ef013","line":283,"in_reply_to":"1a26ad4f_10451a16","updated":"2015-11-04 16:26:34.000000000","message":"Done","commit_id":"1c365f6f3037df81306d7c2a9fde4d2f8542abd9"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"a6496763ebeb26e38dd79c2966c135e895cc5316","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        self.assertThat(r.status_code, is_created)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        # try to update mapping with malformed request"},{"line_number":295,"context_line":"        mapping \u003d {\u0027rules\u0027: [uuid.uuid4().hex] for x in range(4)}"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        r \u003d requests.patch(mapping_url, headers\u003dself.headers,"},{"line_number":298,"context_line":"                           json\u003d{\u0027mapping\u0027: mapping})"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_fda5d203","line":295,"updated":"2015-10-29 09:39:42.000000000","message":"this line will give us the dict like this, \n {\u0027rules\u0027: [\u002755e192b6db094c149678cd508c26b183\u0027]}\n\nno difference with this line,\n mapping \u003d {\u0027rules\u0027: [uuid.uuid4().hex]}","commit_id":"1c365f6f3037df81306d7c2a9fde4d2f8542abd9"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"7b0f225e1180ddc00700eab1fde52f7f980f6e2e","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        self.assertThat(r.status_code, is_created)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        # try to update mapping with malformed request"},{"line_number":295,"context_line":"        mapping \u003d {\u0027rules\u0027: [uuid.uuid4().hex] for x in range(4)}"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        r \u003d requests.patch(mapping_url, headers\u003dself.headers,"},{"line_number":298,"context_line":"                           json\u003d{\u0027mapping\u0027: mapping})"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa80f949_4d1eb564","line":295,"in_reply_to":"1a26ad4f_fda5d203","updated":"2015-11-04 16:26:34.000000000","message":"you are right, should be \n\n{\u0027rules\u0027: [uuid.uuid4().hex for x in range(4)]}","commit_id":"1c365f6f3037df81306d7c2a9fde4d2f8542abd9"}]}
