)]}'
{"keystone/tests/unit/contrib/federation/test_utils.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"707f242762455e41c4e96f387e8d200a4744ca69","unresolved":false,"context_lines":[{"line_number":835,"context_line":"        rp \u003d mapping_utils.RuleProcessor(FAKE_MAPPING_ID, rules)"},{"line_number":836,"context_line":"        return rp.process(self.assertion)"},{"line_number":837,"context_line":""},{"line_number":838,"context_line":"    def test_local_list_gets_squashed(self):"},{"line_number":839,"context_line":"        \"\"\"The locals list is actually squashed into a single dictionary.\"\"\""},{"line_number":840,"context_line":"        expected \u003d {"},{"line_number":841,"context_line":"            \u0027user\u0027: {"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5201f7_6b820f02","line":838,"range":{"start_line":838,"start_character":8,"end_line":838,"end_character":37},"updated":"2017-01-11 12:10:07.000000000","message":"are you going to add a similar test for the remote rules?","commit_id":"e3e5268e900a11fce92c7bc327ef2383b6eaefed"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"c3825fa3963c507be63cabf9e1d38ae234cc1605","unresolved":false,"context_lines":[{"line_number":835,"context_line":"        rp \u003d mapping_utils.RuleProcessor(FAKE_MAPPING_ID, rules)"},{"line_number":836,"context_line":"        return rp.process(self.assertion)"},{"line_number":837,"context_line":""},{"line_number":838,"context_line":"    def test_local_list_gets_squashed(self):"},{"line_number":839,"context_line":"        \"\"\"The locals list is actually squashed into a single dictionary.\"\"\""},{"line_number":840,"context_line":"        expected \u003d {"},{"line_number":841,"context_line":"            \u0027user\u0027: {"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5201f7_b63537dc","line":838,"in_reply_to":"ba5201f7_6b820f02","updated":"2017-01-11 14:00:43.000000000","message":"Likely yes, but I have no definitive plans.","commit_id":"e3e5268e900a11fce92c7bc327ef2383b6eaefed"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"707f242762455e41c4e96f387e8d200a4744ca69","unresolved":false,"context_lines":[{"line_number":854,"context_line":"        self.assertEqual(mapped_split, mapped_combined)"},{"line_number":855,"context_line":""},{"line_number":856,"context_line":"    def test_local_list_gets_squashed_first_dict_wins(self):"},{"line_number":857,"context_line":"        \"\"\"The locals list is actually squashed into a single dictionary.\"\"\""},{"line_number":858,"context_line":"        expected \u003d {"},{"line_number":859,"context_line":"            \u0027user\u0027: {"},{"line_number":860,"context_line":"                \u0027name\u0027: \u0027test_a_user\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5201f7_eb9fdf5c","line":857,"range":{"start_line":857,"start_character":11,"end_line":857,"end_character":73},"updated":"2017-01-11 12:10:07.000000000","message":"This is not very clear, I would change this docs to explain what should happen with using the mapping_with_duplicates.","commit_id":"e3e5268e900a11fce92c7bc327ef2383b6eaefed"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"f7cac83371381146fdd34c3221c56ac1c86200ba","unresolved":false,"context_lines":[{"line_number":854,"context_line":"        self.assertEqual(mapped_split, mapped_combined)"},{"line_number":855,"context_line":""},{"line_number":856,"context_line":"    def test_local_list_gets_squashed_first_dict_wins(self):"},{"line_number":857,"context_line":"        \"\"\"The locals list is actually squashed into a single dictionary.\"\"\""},{"line_number":858,"context_line":"        expected \u003d {"},{"line_number":859,"context_line":"            \u0027user\u0027: {"},{"line_number":860,"context_line":"                \u0027name\u0027: \u0027test_a_user\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5201f7_06a5ee45","line":857,"in_reply_to":"ba5201f7_a78423b1","updated":"2017-01-11 15:05:21.000000000","message":"yeah, the name would be enough. Got confused by the docstring, actually. Something like \"The local list is squashed and gives preference for the first defined dict\"","commit_id":"e3e5268e900a11fce92c7bc327ef2383b6eaefed"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"c3825fa3963c507be63cabf9e1d38ae234cc1605","unresolved":false,"context_lines":[{"line_number":854,"context_line":"        self.assertEqual(mapped_split, mapped_combined)"},{"line_number":855,"context_line":""},{"line_number":856,"context_line":"    def test_local_list_gets_squashed_first_dict_wins(self):"},{"line_number":857,"context_line":"        \"\"\"The locals list is actually squashed into a single dictionary.\"\"\""},{"line_number":858,"context_line":"        expected \u003d {"},{"line_number":859,"context_line":"            \u0027user\u0027: {"},{"line_number":860,"context_line":"                \u0027name\u0027: \u0027test_a_user\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5201f7_a78423b1","line":857,"in_reply_to":"ba5201f7_eb9fdf5c","updated":"2017-01-11 14:00:43.000000000","message":"Is the method name not enough? I\u0027ll try to rethink this comment.","commit_id":"e3e5268e900a11fce92c7bc327ef2383b6eaefed"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"0ed3e925df5b6674b2d892ec83fc6afce44a1d42","unresolved":false,"context_lines":[{"line_number":828,"context_line":""},{"line_number":829,"context_line":""},{"line_number":830,"context_line":"class TestMappingLocals(unit.BaseTestCase):"},{"line_number":831,"context_line":"    mapping_split \u003d {"},{"line_number":832,"context_line":"        \u0027rules\u0027: ["},{"line_number":833,"context_line":"            {"},{"line_number":834,"context_line":"                \u0027local\u0027: ["},{"line_number":835,"context_line":"                    {"},{"line_number":836,"context_line":"                        \u0027user\u0027: {\u0027name\u0027: \u0027{0}\u0027},"},{"line_number":837,"context_line":"                    },"},{"line_number":838,"context_line":"                    {"},{"line_number":839,"context_line":"                        \u0027group\u0027: {\u0027id\u0027: \u0027d34db33f\u0027}"},{"line_number":840,"context_line":"                    }"},{"line_number":841,"context_line":"                ],"},{"line_number":842,"context_line":"                \u0027remote\u0027: ["},{"line_number":843,"context_line":"                    {\u0027type\u0027: \u0027idp_username\u0027}"},{"line_number":844,"context_line":"                ]"},{"line_number":845,"context_line":"            }"},{"line_number":846,"context_line":"        ]"},{"line_number":847,"context_line":"    }"},{"line_number":848,"context_line":"    mapping_combined \u003d {"},{"line_number":849,"context_line":"        \u0027rules\u0027: ["},{"line_number":850,"context_line":"            {"},{"line_number":851,"context_line":"                \u0027local\u0027: ["},{"line_number":852,"context_line":"                    {"},{"line_number":853,"context_line":"                        \u0027user\u0027: {\u0027name\u0027: \u0027{0}\u0027},"},{"line_number":854,"context_line":"                        \u0027group\u0027: {\u0027id\u0027: \u0027d34db33f\u0027}"},{"line_number":855,"context_line":"                    }"},{"line_number":856,"context_line":"                ],"},{"line_number":857,"context_line":"                \u0027remote\u0027: ["},{"line_number":858,"context_line":"                    {\u0027type\u0027: \u0027idp_username\u0027}"},{"line_number":859,"context_line":"                ]"},{"line_number":860,"context_line":"            }"},{"line_number":861,"context_line":"        ]"},{"line_number":862,"context_line":"    }"},{"line_number":863,"context_line":"    mapping_with_duplicate \u003d {"},{"line_number":864,"context_line":"        \u0027rules\u0027: ["},{"line_number":865,"context_line":"            {"},{"line_number":866,"context_line":"                \u0027local\u0027: ["},{"line_number":867,"context_line":"                    {\u0027user\u0027: {\u0027name\u0027: \u0027test_{0}\u0027}},"},{"line_number":868,"context_line":"                    {\u0027user\u0027: {\u0027name\u0027: \u0027{0}\u0027}}"},{"line_number":869,"context_line":"                ],"},{"line_number":870,"context_line":"                \u0027remote\u0027: [{\u0027type\u0027: \u0027idp_username\u0027}]"},{"line_number":871,"context_line":"            }"},{"line_number":872,"context_line":"        ]"},{"line_number":873,"context_line":"    }"},{"line_number":874,"context_line":"    assertion \u003d {"},{"line_number":875,"context_line":"        \u0027idp_username\u0027: \u0027a_user\u0027"},{"line_number":876,"context_line":"    }"},{"line_number":877,"context_line":""},{"line_number":878,"context_line":"    def process(self, rules):"},{"line_number":879,"context_line":"        rp \u003d mapping_utils.RuleProcessor(FAKE_MAPPING_ID, rules)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a461143_9d306ba0","line":876,"range":{"start_line":831,"start_character":1,"end_line":876,"end_character":5},"updated":"2017-01-27 11:02:10.000000000","message":"would prefer to have them inside the tests since they are not reused elsewhere - this would also ease to read the tests.","commit_id":"2a79614c358b979d2697ec3e4a660bfa93090f17"}]}
