)]}'
{"keystone/tests/unit/test_v3_federation.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"616557ab89d9154f5d702ae8dab6383caec63f55","unresolved":false,"context_lines":[{"line_number":1009,"context_line":"        self.delete(url)"},{"line_number":1010,"context_line":"        self.get(url, expected_status\u003d404)"},{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"    def test_delete_idp_with_assigned_protocols(self):"},{"line_number":1013,"context_line":"        \"\"\"Delete IdP with assigned protocol.\"\"\""},{"line_number":1014,"context_line":""},{"line_number":1015,"context_line":"        # create default IdP"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_0b79bc93","line":1012,"updated":"2015-04-16 06:24:54.000000000","message":"how about:\n\n  test_delete_idp_also_deletes_assigned_protocols","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"a9ef183b69d8748d14db532c68fb8ef19c7d8d1d","unresolved":false,"context_lines":[{"line_number":1009,"context_line":"        self.delete(url)"},{"line_number":1010,"context_line":"        self.get(url, expected_status\u003d404)"},{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"    def test_delete_idp_with_assigned_protocols(self):"},{"line_number":1013,"context_line":"        \"\"\"Delete IdP with assigned protocol.\"\"\""},{"line_number":1014,"context_line":""},{"line_number":1015,"context_line":"        # create default IdP"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_6b483f5c","line":1012,"in_reply_to":"5aa745d1_0b79bc93","updated":"2015-04-16 07:04:43.000000000","message":"Done","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"616557ab89d9154f5d702ae8dab6383caec63f55","unresolved":false,"context_lines":[{"line_number":1010,"context_line":"        self.get(url, expected_status\u003d404)"},{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"    def test_delete_idp_with_assigned_protocols(self):"},{"line_number":1013,"context_line":"        \"\"\"Delete IdP with assigned protocol.\"\"\""},{"line_number":1014,"context_line":""},{"line_number":1015,"context_line":"        # create default IdP"},{"line_number":1016,"context_line":"        default_resp \u003d self._create_default_idp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_8b3eecb6","line":1013,"updated":"2015-04-16 06:24:54.000000000","message":"this isn\u0027t really accurate.\n\n  \"Test that deleting an IdP will delete its assigned protocol.\"","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"a9ef183b69d8748d14db532c68fb8ef19c7d8d1d","unresolved":false,"context_lines":[{"line_number":1010,"context_line":"        self.get(url, expected_status\u003d404)"},{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"    def test_delete_idp_with_assigned_protocols(self):"},{"line_number":1013,"context_line":"        \"\"\"Delete IdP with assigned protocol.\"\"\""},{"line_number":1014,"context_line":""},{"line_number":1015,"context_line":"        # create default IdP"},{"line_number":1016,"context_line":"        default_resp \u003d self._create_default_idp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_cb6873bd","line":1013,"in_reply_to":"5aa745d1_8b3eecb6","updated":"2015-04-16 07:04:43.000000000","message":"Done","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"616557ab89d9154f5d702ae8dab6383caec63f55","unresolved":false,"context_lines":[{"line_number":1016,"context_line":"        default_resp \u003d self._create_default_idp()"},{"line_number":1017,"context_line":"        default_idp \u003d self._fetch_attribute_from_response(default_resp,"},{"line_number":1018,"context_line":"                                                          \u0027identity_provider\u0027)"},{"line_number":1019,"context_line":"        idp_id \u003d default_idp.get(\u0027id\u0027)"},{"line_number":1020,"context_line":"        self.assertIsNotNone(idp_id)"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        # assign protocol to IdP"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_cb72b4ad","line":1019,"updated":"2015-04-16 06:24:54.000000000","message":"use [\u0027id\u0027] if something is supposed to be there","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"a9ef183b69d8748d14db532c68fb8ef19c7d8d1d","unresolved":false,"context_lines":[{"line_number":1016,"context_line":"        default_resp \u003d self._create_default_idp()"},{"line_number":1017,"context_line":"        default_idp \u003d self._fetch_attribute_from_response(default_resp,"},{"line_number":1018,"context_line":"                                                          \u0027identity_provider\u0027)"},{"line_number":1019,"context_line":"        idp_id \u003d default_idp.get(\u0027id\u0027)"},{"line_number":1020,"context_line":"        self.assertIsNotNone(idp_id)"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        # assign protocol to IdP"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_6bb6ff3e","line":1019,"in_reply_to":"5aa745d1_cb72b4ad","updated":"2015-04-16 07:04:43.000000000","message":"Done","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"616557ab89d9154f5d702ae8dab6383caec63f55","unresolved":false,"context_lines":[{"line_number":1017,"context_line":"        default_idp \u003d self._fetch_attribute_from_response(default_resp,"},{"line_number":1018,"context_line":"                                                          \u0027identity_provider\u0027)"},{"line_number":1019,"context_line":"        idp_id \u003d default_idp.get(\u0027id\u0027)"},{"line_number":1020,"context_line":"        self.assertIsNotNone(idp_id)"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        # assign protocol to IdP"},{"line_number":1023,"context_line":"        url \u003d self.base_url(suffix\u003d\u0027%(idp_id)s/protocols/%(protocol_id)s\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_2b9b58cb","line":1020,"updated":"2015-04-16 06:24:54.000000000","message":"don\u0027t really need this check, there are plenty of other tests that already check this","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"a9ef183b69d8748d14db532c68fb8ef19c7d8d1d","unresolved":false,"context_lines":[{"line_number":1017,"context_line":"        default_idp \u003d self._fetch_attribute_from_response(default_resp,"},{"line_number":1018,"context_line":"                                                          \u0027identity_provider\u0027)"},{"line_number":1019,"context_line":"        idp_id \u003d default_idp.get(\u0027id\u0027)"},{"line_number":1020,"context_line":"        self.assertIsNotNone(idp_id)"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        # assign protocol to IdP"},{"line_number":1023,"context_line":"        url \u003d self.base_url(suffix\u003d\u0027%(idp_id)s/protocols/%(protocol_id)s\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_eb80cf48","line":1020,"in_reply_to":"5aa745d1_2b9b58cb","updated":"2015-04-16 07:04:43.000000000","message":"Done","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"616557ab89d9154f5d702ae8dab6383caec63f55","unresolved":false,"context_lines":[{"line_number":1020,"context_line":"        self.assertIsNotNone(idp_id)"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        # assign protocol to IdP"},{"line_number":1023,"context_line":"        url \u003d self.base_url(suffix\u003d\u0027%(idp_id)s/protocols/%(protocol_id)s\u0027)"},{"line_number":1024,"context_line":"        kwargs \u003d {\u0027expected_status\u0027: 201}"},{"line_number":1025,"context_line":"        resp, idp_id, proto \u003d self._assign_protocol_to_idp(url\u003durl,"},{"line_number":1026,"context_line":"                                                           idp_id\u003didp_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_4bd8e41d","line":1023,"updated":"2015-04-16 06:24:54.000000000","message":"try to define the url, idp_url and protocol_url in the same spot, there\u0027s a bit of jumping around here","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"a9ef183b69d8748d14db532c68fb8ef19c7d8d1d","unresolved":false,"context_lines":[{"line_number":1020,"context_line":"        self.assertIsNotNone(idp_id)"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        # assign protocol to IdP"},{"line_number":1023,"context_line":"        url \u003d self.base_url(suffix\u003d\u0027%(idp_id)s/protocols/%(protocol_id)s\u0027)"},{"line_number":1024,"context_line":"        kwargs \u003d {\u0027expected_status\u0027: 201}"},{"line_number":1025,"context_line":"        resp, idp_id, proto \u003d self._assign_protocol_to_idp(url\u003durl,"},{"line_number":1026,"context_line":"                                                           idp_id\u003didp_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_0bf3fb0b","line":1023,"in_reply_to":"5aa745d1_4bd8e41d","updated":"2015-04-16 07:04:43.000000000","message":"Done","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"616557ab89d9154f5d702ae8dab6383caec63f55","unresolved":false,"context_lines":[{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        # assign protocol to IdP"},{"line_number":1023,"context_line":"        url \u003d self.base_url(suffix\u003d\u0027%(idp_id)s/protocols/%(protocol_id)s\u0027)"},{"line_number":1024,"context_line":"        kwargs \u003d {\u0027expected_status\u0027: 201}"},{"line_number":1025,"context_line":"        resp, idp_id, proto \u003d self._assign_protocol_to_idp(url\u003durl,"},{"line_number":1026,"context_line":"                                                           idp_id\u003didp_id,"},{"line_number":1027,"context_line":"                                                           proto\u003d\"saml2\","}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_eb81f0fc","line":1024,"updated":"2015-04-16 06:24:54.000000000","message":"is there a reason this isn\u0027t included in line 1029?","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"a9ef183b69d8748d14db532c68fb8ef19c7d8d1d","unresolved":false,"context_lines":[{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        # assign protocol to IdP"},{"line_number":1023,"context_line":"        url \u003d self.base_url(suffix\u003d\u0027%(idp_id)s/protocols/%(protocol_id)s\u0027)"},{"line_number":1024,"context_line":"        kwargs \u003d {\u0027expected_status\u0027: 201}"},{"line_number":1025,"context_line":"        resp, idp_id, proto \u003d self._assign_protocol_to_idp(url\u003durl,"},{"line_number":1026,"context_line":"                                                           idp_id\u003didp_id,"},{"line_number":1027,"context_line":"                                                           proto\u003d\"saml2\","}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_0bb41bf0","line":1024,"in_reply_to":"5aa745d1_eb81f0fc","updated":"2015-04-16 07:04:43.000000000","message":"yep, \u0027expected_status\u0027 is not accepted in \u0027_assign_protocol_to_idp\u0027 as keyword arguments.","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"616557ab89d9154f5d702ae8dab6383caec63f55","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"        kwargs \u003d {\u0027expected_status\u0027: 201}"},{"line_number":1025,"context_line":"        resp, idp_id, proto \u003d self._assign_protocol_to_idp(url\u003durl,"},{"line_number":1026,"context_line":"                                                           idp_id\u003didp_id,"},{"line_number":1027,"context_line":"                                                           proto\u003d\"saml2\","},{"line_number":1028,"context_line":"                                                           **kwargs)"},{"line_number":1029,"context_line":""},{"line_number":1030,"context_line":"        # remove IdP will remove the assigned protocol as well"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_eb98d06c","line":1027,"updated":"2015-04-16 06:24:54.000000000","message":"rather use uuid.uuid4().hex instead of \"saml2\"\n\nor use self.PROTOCOL instead","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"a9ef183b69d8748d14db532c68fb8ef19c7d8d1d","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"        kwargs \u003d {\u0027expected_status\u0027: 201}"},{"line_number":1025,"context_line":"        resp, idp_id, proto \u003d self._assign_protocol_to_idp(url\u003durl,"},{"line_number":1026,"context_line":"                                                           idp_id\u003didp_id,"},{"line_number":1027,"context_line":"                                                           proto\u003d\"saml2\","},{"line_number":1028,"context_line":"                                                           **kwargs)"},{"line_number":1029,"context_line":""},{"line_number":1030,"context_line":"        # remove IdP will remove the assigned protocol as well"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_8be70b40","line":1027,"in_reply_to":"5aa745d1_eb98d06c","updated":"2015-04-16 07:04:43.000000000","message":"Done","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"616557ab89d9154f5d702ae8dab6383caec63f55","unresolved":false,"context_lines":[{"line_number":1027,"context_line":"                                                           proto\u003d\"saml2\","},{"line_number":1028,"context_line":"                                                           **kwargs)"},{"line_number":1029,"context_line":""},{"line_number":1030,"context_line":"        # remove IdP will remove the assigned protocol as well"},{"line_number":1031,"context_line":"        idp_url \u003d self.base_url(suffix\u003didp_id)"},{"line_number":1032,"context_line":"        protocol_url \u003d url % {\u0027idp_id\u0027: idp_id,"},{"line_number":1033,"context_line":"                              \u0027protocol_id\u0027: \"saml2\"}"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_8bc70c45","line":1030,"updated":"2015-04-16 06:24:54.000000000","message":"removing* IdP will remove ...","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"a9ef183b69d8748d14db532c68fb8ef19c7d8d1d","unresolved":false,"context_lines":[{"line_number":1027,"context_line":"                                                           proto\u003d\"saml2\","},{"line_number":1028,"context_line":"                                                           **kwargs)"},{"line_number":1029,"context_line":""},{"line_number":1030,"context_line":"        # remove IdP will remove the assigned protocol as well"},{"line_number":1031,"context_line":"        idp_url \u003d self.base_url(suffix\u003didp_id)"},{"line_number":1032,"context_line":"        protocol_url \u003d url % {\u0027idp_id\u0027: idp_id,"},{"line_number":1033,"context_line":"                              \u0027protocol_id\u0027: \"saml2\"}"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_ebce8fb3","line":1030,"in_reply_to":"5aa745d1_8bc70c45","updated":"2015-04-16 07:04:43.000000000","message":"Done","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"616557ab89d9154f5d702ae8dab6383caec63f55","unresolved":false,"context_lines":[{"line_number":1030,"context_line":"        # remove IdP will remove the assigned protocol as well"},{"line_number":1031,"context_line":"        idp_url \u003d self.base_url(suffix\u003didp_id)"},{"line_number":1032,"context_line":"        protocol_url \u003d url % {\u0027idp_id\u0027: idp_id,"},{"line_number":1033,"context_line":"                              \u0027protocol_id\u0027: \"saml2\"}"},{"line_number":1034,"context_line":"        self.delete(idp_url)"},{"line_number":1035,"context_line":"        self.get(idp_url, expected_status\u003d404)"},{"line_number":1036,"context_line":"        self.get(protocol_url, expected_status\u003d404)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_aba3e89d","line":1033,"updated":"2015-04-16 06:24:54.000000000","message":"same comment here, use uuid or self.PROTOCOL","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"a9ef183b69d8748d14db532c68fb8ef19c7d8d1d","unresolved":false,"context_lines":[{"line_number":1030,"context_line":"        # remove IdP will remove the assigned protocol as well"},{"line_number":1031,"context_line":"        idp_url \u003d self.base_url(suffix\u003didp_id)"},{"line_number":1032,"context_line":"        protocol_url \u003d url % {\u0027idp_id\u0027: idp_id,"},{"line_number":1033,"context_line":"                              \u0027protocol_id\u0027: \"saml2\"}"},{"line_number":1034,"context_line":"        self.delete(idp_url)"},{"line_number":1035,"context_line":"        self.get(idp_url, expected_status\u003d404)"},{"line_number":1036,"context_line":"        self.get(protocol_url, expected_status\u003d404)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_4bd0e353","line":1033,"in_reply_to":"5aa745d1_aba3e89d","updated":"2015-04-16 07:04:43.000000000","message":"Done","commit_id":"c973080685522b2b22672ca148835ef4a145a1e2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"3f0676ccde013d9638472d8ba4a8be900fbb7a5a","unresolved":false,"context_lines":[{"line_number":1028,"context_line":"        resp, idp_id, proto \u003d self._assign_protocol_to_idp("},{"line_number":1029,"context_line":"            url\u003durl,"},{"line_number":1030,"context_line":"            idp_id\u003didp_id,"},{"line_number":1031,"context_line":"            proto\u003duuid.uuid4().hex,"},{"line_number":1032,"context_line":"            **kwargs)"},{"line_number":1033,"context_line":""},{"line_number":1034,"context_line":"        # removing IdP will remove the assigned protocol as well"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aa745d1_832c794b","line":1031,"updated":"2015-04-16 17:11:44.000000000","message":"won\u0027t this value be different from the value at line 1024?","commit_id":"c4ad5eeaadc6be01e3a1e0d82bfdeb22a8b784ac"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"ba92b007de4dcf5f8c7090d579a84fd4622ec7e6","unresolved":false,"context_lines":[{"line_number":1028,"context_line":"        resp, idp_id, proto \u003d self._assign_protocol_to_idp("},{"line_number":1029,"context_line":"            url\u003durl,"},{"line_number":1030,"context_line":"            idp_id\u003didp_id,"},{"line_number":1031,"context_line":"            proto\u003duuid.uuid4().hex,"},{"line_number":1032,"context_line":"            **kwargs)"},{"line_number":1033,"context_line":""},{"line_number":1034,"context_line":"        # removing IdP will remove the assigned protocol as well"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ab451fb_66be3f01","line":1031,"in_reply_to":"5aa745d1_832c794b","updated":"2015-04-17 01:44:26.000000000","message":"Steve, thanks for pointing this out, this line is incorrect and thus, L1038 is a dummy verification.","commit_id":"c4ad5eeaadc6be01e3a1e0d82bfdeb22a8b784ac"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e8bf95775f1aad53e03880a747b0b02e2ce10c82","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"        protocol_url \u003d url % {\u0027idp_id\u0027: idp_id,"},{"line_number":1025,"context_line":"                              \u0027protocol_id\u0027: protocol_id}"},{"line_number":1026,"context_line":""},{"line_number":1027,"context_line":"        # assign protocol to IdP"},{"line_number":1028,"context_line":"        kwargs \u003d {\u0027expected_status\u0027: 201}"},{"line_number":1029,"context_line":"        resp, idp_id, proto \u003d self._assign_protocol_to_idp("},{"line_number":1030,"context_line":"            url\u003durl,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ab451fb_264a7784","line":1027,"updated":"2015-04-17 02:11:11.000000000","message":"Following what Steve mentioned I started to wonder about this section. What is it supposed to do? If I delete it the test still passes.","commit_id":"1a0d23f94a27f4eef91ddd3ece277b658eeed3bb"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"fc3d231fc2d17c58bcb35c17b0891e666471b5e8","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"        protocol_url \u003d url % {\u0027idp_id\u0027: idp_id,"},{"line_number":1025,"context_line":"                              \u0027protocol_id\u0027: protocol_id}"},{"line_number":1026,"context_line":""},{"line_number":1027,"context_line":"        # assign protocol to IdP"},{"line_number":1028,"context_line":"        kwargs \u003d {\u0027expected_status\u0027: 201}"},{"line_number":1029,"context_line":"        resp, idp_id, proto \u003d self._assign_protocol_to_idp("},{"line_number":1030,"context_line":"            url\u003durl,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ab451fb_3a1dd473","line":1027,"in_reply_to":"3ab451fb_0d043613","updated":"2015-04-17 14:26:20.000000000","message":"I think your revision fixes my issue. Since it worked without actually having the records created it wasn\u0027t really testing anything. We could have easily regressed the behavior and not caught it.","commit_id":"1a0d23f94a27f4eef91ddd3ece277b658eeed3bb"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"07ffcca7d7d2929b131c7f08d969f67d2012bca8","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"        protocol_url \u003d url % {\u0027idp_id\u0027: idp_id,"},{"line_number":1025,"context_line":"                              \u0027protocol_id\u0027: protocol_id}"},{"line_number":1026,"context_line":""},{"line_number":1027,"context_line":"        # assign protocol to IdP"},{"line_number":1028,"context_line":"        kwargs \u003d {\u0027expected_status\u0027: 201}"},{"line_number":1029,"context_line":"        resp, idp_id, proto \u003d self._assign_protocol_to_idp("},{"line_number":1030,"context_line":"            url\u003durl,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ab451fb_0d043613","line":1027,"in_reply_to":"3ab451fb_1c37cab1","updated":"2015-04-17 05:37:29.000000000","message":"Done","commit_id":"1a0d23f94a27f4eef91ddd3ece277b658eeed3bb"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"115ca25bbd3cb2eb38c519e4bb01cd4204083aa8","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"        protocol_url \u003d url % {\u0027idp_id\u0027: idp_id,"},{"line_number":1025,"context_line":"                              \u0027protocol_id\u0027: protocol_id}"},{"line_number":1026,"context_line":""},{"line_number":1027,"context_line":"        # assign protocol to IdP"},{"line_number":1028,"context_line":"        kwargs \u003d {\u0027expected_status\u0027: 201}"},{"line_number":1029,"context_line":"        resp, idp_id, proto \u003d self._assign_protocol_to_idp("},{"line_number":1030,"context_line":"            url\u003durl,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ab451fb_dc8282c8","line":1027,"in_reply_to":"3ab451fb_1c37cab1","updated":"2015-04-17 03:39:51.000000000","message":"Great! this is a good idea and will make the testcase more straightforward, will follow it.\n\nThanks.","commit_id":"1a0d23f94a27f4eef91ddd3ece277b658eeed3bb"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"7969f315e513030bbe71b8f0181a3a9643cb7bfd","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"        protocol_url \u003d url % {\u0027idp_id\u0027: idp_id,"},{"line_number":1025,"context_line":"                              \u0027protocol_id\u0027: protocol_id}"},{"line_number":1026,"context_line":""},{"line_number":1027,"context_line":"        # assign protocol to IdP"},{"line_number":1028,"context_line":"        kwargs \u003d {\u0027expected_status\u0027: 201}"},{"line_number":1029,"context_line":"        resp, idp_id, proto \u003d self._assign_protocol_to_idp("},{"line_number":1030,"context_line":"            url\u003durl,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ab451fb_997c0c22","line":1027,"in_reply_to":"3ab451fb_264a7784","updated":"2015-04-17 02:49:37.000000000","message":"David, if you delete this section which will mean there is no federation protocol assigned the identity provider, after deleting this IdP, L1037 will pass for sure, and since there is no protocol assigned, so L1038 will passed too.\n\nThe previous issue which pointed out by Steve will lead to check a non-existent protocol, since there is no such protocol both L1037 or L1038 will pass. This is caused when I tried to replace the \u0027saml2\u0027 with the constant.\n\nWhat we want to prove here is there is some protocols assigned to IdP, but *the protocals* should be removed when the associated IdP is removed.\n\n\nThanks!","commit_id":"1a0d23f94a27f4eef91ddd3ece277b658eeed3bb"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a6f8fd38cc27f9f42610a8d3ca251f349ef2ca80","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"        protocol_url \u003d url % {\u0027idp_id\u0027: idp_id,"},{"line_number":1025,"context_line":"                              \u0027protocol_id\u0027: protocol_id}"},{"line_number":1026,"context_line":""},{"line_number":1027,"context_line":"        # assign protocol to IdP"},{"line_number":1028,"context_line":"        kwargs \u003d {\u0027expected_status\u0027: 201}"},{"line_number":1029,"context_line":"        resp, idp_id, proto \u003d self._assign_protocol_to_idp("},{"line_number":1030,"context_line":"            url\u003durl,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ab451fb_1c37cab1","line":1027,"in_reply_to":"3ab451fb_997c0c22","updated":"2015-04-17 03:17:55.000000000","message":"this is a weird one to verify...\n\n  idp_table will have idp_1\n  protocol_table will have protocol_1\n\nbut deleting idp_1 will remove it, and protocol_1.\n\nmaybe we should call self.federation.list_protocols(idp_1) before and after and make sure the size goes from 1 to 0?\n\njust thinking out loud here","commit_id":"1a0d23f94a27f4eef91ddd3ece277b658eeed3bb"}]}
