)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"b4ee1f5ad367df050df4257feda50f755944122b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"order as the controller constructs its list."},{"line_number":29,"context_line":"3. Ensure the APIv2TestCase _get_collection_kwargs maintains order"},{"line_number":30,"context_line":"throughout."},{"line_number":31,"context_line":"4. Use new sort_dict_lists function to sort values before assertion in test_attr_info_with_convert_list_to"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change-Id: I547cfa80cf83b0340b459279df9283443562326b"},{"line_number":34,"context_line":"Partial-bug: #1348818"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"baada198_cfd29e5a","line":31,"updated":"2014-08-08 12:38:13.000000000","message":"commit lines should be wrapped at 72 characters[1].\n\n\n[1] https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_GIT_commit_message_structure","commit_id":"139b24a1d58e71779b9a244e9d99d31b4ef4d032"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"1d274fc8f015bddcba28afd313be5ebfa2eb3e9e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"order as the controller constructs its list."},{"line_number":29,"context_line":"3. Ensure the APIv2TestCase _get_collection_kwargs maintains order"},{"line_number":30,"context_line":"throughout."},{"line_number":31,"context_line":"4. Use new sort_dict_lists function to sort values before assertion in test_attr_info_with_convert_list_to"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change-Id: I547cfa80cf83b0340b459279df9283443562326b"},{"line_number":34,"context_line":"Partial-bug: #1348818"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"baada198_6547f1a4","line":31,"in_reply_to":"baada198_cfd29e5a","updated":"2014-08-08 13:58:07.000000000","message":"Done","commit_id":"139b24a1d58e71779b9a244e9d99d31b4ef4d032"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"09ec10f72278bd5f75ae2b53a92b4edfda903cb8","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This fixes the fields and filters units tests that break with a"},{"line_number":10,"context_line":"randomized PYTHONHASHSEED (see the bug report)."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The RESOURCE_ATTRIBUTE_MAP is stored as a dict leading to an"},{"line_number":13,"context_line":"unpredictable output order. Values in kvp strings are being stored as"},{"line_number":14,"context_line":"sets underpinned by dicts when converted, leading to unpredictable"},{"line_number":15,"context_line":"ordering of values when read."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"baada198_c4759b35","line":12,"updated":"2014-08-12 22:28:54.000000000","message":"nit:  This content is better suited for the bug report.  This commit message should just describe what it changes.  (i.e. you\u0027d remove from here to L23)","commit_id":"f103ce48ca60e12952be7aa6d5183f64ef826370"}],"neutron/api/v2/base.py":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"19586d8fe46cf0ef4ed95a58c56fd602ec896f14","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        print \"lmkkljljk;knjnljnljnljknljnljk\""},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"        print original_fields"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        kwargs \u003d {\u0027filters\u0027: filters,"},{"line_number":239,"context_line":"                  \u0027fields\u0027: original_fields}"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_465410c6","line":236,"updated":"2014-08-06 10:14:05.000000000","message":"debug prints?","commit_id":"2c6e70ee69a7c8bc6fbfbd143ed7dcfa0341c368"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"b4ee1f5ad367df050df4257feda50f755944122b","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        if not fields_to_strip:"},{"line_number":168,"context_line":"            return data"},{"line_number":169,"context_line":"        return collections.OrderedDict(item for item in data.iteritems()"},{"line_number":170,"context_line":"                                       if (item[0] not in fields_to_strip))"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    def _do_field_list(self, original_fields):"},{"line_number":173,"context_line":"        fields_to_add \u003d None"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_8f58a626","line":170,"updated":"2014-08-08 12:38:13.000000000","message":"() is not required around the if condition.","commit_id":"139b24a1d58e71779b9a244e9d99d31b4ef4d032"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"1d274fc8f015bddcba28afd313be5ebfa2eb3e9e","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        if not fields_to_strip:"},{"line_number":168,"context_line":"            return data"},{"line_number":169,"context_line":"        return collections.OrderedDict(item for item in data.iteritems()"},{"line_number":170,"context_line":"                                       if (item[0] not in fields_to_strip))"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    def _do_field_list(self, original_fields):"},{"line_number":173,"context_line":"        fields_to_add \u003d None"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_6570d109","line":170,"in_reply_to":"baada198_8f58a626","updated":"2014-08-08 13:58:07.000000000","message":"Done","commit_id":"139b24a1d58e71779b9a244e9d99d31b4ef4d032"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"33e60d0e0f30759560d35ad138f662c993e1d92b","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        if not fields_to_strip:"},{"line_number":169,"context_line":"            return data"},{"line_number":170,"context_line":"        return collections.OrderedDict(item for item in data.iteritems()"},{"line_number":171,"context_line":"                                       if item[0] not in fields_to_strip)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def _do_field_list(self, original_fields):"},{"line_number":174,"context_line":"        fields_to_add \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_81106b50","line":171,"updated":"2014-08-08 19:22:19.000000000","message":"This is a tweak in the core of the api, so I am a little nervous about it. That said, I looked around at what is affected by it, and I think that this is a positive change. In the future Python will be run with random hash seeds, and this tweak will help to keep the attribute order predictable.\n\nBe prepared however, for core reviewers more familiar with its consequences to have a different response to this tweak.","commit_id":"9c98999fc513206d9abd35ae32e129c69b7d7a44"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"465b4d0f68725e0d9ba36c9ef323ccf9e805bb61","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        if not fields_to_strip:"},{"line_number":169,"context_line":"            return data"},{"line_number":170,"context_line":"        return collections.OrderedDict(item for item in data.iteritems()"},{"line_number":171,"context_line":"                                       if item[0] not in fields_to_strip)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def _do_field_list(self, original_fields):"},{"line_number":174,"context_line":"        fields_to_add \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_e6ebf578","line":171,"in_reply_to":"baada198_81106b50","updated":"2014-08-09 00:26:07.000000000","message":"IMO, a change about a bug concerning tests should not impact the tested code","commit_id":"9c98999fc513206d9abd35ae32e129c69b7d7a44"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"054de159c67f2157838384b09551373dd6feb652","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        if not fields_to_strip:"},{"line_number":169,"context_line":"            return data"},{"line_number":170,"context_line":"        return collections.OrderedDict(item for item in data.iteritems()"},{"line_number":171,"context_line":"                                       if item[0] not in fields_to_strip)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def _do_field_list(self, original_fields):"},{"line_number":174,"context_line":"        fields_to_add \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_b8691528","line":171,"in_reply_to":"baada198_98337160","updated":"2014-08-09 09:14:29.000000000","message":"There is nothing wrong with returning attributes unordered, so I would say, the only thing to fix here are unit tests.","commit_id":"9c98999fc513206d9abd35ae32e129c69b7d7a44"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"30b1e09c6103df8be77346013de4e53eee6c4925","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        if not fields_to_strip:"},{"line_number":169,"context_line":"            return data"},{"line_number":170,"context_line":"        return collections.OrderedDict(item for item in data.iteritems()"},{"line_number":171,"context_line":"                                       if item[0] not in fields_to_strip)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def _do_field_list(self, original_fields):"},{"line_number":174,"context_line":"        fields_to_add \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_ffd19356","line":171,"in_reply_to":"baada198_b8691528","updated":"2014-08-11 13:17:16.000000000","message":"Done","commit_id":"9c98999fc513206d9abd35ae32e129c69b7d7a44"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"e50b3c3729ce30ab702c0fec9adc097f61add362","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        if not fields_to_strip:"},{"line_number":169,"context_line":"            return data"},{"line_number":170,"context_line":"        return collections.OrderedDict(item for item in data.iteritems()"},{"line_number":171,"context_line":"                                       if item[0] not in fields_to_strip)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def _do_field_list(self, original_fields):"},{"line_number":174,"context_line":"        fields_to_add \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_98337160","line":171,"in_reply_to":"baada198_e6ebf578","updated":"2014-08-09 09:06:02.000000000","message":"The tests that brought about this fix are checking that a call in the controller has been made with specific parameters. \nThe problem is that the code uses a dict here so one of the parameters that the function is called with is potentially in a different order with different hashseeds.\nI\u0027ll need to modify the order of the parameters in the controller from the test, in order to make the assertion work. I\u0027ll look into what I can do with mock from the test code.","commit_id":"9c98999fc513206d9abd35ae32e129c69b7d7a44"}],"neutron/tests/base.py":[{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"734194bf89d95ffd8fb40c47350902718ed45830","unresolved":false,"context_lines":[{"line_number":218,"context_line":"            return"},{"line_number":219,"context_line":"        self.fail(\u0027Execution of this test timed out\u0027)"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    def assertOrderedEqual(self, actual, expected):"},{"line_number":222,"context_line":"        expect_val \u003d self.sort_dict_lists(expected)"},{"line_number":223,"context_line":"        actual_val \u003d self.sort_dict_lists(actual)"},{"line_number":224,"context_line":"        self.assertEqual(actual_val, expect_val)"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_e8759886","line":221,"updated":"2014-08-08 14:03:59.000000000","message":"the usual order is expected, observed","commit_id":"4619323e44e1c3d3801d60e8a5f5848efd6085ee"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"f249d1971006a8a9c2c2654e4efd08c809c644c6","unresolved":false,"context_lines":[{"line_number":218,"context_line":"            return"},{"line_number":219,"context_line":"        self.fail(\u0027Execution of this test timed out\u0027)"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    def assertOrderedEqual(self, actual, expected):"},{"line_number":222,"context_line":"        expect_val \u003d self.sort_dict_lists(expected)"},{"line_number":223,"context_line":"        actual_val \u003d self.sort_dict_lists(actual)"},{"line_number":224,"context_line":"        self.assertEqual(actual_val, expect_val)"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_a88c802f","line":221,"in_reply_to":"baada198_e8759886","updated":"2014-08-08 14:10:33.000000000","message":"Done","commit_id":"4619323e44e1c3d3801d60e8a5f5848efd6085ee"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"734194bf89d95ffd8fb40c47350902718ed45830","unresolved":false,"context_lines":[{"line_number":221,"context_line":"    def assertOrderedEqual(self, actual, expected):"},{"line_number":222,"context_line":"        expect_val \u003d self.sort_dict_lists(expected)"},{"line_number":223,"context_line":"        actual_val \u003d self.sort_dict_lists(actual)"},{"line_number":224,"context_line":"        self.assertEqual(actual_val, expect_val)"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    def sort_dict_lists(self, dic):"},{"line_number":227,"context_line":"        for (key, value) in dic.iteritems():"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_48d7644f","line":224,"updated":"2014-08-08 14:03:59.000000000","message":"it should be:\n\n  self.assertEqual(expect_val, actual_val)","commit_id":"4619323e44e1c3d3801d60e8a5f5848efd6085ee"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"f249d1971006a8a9c2c2654e4efd08c809c644c6","unresolved":false,"context_lines":[{"line_number":221,"context_line":"    def assertOrderedEqual(self, actual, expected):"},{"line_number":222,"context_line":"        expect_val \u003d self.sort_dict_lists(expected)"},{"line_number":223,"context_line":"        actual_val \u003d self.sort_dict_lists(actual)"},{"line_number":224,"context_line":"        self.assertEqual(actual_val, expect_val)"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    def sort_dict_lists(self, dic):"},{"line_number":227,"context_line":"        for (key, value) in dic.iteritems():"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_c891b447","line":224,"in_reply_to":"baada198_48d7644f","updated":"2014-08-08 14:10:33.000000000","message":"Done","commit_id":"4619323e44e1c3d3801d60e8a5f5848efd6085ee"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"465b4d0f68725e0d9ba36c9ef323ccf9e805bb61","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        self.assertEqual(expect_val, actual_val)"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    def sort_dict_lists(self, dic):"},{"line_number":227,"context_line":"        for (key, value) in dic.iteritems():"},{"line_number":228,"context_line":"            if isinstance(value, list):"},{"line_number":229,"context_line":"                dic[key] \u003d sorted(value)"},{"line_number":230,"context_line":"            elif isinstance(value, dict):"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_c6f27168","line":227,"updated":"2014-08-09 00:26:07.000000000","message":"() are useless in the for definition","commit_id":"9c98999fc513206d9abd35ae32e129c69b7d7a44"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"30b1e09c6103df8be77346013de4e53eee6c4925","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        self.assertEqual(expect_val, actual_val)"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    def sort_dict_lists(self, dic):"},{"line_number":227,"context_line":"        for (key, value) in dic.iteritems():"},{"line_number":228,"context_line":"            if isinstance(value, list):"},{"line_number":229,"context_line":"                dic[key] \u003d sorted(value)"},{"line_number":230,"context_line":"            elif isinstance(value, dict):"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_7fbd8302","line":227,"in_reply_to":"baada198_c6f27168","updated":"2014-08-11 13:17:16.000000000","message":"Done","commit_id":"9c98999fc513206d9abd35ae32e129c69b7d7a44"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"09ec10f72278bd5f75ae2b53a92b4edfda903cb8","unresolved":false,"context_lines":[{"line_number":219,"context_line":"        self.fail(\u0027Execution of this test timed out\u0027)"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    def assertOrderedEqual(self, expected, actual):"},{"line_number":222,"context_line":"        expect_val \u003d self.sort_dict_lists(expected)"},{"line_number":223,"context_line":"        actual_val \u003d self.sort_dict_lists(actual)"},{"line_number":224,"context_line":"        self.assertEqual(expect_val, actual_val)"},{"line_number":225,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"baada198_04eb13de","line":222,"updated":"2014-08-12 22:28:54.000000000","message":"nit:  why bother with the temporaries here?  They don\u0027t really add value, just extra code to read.","commit_id":"f103ce48ca60e12952be7aa6d5183f64ef826370"}],"neutron/tests/unit/test_api_v2.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"c8a7d1cf4328ce755ac05eded8d6c1e04d89d72e","unresolved":false,"context_lines":[{"line_number":1504,"context_line":""},{"line_number":1505,"context_line":"class FiltersTestCase(base.BaseTestCase):"},{"line_number":1506,"context_line":""},{"line_number":1507,"context_line":"    def _sort_dict_lists(self, dic):"},{"line_number":1508,"context_line":"        for (key, value) in dic.iteritems():"},{"line_number":1509,"context_line":"            if isinstance(value, list):"},{"line_number":1510,"context_line":"                dic[key] \u003d sorted(value)"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_70b434f1","line":1507,"updated":"2014-08-07 15:20:51.000000000","message":"This would be useful to have in the BaseTestCase class.","commit_id":"0c3867fc86c4efe3402c902623f8507701d2f210"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"b4ee1f5ad367df050df4257feda50f755944122b","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        policy_attrs \u003d [name for (name, info) in attr_info.items()"},{"line_number":136,"context_line":"                        if info.get(\u0027required_by_policy\u0027)]"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        for (name, info) in attr_info.items():"},{"line_number":139,"context_line":"            if info.get(\u0027primary_key\u0027):"},{"line_number":140,"context_line":"                policy_attrs.append(name)"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_dd0b372b","line":138,"updated":"2014-08-08 12:38:13.000000000","message":"() are not required in the for definition","commit_id":"139b24a1d58e71779b9a244e9d99d31b4ef4d032"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"1d274fc8f015bddcba28afd313be5ebfa2eb3e9e","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        policy_attrs \u003d [name for (name, info) in attr_info.items()"},{"line_number":136,"context_line":"                        if info.get(\u0027required_by_policy\u0027)]"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        for (name, info) in attr_info.items():"},{"line_number":139,"context_line":"            if info.get(\u0027primary_key\u0027):"},{"line_number":140,"context_line":"                policy_attrs.append(name)"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_e57ce1ec","line":138,"in_reply_to":"baada198_dd0b372b","updated":"2014-08-08 13:58:07.000000000","message":"Done","commit_id":"139b24a1d58e71779b9a244e9d99d31b4ef4d032"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"b4ee1f5ad367df050df4257feda50f755944122b","unresolved":false,"context_lines":[{"line_number":1529,"context_line":"        actual_val \u003d api_common.get_filters(request, attr_info)"},{"line_number":1530,"context_line":"        expect_val \u003d self.sort_dict_lists(expect_val)"},{"line_number":1531,"context_line":"        actual_val \u003d self.sort_dict_lists(actual_val)"},{"line_number":1532,"context_line":"        self.assertEqual(expect_val, actual_val)"},{"line_number":1533,"context_line":""},{"line_number":1534,"context_line":"    def test_attr_info_with_convert_to(self):"},{"line_number":1535,"context_line":"        path \u003d \u0027/?foo\u003d4\u0026bar\u003d3\u0026baz\u003d2\u0026qux\u003d1\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_8f418638","line":1532,"updated":"2014-08-08 12:38:13.000000000","message":"Instead of ordering expected and observed  results, we could define a new assertOrderedEqual which compares an ordered version of expected and observed results ... because to solve the bug we will need such features often","commit_id":"139b24a1d58e71779b9a244e9d99d31b4ef4d032"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"1d274fc8f015bddcba28afd313be5ebfa2eb3e9e","unresolved":false,"context_lines":[{"line_number":1529,"context_line":"        actual_val \u003d api_common.get_filters(request, attr_info)"},{"line_number":1530,"context_line":"        expect_val \u003d self.sort_dict_lists(expect_val)"},{"line_number":1531,"context_line":"        actual_val \u003d self.sort_dict_lists(actual_val)"},{"line_number":1532,"context_line":"        self.assertEqual(expect_val, actual_val)"},{"line_number":1533,"context_line":""},{"line_number":1534,"context_line":"    def test_attr_info_with_convert_to(self):"},{"line_number":1535,"context_line":"        path \u003d \u0027/?foo\u003d4\u0026bar\u003d3\u0026baz\u003d2\u0026qux\u003d1\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_a576690a","line":1532,"in_reply_to":"baada198_8f418638","updated":"2014-08-08 13:58:07.000000000","message":"Done","commit_id":"139b24a1d58e71779b9a244e9d99d31b4ef4d032"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"6a4f2a640dfdd5ad4508c1dd8afe9339c2835a1a","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        attr_info \u003d attributes.RESOURCE_ATTRIBUTE_MAP[resource]"},{"line_number":135,"context_line":"        policy_attrs \u003d [name for (name, info) in attr_info.items()"},{"line_number":136,"context_line":"                        if info.get(\u0027required_by_policy\u0027)]"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        for name, info in attr_info.items():"},{"line_number":139,"context_line":"            if info.get(\u0027primary_key\u0027):"},{"line_number":140,"context_line":"                policy_attrs.append(name)"}],"source_content_type":"text/x-python","patch_set":10,"id":"baada198_267bfff4","line":137,"updated":"2014-08-11 16:30:35.000000000","message":"I don\u0027t think this whitespace is necessary.","commit_id":"f4bc95e2933206a4c161160beee63dc42d0d49ec"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"65229829f0fa866ed802bb5f6ed8ce7dc9a61e02","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        attr_info \u003d attributes.RESOURCE_ATTRIBUTE_MAP[resource]"},{"line_number":135,"context_line":"        policy_attrs \u003d [name for (name, info) in attr_info.items()"},{"line_number":136,"context_line":"                        if info.get(\u0027required_by_policy\u0027)]"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        for name, info in attr_info.items():"},{"line_number":139,"context_line":"            if info.get(\u0027primary_key\u0027):"},{"line_number":140,"context_line":"                policy_attrs.append(name)"}],"source_content_type":"text/x-python","patch_set":10,"id":"baada198_4668f3f3","line":137,"in_reply_to":"baada198_267bfff4","updated":"2014-08-11 16:34:47.000000000","message":"Done","commit_id":"f4bc95e2933206a4c161160beee63dc42d0d49ec"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"6a4f2a640dfdd5ad4508c1dd8afe9339c2835a1a","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        for name, info in attr_info.items():"},{"line_number":139,"context_line":"            if info.get(\u0027primary_key\u0027):"},{"line_number":140,"context_line":"                policy_attrs.append(name)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        fields \u003d base_fields"},{"line_number":143,"context_line":"        fields.extend(policy_attrs)"},{"line_number":144,"context_line":"        return fields"}],"source_content_type":"text/x-python","patch_set":10,"id":"baada198_668177c1","line":141,"updated":"2014-08-11 16:30:35.000000000","message":"I don\u0027t think this whitespace is necessary.","commit_id":"f4bc95e2933206a4c161160beee63dc42d0d49ec"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"65229829f0fa866ed802bb5f6ed8ce7dc9a61e02","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        for name, info in attr_info.items():"},{"line_number":139,"context_line":"            if info.get(\u0027primary_key\u0027):"},{"line_number":140,"context_line":"                policy_attrs.append(name)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        fields \u003d base_fields"},{"line_number":143,"context_line":"        fields.extend(policy_attrs)"},{"line_number":144,"context_line":"        return fields"}],"source_content_type":"text/x-python","patch_set":10,"id":"baada198_666b37f0","line":141,"in_reply_to":"baada198_668177c1","updated":"2014-08-11 16:34:47.000000000","message":"Done","commit_id":"f4bc95e2933206a4c161160beee63dc42d0d49ec"}]}
