)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"8e0884c191061edb6d67f890e7ac6cee3899fa43","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"With this patch the matching logic is as follows:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"*) No whitelist specified - accept all values"},{"line_number":13,"context_line":"*) Empty whitelist specified - discard all values"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"*) No blacklist specified - accept all values"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a80dd14_1b11a253","line":12,"updated":"2015-03-17 13:23:27.000000000","message":"should this accept all values?\n\nif i don\u0027t specify whitelist or blacklist it accepts all values?\nthe only way to filter out values is to have a blacklist or whitelist defined, or an empty whitelist.... okay, i guess that makes sense.","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"f91b9277c3ba471a57b20d207aa3243f5d617f6f","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"With this patch the matching logic is as follows:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"*) No whitelist specified - accept all values"},{"line_number":13,"context_line":"*) Empty whitelist specified - discard all values"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"*) No blacklist specified - accept all values"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a80dd14_3b63c6de","line":12,"in_reply_to":"9a80dd14_1b11a253","updated":"2015-03-17 13:25:57.000000000","message":"it should, as this is what we had before white/blacklisting.","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"}],"keystone/tests/unit/test_v3_federation.py":[{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"d7f7abd7ae0b34b959466480da33d1b595ebe04e","unresolved":false,"context_lines":[{"line_number":2296,"context_line":"                    \"remote\": ["},{"line_number":2297,"context_line":"                        {"},{"line_number":2298,"context_line":"                            \"type\": \"REMOTE_USER_GROUPS\","},{"line_number":2299,"context_line":"                            \"blacklist\": []"},{"line_number":2300,"context_line":"                        }"},{"line_number":2301,"context_line":"                    ]"},{"line_number":2302,"context_line":"                }"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_06eb18b1","line":2299,"updated":"2015-03-17 09:37:45.000000000","message":"both options (old and new) will make tests pass :-)","commit_id":"f661a5366492689f454869a0eb9c3d0079e57d62"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a5e605b8061ab634c54ca6b7679cef8a612918d7","unresolved":false,"context_lines":[{"line_number":2307,"context_line":"        \"\"\"Test a mapping with empty blacklist specified"},{"line_number":2308,"context_line":""},{"line_number":2309,"context_line":"        Not adding a ``blacklist`` keyword to the mapping rules has the same"},{"line_number":2310,"context_line":"        effect as adding an empty ``blacklist``. In both cases all values will"},{"line_number":2311,"context_line":"        be accepted and passed."},{"line_number":2312,"context_line":""},{"line_number":2313,"context_line":"        This test checks scenario where an empty blacklist was specified."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_8e4c569f","line":2310,"updated":"2015-03-17 22:25:47.000000000","message":"Want to say:\n\n\"In both cases, the mapping engine will not discard any groups that are associated with apache environment variables\"","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"35400f6ae1ee8e9c7aafe5351138fe5453c00045","unresolved":false,"context_lines":[{"line_number":2307,"context_line":"        \"\"\"Test a mapping with empty blacklist specified"},{"line_number":2308,"context_line":""},{"line_number":2309,"context_line":"        Not adding a ``blacklist`` keyword to the mapping rules has the same"},{"line_number":2310,"context_line":"        effect as adding an empty ``blacklist``. In both cases all values will"},{"line_number":2311,"context_line":"        be accepted and passed."},{"line_number":2312,"context_line":""},{"line_number":2313,"context_line":"        This test checks scenario where an empty blacklist was specified."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_547016dc","line":2310,"in_reply_to":"9a80dd14_8e4c569f","updated":"2015-03-18 13:11:54.000000000","message":"It\u0027s good to have native english speaking reviewers :-)","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"7fc82461c17eb42ce504cd9dbf9d9d39d1950b41","unresolved":false,"context_lines":[{"line_number":2318,"context_line":"         - Create group ``NO_EXISTS``"},{"line_number":2319,"context_line":"         - Set mapping rules for existing IdP with a blacklist"},{"line_number":2320,"context_line":"           that passes through as REMOTE_USER_GROUPS"},{"line_number":2321,"context_line":"         - Issue unscoped token with on group  ``EXISTS`` and ``NO_EXISTS``"},{"line_number":2322,"context_line":""},{"line_number":2323,"context_line":"        \"\"\""},{"line_number":2324,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_6f8bc068","line":2321,"updated":"2015-03-17 12:01:19.000000000","message":"with what?","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"35400f6ae1ee8e9c7aafe5351138fe5453c00045","unresolved":false,"context_lines":[{"line_number":2318,"context_line":"         - Create group ``NO_EXISTS``"},{"line_number":2319,"context_line":"         - Set mapping rules for existing IdP with a blacklist"},{"line_number":2320,"context_line":"           that passes through as REMOTE_USER_GROUPS"},{"line_number":2321,"context_line":"         - Issue unscoped token with on group  ``EXISTS`` and ``NO_EXISTS``"},{"line_number":2322,"context_line":""},{"line_number":2323,"context_line":"        \"\"\""},{"line_number":2324,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_b480728c","line":2321,"in_reply_to":"9a80dd14_6f8bc068","updated":"2015-03-18 13:11:54.000000000","message":"with groups assigned.","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"7fc82461c17eb42ce504cd9dbf9d9d39d1950b41","unresolved":false,"context_lines":[{"line_number":2375,"context_line":"        assigned_group_ids \u003d r.json[\u0027token\u0027][\u0027user\u0027][\u0027OS-FEDERATION\u0027][\u0027groups\u0027]"},{"line_number":2376,"context_line":"        self.assertEqual(len(group_ids), len(assigned_group_ids))"},{"line_number":2377,"context_line":"        for group in assigned_group_ids:"},{"line_number":2378,"context_line":"            self.assertIn(group[\u0027id\u0027], group_ids)"},{"line_number":2379,"context_line":""},{"line_number":2380,"context_line":"    def test_not_adding_blacklist_passess_all_values(self):"},{"line_number":2381,"context_line":"        \"\"\"Test a mapping without blacklist specified."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_4fbc3c07","line":2378,"updated":"2015-03-17 12:01:19.000000000","message":"assertItemsEqual maybe should be here?","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"35400f6ae1ee8e9c7aafe5351138fe5453c00045","unresolved":false,"context_lines":[{"line_number":2375,"context_line":"        assigned_group_ids \u003d r.json[\u0027token\u0027][\u0027user\u0027][\u0027OS-FEDERATION\u0027][\u0027groups\u0027]"},{"line_number":2376,"context_line":"        self.assertEqual(len(group_ids), len(assigned_group_ids))"},{"line_number":2377,"context_line":"        for group in assigned_group_ids:"},{"line_number":2378,"context_line":"            self.assertIn(group[\u0027id\u0027], group_ids)"},{"line_number":2379,"context_line":""},{"line_number":2380,"context_line":"    def test_not_adding_blacklist_passess_all_values(self):"},{"line_number":2381,"context_line":"        \"\"\"Test a mapping without blacklist specified."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_fffe4304","line":2378,"in_reply_to":"9a80dd14_4fbc3c07","updated":"2015-03-18 13:11:54.000000000","message":"we are comparing ids only, before we checked cardinality of both sets.","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a5e605b8061ab634c54ca6b7679cef8a612918d7","unresolved":false,"context_lines":[{"line_number":2377,"context_line":"        for group in assigned_group_ids:"},{"line_number":2378,"context_line":"            self.assertIn(group[\u0027id\u0027], group_ids)"},{"line_number":2379,"context_line":""},{"line_number":2380,"context_line":"    def test_not_adding_blacklist_passess_all_values(self):"},{"line_number":2381,"context_line":"        \"\"\"Test a mapping without blacklist specified."},{"line_number":2382,"context_line":""},{"line_number":2383,"context_line":"        Not adding a ``blacklist`` keyword to the mapping rules has the same"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_0e06a621","line":2380,"updated":"2015-03-17 22:25:47.000000000","message":"you could create a common test here, it\u0027s basically the same code both times, and just the rules change, and that can simplified with:\n\n  del rules[\u0027rules\u0027][1][\u0027remote\u0027][1][\u0027blacklist\u0027]\n\nif this last suggestion is too wacky then ignore is, but i think a common test case would cut down on a lot of repetition here","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"35400f6ae1ee8e9c7aafe5351138fe5453c00045","unresolved":false,"context_lines":[{"line_number":2377,"context_line":"        for group in assigned_group_ids:"},{"line_number":2378,"context_line":"            self.assertIn(group[\u0027id\u0027], group_ids)"},{"line_number":2379,"context_line":""},{"line_number":2380,"context_line":"    def test_not_adding_blacklist_passess_all_values(self):"},{"line_number":2381,"context_line":"        \"\"\"Test a mapping without blacklist specified."},{"line_number":2382,"context_line":""},{"line_number":2383,"context_line":"        Not adding a ``blacklist`` keyword to the mapping rules has the same"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_0563ca1a","line":2380,"in_reply_to":"9a80dd14_0e06a621","updated":"2015-03-18 13:11:54.000000000","message":"I am not sure if you want make one test function that tests couple of functionalities ?","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"7fc82461c17eb42ce504cd9dbf9d9d39d1950b41","unresolved":false,"context_lines":[{"line_number":2392,"context_line":"         - Create group ``NO_EXISTS``"},{"line_number":2393,"context_line":"         - Set mapping rules for existing IdP with a blacklist"},{"line_number":2394,"context_line":"           that passes through as REMOTE_USER_GROUPS"},{"line_number":2395,"context_line":"         - Issue unscoped token with on group  ``EXISTS`` and ``NO_EXISTS``"},{"line_number":2396,"context_line":""},{"line_number":2397,"context_line":"        \"\"\""},{"line_number":2398,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_af85b85a","line":2395,"updated":"2015-03-17 12:01:19.000000000","message":"with what?","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"35400f6ae1ee8e9c7aafe5351138fe5453c00045","unresolved":false,"context_lines":[{"line_number":2392,"context_line":"         - Create group ``NO_EXISTS``"},{"line_number":2393,"context_line":"         - Set mapping rules for existing IdP with a blacklist"},{"line_number":2394,"context_line":"           that passes through as REMOTE_USER_GROUPS"},{"line_number":2395,"context_line":"         - Issue unscoped token with on group  ``EXISTS`` and ``NO_EXISTS``"},{"line_number":2396,"context_line":""},{"line_number":2397,"context_line":"        \"\"\""},{"line_number":2398,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_3f57fb03","line":2395,"in_reply_to":"9a80dd14_af85b85a","updated":"2015-03-18 13:11:54.000000000","message":"answered above.","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"7fc82461c17eb42ce504cd9dbf9d9d39d1950b41","unresolved":false,"context_lines":[{"line_number":2448,"context_line":"        assigned_group_ids \u003d r.json[\u0027token\u0027][\u0027user\u0027][\u0027OS-FEDERATION\u0027][\u0027groups\u0027]"},{"line_number":2449,"context_line":"        self.assertEqual(len(group_ids), len(assigned_group_ids))"},{"line_number":2450,"context_line":"        for group in assigned_group_ids:"},{"line_number":2451,"context_line":"            self.assertIn(group[\u0027id\u0027], group_ids)"},{"line_number":2452,"context_line":""},{"line_number":2453,"context_line":"    def test_empty_whitelist_discards_all_values(self):"},{"line_number":2454,"context_line":"        \"\"\"Test that empty whitelist blocks all the values"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_cfc82cab","line":2451,"updated":"2015-03-17 12:01:19.000000000","message":"assertItemsEqual maybe should be here?","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"35400f6ae1ee8e9c7aafe5351138fe5453c00045","unresolved":false,"context_lines":[{"line_number":2448,"context_line":"        assigned_group_ids \u003d r.json[\u0027token\u0027][\u0027user\u0027][\u0027OS-FEDERATION\u0027][\u0027groups\u0027]"},{"line_number":2449,"context_line":"        self.assertEqual(len(group_ids), len(assigned_group_ids))"},{"line_number":2450,"context_line":"        for group in assigned_group_ids:"},{"line_number":2451,"context_line":"            self.assertIn(group[\u0027id\u0027], group_ids)"},{"line_number":2452,"context_line":""},{"line_number":2453,"context_line":"    def test_empty_whitelist_discards_all_values(self):"},{"line_number":2454,"context_line":"        \"\"\"Test that empty whitelist blocks all the values"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_7f409335","line":2451,"in_reply_to":"9a80dd14_cfc82cab","updated":"2015-03-18 13:11:54.000000000","message":"answered above.","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a5e605b8061ab634c54ca6b7679cef8a612918d7","unresolved":false,"context_lines":[{"line_number":2458,"context_line":"        values, whereas the latter would discard all the values."},{"line_number":2459,"context_line":""},{"line_number":2460,"context_line":"        This test checks scenario where an empty whitelist was specified."},{"line_number":2461,"context_line":"        Expected result is to block any value."},{"line_number":2462,"context_line":""},{"line_number":2463,"context_line":"        The test scenario is as follows:"},{"line_number":2464,"context_line":"         - Create group ``EXISTS``"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_113407de","line":2461,"updated":"2015-03-17 22:25:47.000000000","message":"the expected result is that no groups are matched","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"35400f6ae1ee8e9c7aafe5351138fe5453c00045","unresolved":false,"context_lines":[{"line_number":2458,"context_line":"        values, whereas the latter would discard all the values."},{"line_number":2459,"context_line":""},{"line_number":2460,"context_line":"        This test checks scenario where an empty whitelist was specified."},{"line_number":2461,"context_line":"        Expected result is to block any value."},{"line_number":2462,"context_line":""},{"line_number":2463,"context_line":"        The test scenario is as follows:"},{"line_number":2464,"context_line":"         - Create group ``EXISTS``"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_bf4a0b53","line":2461,"in_reply_to":"9a80dd14_113407de","updated":"2015-03-18 13:11:54.000000000","message":"Done","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a5e605b8061ab634c54ca6b7679cef8a612918d7","unresolved":false,"context_lines":[{"line_number":2513,"context_line":"                          self._issue_unscoped_token,"},{"line_number":2514,"context_line":"                          assertion\u003d\u0027UNMATCHED_GROUP_ASSERTION\u0027)"},{"line_number":2515,"context_line":""},{"line_number":2516,"context_line":"    def test_not_setting_whitelist_accepts_all_values(self):"},{"line_number":2517,"context_line":"        \"\"\"Test that not setting whitelist passes"},{"line_number":2518,"context_line":""},{"line_number":2519,"context_line":"        Not adding a ``whitelist`` keyword to the mapping value is different"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_518aff64","line":2516,"updated":"2015-03-17 22:25:47.000000000","message":"you can create another common test here","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a5e605b8061ab634c54ca6b7679cef8a612918d7","unresolved":false,"context_lines":[{"line_number":2519,"context_line":"        Not adding a ``whitelist`` keyword to the mapping value is different"},{"line_number":2520,"context_line":"        than adding empty whitelist.  The former case will simply pass all the"},{"line_number":2521,"context_line":"        values, whereas the latter would discard all the values."},{"line_number":2522,"context_line":"        This tests checks a scenration where a ``whitelist`` was not specified."},{"line_number":2523,"context_line":"        Expected result is to pass any value."},{"line_number":2524,"context_line":""},{"line_number":2525,"context_line":"        The test scenario is as follows:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_719aa3c6","line":2522,"updated":"2015-03-17 22:25:47.000000000","message":"add a new line before \"This test\" - you do it in all the others\n\nalso scenario*","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"35400f6ae1ee8e9c7aafe5351138fe5453c00045","unresolved":false,"context_lines":[{"line_number":2519,"context_line":"        Not adding a ``whitelist`` keyword to the mapping value is different"},{"line_number":2520,"context_line":"        than adding empty whitelist.  The former case will simply pass all the"},{"line_number":2521,"context_line":"        values, whereas the latter would discard all the values."},{"line_number":2522,"context_line":"        This tests checks a scenration where a ``whitelist`` was not specified."},{"line_number":2523,"context_line":"        Expected result is to pass any value."},{"line_number":2524,"context_line":""},{"line_number":2525,"context_line":"        The test scenario is as follows:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_c5f1b296","line":2522,"in_reply_to":"9a80dd14_719aa3c6","updated":"2015-03-18 13:11:54.000000000","message":"Done","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a5e605b8061ab634c54ca6b7679cef8a612918d7","unresolved":false,"context_lines":[{"line_number":2520,"context_line":"        than adding empty whitelist.  The former case will simply pass all the"},{"line_number":2521,"context_line":"        values, whereas the latter would discard all the values."},{"line_number":2522,"context_line":"        This tests checks a scenration where a ``whitelist`` was not specified."},{"line_number":2523,"context_line":"        Expected result is to pass any value."},{"line_number":2524,"context_line":""},{"line_number":2525,"context_line":"        The test scenario is as follows:"},{"line_number":2526,"context_line":"         - Create group ``EXISTS``"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_f194d38d","line":2523,"updated":"2015-03-17 22:25:47.000000000","message":"Expected result is that no groups are ignored.","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"35400f6ae1ee8e9c7aafe5351138fe5453c00045","unresolved":false,"context_lines":[{"line_number":2520,"context_line":"        than adding empty whitelist.  The former case will simply pass all the"},{"line_number":2521,"context_line":"        values, whereas the latter would discard all the values."},{"line_number":2522,"context_line":"        This tests checks a scenration where a ``whitelist`` was not specified."},{"line_number":2523,"context_line":"        Expected result is to pass any value."},{"line_number":2524,"context_line":""},{"line_number":2525,"context_line":"        The test scenario is as follows:"},{"line_number":2526,"context_line":"         - Create group ``EXISTS``"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_252e0efb","line":2523,"in_reply_to":"9a80dd14_f194d38d","updated":"2015-03-18 13:11:54.000000000","message":"Done","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a5e605b8061ab634c54ca6b7679cef8a612918d7","unresolved":false,"context_lines":[{"line_number":2538,"context_line":"        group_exists[\u0027name\u0027] \u003d \u0027EXISTS\u0027"},{"line_number":2539,"context_line":"        group_exists \u003d self.identity_api.create_group(group_exists)"},{"line_number":2540,"context_line":""},{"line_number":2541,"context_line":"        # Add a group \"NO_EXISTS\""},{"line_number":2542,"context_line":"        group_no_exists \u003d self.new_group_ref(domain_id\u003ddomain_id)"},{"line_number":2543,"context_line":"        group_no_exists[\u0027name\u0027] \u003d \u0027NO_EXISTS\u0027"},{"line_number":2544,"context_line":"        group_no_exists \u003d self.identity_api.create_group(group_no_exists)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_917637a2","line":2541,"updated":"2015-03-17 22:25:47.000000000","message":"this second group doesn\u0027t really buy us anything","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"35400f6ae1ee8e9c7aafe5351138fe5453c00045","unresolved":false,"context_lines":[{"line_number":2538,"context_line":"        group_exists[\u0027name\u0027] \u003d \u0027EXISTS\u0027"},{"line_number":2539,"context_line":"        group_exists \u003d self.identity_api.create_group(group_exists)"},{"line_number":2540,"context_line":""},{"line_number":2541,"context_line":"        # Add a group \"NO_EXISTS\""},{"line_number":2542,"context_line":"        group_no_exists \u003d self.new_group_ref(domain_id\u003ddomain_id)"},{"line_number":2543,"context_line":"        group_no_exists[\u0027name\u0027] \u003d \u0027NO_EXISTS\u0027"},{"line_number":2544,"context_line":"        group_no_exists \u003d self.identity_api.create_group(group_no_exists)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_9f62a7d7","line":2541,"in_reply_to":"9a80dd14_917637a2","updated":"2015-03-18 13:11:54.000000000","message":"I simply believe there is better to operate on input with more one group. Especially since we are talking about passing \"complex\" attributes, like lists of groups etc.","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"7fc82461c17eb42ce504cd9dbf9d9d39d1950b41","unresolved":false,"context_lines":[{"line_number":2582,"context_line":"        assigned_group_ids \u003d r.json[\u0027token\u0027][\u0027user\u0027][\u0027OS-FEDERATION\u0027][\u0027groups\u0027]"},{"line_number":2583,"context_line":"        self.assertEqual(len(group_ids), len(assigned_group_ids))"},{"line_number":2584,"context_line":"        for group in assigned_group_ids:"},{"line_number":2585,"context_line":"            self.assertIn(group[\u0027id\u0027], group_ids)"},{"line_number":2586,"context_line":""},{"line_number":2587,"context_line":"    def test_assertion_prefix_parameter(self):"},{"line_number":2588,"context_line":"        \"\"\"Test parameters filtering based on the prefix."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_ef2330a5","line":2585,"updated":"2015-03-17 12:01:19.000000000","message":"same","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"35400f6ae1ee8e9c7aafe5351138fe5453c00045","unresolved":false,"context_lines":[{"line_number":2582,"context_line":"        assigned_group_ids \u003d r.json[\u0027token\u0027][\u0027user\u0027][\u0027OS-FEDERATION\u0027][\u0027groups\u0027]"},{"line_number":2583,"context_line":"        self.assertEqual(len(group_ids), len(assigned_group_ids))"},{"line_number":2584,"context_line":"        for group in assigned_group_ids:"},{"line_number":2585,"context_line":"            self.assertIn(group[\u0027id\u0027], group_ids)"},{"line_number":2586,"context_line":""},{"line_number":2587,"context_line":"    def test_assertion_prefix_parameter(self):"},{"line_number":2588,"context_line":"        \"\"\"Test parameters filtering based on the prefix."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_df5c1f1c","line":2585,"in_reply_to":"9a80dd14_ef2330a5","updated":"2015-03-18 13:11:54.000000000","message":"same","commit_id":"ae45c68d7ec26b612dd420cbced0cb166d3d6cb5"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"3fdefb073fa413882262cf311f3a95d2b252cf43","unresolved":false,"context_lines":[{"line_number":2461,"context_line":"        values, whereas the latter would discard all the values."},{"line_number":2462,"context_line":""},{"line_number":2463,"context_line":"        This test checks scenario where an empty whitelist was specified."},{"line_number":2464,"context_line":"        The expect result is that no groups are matched."},{"line_number":2465,"context_line":""},{"line_number":2466,"context_line":"        The test scenario is as follows:"},{"line_number":2467,"context_line":"         - Create group ``EXISTS``"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_d25db117","line":2464,"updated":"2015-03-19 15:36:41.000000000","message":"expected*","commit_id":"56d91000a47a601d8eb1b2feddaffdec9885389e"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"27e7315ffd8a49c8e894ec5b71b7e5c6e2ce6ead","unresolved":false,"context_lines":[{"line_number":2461,"context_line":"        values, whereas the latter would discard all the values."},{"line_number":2462,"context_line":""},{"line_number":2463,"context_line":"        This test checks scenario where an empty whitelist was specified."},{"line_number":2464,"context_line":"        The expect result is that no groups are matched."},{"line_number":2465,"context_line":""},{"line_number":2466,"context_line":"        The test scenario is as follows:"},{"line_number":2467,"context_line":"         - Create group ``EXISTS``"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_840660cc","line":2464,"in_reply_to":"9a80dd14_d25db117","updated":"2015-03-20 18:18:55.000000000","message":"Done","commit_id":"56d91000a47a601d8eb1b2feddaffdec9885389e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b726dc8250f66d94d3f783a0ff1dbf68b4c9a520","unresolved":false,"context_lines":[{"line_number":2303,"context_line":"        }"},{"line_number":2304,"context_line":"        self.federation_api.update_mapping(self.mapping[\u0027id\u0027], rules)"},{"line_number":2305,"context_line":""},{"line_number":2306,"context_line":"    def test_empty_blacklist_passess_all_values(self):"},{"line_number":2307,"context_line":"        \"\"\"Test a mapping with empty blacklist specified"},{"line_number":2308,"context_line":""},{"line_number":2309,"context_line":"        Not adding a ``blacklist`` keyword to the mapping rules has the same"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a6ced46_970fb887","line":2306,"updated":"2015-03-25 23:38:22.000000000","message":"change \"passess\" to \"passes\"","commit_id":"19190d6518934699f184539e28b4af638ca430ed"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b726dc8250f66d94d3f783a0ff1dbf68b4c9a520","unresolved":false,"context_lines":[{"line_number":2319,"context_line":"         - Create group ``NO_EXISTS``"},{"line_number":2320,"context_line":"         - Set mapping rules for existing IdP with a blacklist"},{"line_number":2321,"context_line":"           that passes through as REMOTE_USER_GROUPS"},{"line_number":2322,"context_line":"         - Issue unscoped token with groups  ``EXISTS`` and ``NO_EXISTS``"},{"line_number":2323,"context_line":"           assigned"},{"line_number":2324,"context_line":""},{"line_number":2325,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"1a6ced46_b7f91482","line":2322,"updated":"2015-03-25 23:38:22.000000000","message":"remove extra space after \"groups\"","commit_id":"19190d6518934699f184539e28b4af638ca430ed"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b726dc8250f66d94d3f783a0ff1dbf68b4c9a520","unresolved":false,"context_lines":[{"line_number":2379,"context_line":"        for group in assigned_group_ids:"},{"line_number":2380,"context_line":"            self.assertIn(group[\u0027id\u0027], group_ids)"},{"line_number":2381,"context_line":""},{"line_number":2382,"context_line":"    def test_not_adding_blacklist_passess_all_values(self):"},{"line_number":2383,"context_line":"        \"\"\"Test a mapping without blacklist specified."},{"line_number":2384,"context_line":""},{"line_number":2385,"context_line":"        Not adding a ``blacklist`` keyword to the mapping rules has the same"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a6ced46_5719c0d5","line":2382,"updated":"2015-03-25 23:38:22.000000000","message":"change \"passess\" to \"passes\"","commit_id":"19190d6518934699f184539e28b4af638ca430ed"}]}
