)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3b209e0c1c1a6cf3400dd5c8facfb558afa039df","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Lastly, test_keypairs needed some test specific surgery. It is so"},{"line_number":22,"context_line":"highly normalized (with private test methods that take **kwargs) at"},{"line_number":23,"context_line":"this point that it\u0027s not really clear that it\u0027s testing useful things"},{"line_number":24,"context_line":"any more. This really needs denormalization."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: I165b0f3aa2132373cb59982a5a5ded37b4fa1b52"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5a710552_4bb42fd0","line":24,"updated":"2015-12-16 12:45:36.000000000","message":"This sounds like a TODO, we should put in the code as comment.","commit_id":"500474ec307e2e406b1568751a5a2ef084195cd1"}],"nova/tests/functional/api_sample_tests/test_flavor_access.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3b209e0c1c1a6cf3400dd5c8facfb558afa039df","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                                 subs)"},{"line_number":68,"context_line":"        self._verify_response(\"flavor-access-create-resp\", subs, response, 200)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    # TODO(sdague): remove tests that are duplicative"},{"line_number":71,"context_line":"    def test_flavor_access_create(self):"},{"line_number":72,"context_line":"        self._create_flavor()"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_4b72efae","line":70,"updated":"2015-12-16 12:45:36.000000000","message":"do you mean duplicated with test_flavor_manager\u0027s test_flavor_create? but they have different sample file.\n\nBut in the future we should merge all the flavor sample tests to single one, as we didn\u0027t allow extension anymore.","commit_id":"500474ec307e2e406b1568751a5a2ef084195cd1"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"487fbba2eaa329876d26bf31773c9afa947b6a95","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                                 subs)"},{"line_number":68,"context_line":"        self._verify_response(\"flavor-access-create-resp\", subs, response, 200)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    # TODO(sdague): remove tests that are duplicative"},{"line_number":71,"context_line":"    def test_flavor_access_create(self):"},{"line_number":72,"context_line":"        self._create_flavor()"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_a604eabf","line":70,"in_reply_to":"5a710552_4b72efae","updated":"2015-12-16 13:00:20.000000000","message":"test_flavor_access_create calls _create_flavor which so does list below. There is really no reason to build tests here that do:\n\ntest1: 1\ntest2: 1, 2\ntest3: 1, 2, 3","commit_id":"500474ec307e2e406b1568751a5a2ef084195cd1"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"807c8d5216aeb0aa3a8a9c64286d7673a6e76659","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                                 subs)"},{"line_number":68,"context_line":"        self._verify_response(\"flavor-access-create-resp\", subs, response, 200)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    # TODO(sdague): remove tests that are duplicative"},{"line_number":71,"context_line":"    def test_flavor_access_create(self):"},{"line_number":72,"context_line":"        self._create_flavor()"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a7e1126_1bf812e5","line":70,"in_reply_to":"5a710552_a604eabf","updated":"2015-12-17 06:32:54.000000000","message":"I see now. That makes sense. It would be good we have more explaination in the comments, that help people understand how to help on this.","commit_id":"500474ec307e2e406b1568751a5a2ef084195cd1"}],"nova/tests/functional/api_sample_tests/test_flavor_manage.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3b209e0c1c1a6cf3400dd5c8facfb558afa039df","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                                 subs)"},{"line_number":58,"context_line":"        self._verify_response(\"flavor-create-post-resp\", subs, response, 200)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    # TODO(sdague): remove duplication"},{"line_number":61,"context_line":"    def test_create_flavor(self):"},{"line_number":62,"context_line":"        # Get api sample to create a flavor."},{"line_number":63,"context_line":"        self._create_flavor()"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_80b756d7","line":60,"updated":"2015-12-16 12:45:36.000000000","message":"I didn\u0027t get this comment, remove what duplication?","commit_id":"500474ec307e2e406b1568751a5a2ef084195cd1"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"487fbba2eaa329876d26bf31773c9afa947b6a95","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                                 subs)"},{"line_number":58,"context_line":"        self._verify_response(\"flavor-create-post-resp\", subs, response, 200)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    # TODO(sdague): remove duplication"},{"line_number":61,"context_line":"    def test_create_flavor(self):"},{"line_number":62,"context_line":"        # Get api sample to create a flavor."},{"line_number":63,"context_line":"        self._create_flavor()"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_e6e8b2e4","line":60,"in_reply_to":"5a710552_80b756d7","updated":"2015-12-16 13:00:20.000000000","message":"test_delete_flavor tests everything this does. There is no reason we have a dedicated test for this.","commit_id":"500474ec307e2e406b1568751a5a2ef084195cd1"}],"nova/tests/functional/api_sample_tests/test_rescue.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3b209e0c1c1a6cf3400dd5c8facfb558afa039df","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        # Do a server get to make sure that the \u0027RESCUE\u0027 state is set"},{"line_number":65,"context_line":"        response \u003d self._do_get(\u0027servers/%s\u0027 % uuid)"},{"line_number":66,"context_line":"        subs \u003d self._get_regexes()"},{"line_number":67,"context_line":"        subs[\u0027hostid\u0027] \u003d \u0027[a-f0-9]+\u0027"},{"line_number":68,"context_line":"        subs[\u0027id\u0027] \u003d uuid"},{"line_number":69,"context_line":"        subs[\u0027status\u0027] \u003d \u0027RESCUE\u0027"},{"line_number":70,"context_line":"        subs[\u0027access_ip_v4\u0027] \u003d \u00271.2.3.4\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_602a6a2e","side":"PARENT","line":67,"updated":"2015-12-16 12:45:36.000000000","message":"this should move into _get_regexes","commit_id":"cd4996f7ad7bb1e83754578028a063143a112ffe"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"487fbba2eaa329876d26bf31773c9afa947b6a95","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        # Do a server get to make sure that the \u0027RESCUE\u0027 state is set"},{"line_number":65,"context_line":"        response \u003d self._do_get(\u0027servers/%s\u0027 % uuid)"},{"line_number":66,"context_line":"        subs \u003d self._get_regexes()"},{"line_number":67,"context_line":"        subs[\u0027hostid\u0027] \u003d \u0027[a-f0-9]+\u0027"},{"line_number":68,"context_line":"        subs[\u0027id\u0027] \u003d uuid"},{"line_number":69,"context_line":"        subs[\u0027status\u0027] \u003d \u0027RESCUE\u0027"},{"line_number":70,"context_line":"        subs[\u0027access_ip_v4\u0027] \u003d \u00271.2.3.4\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_66904244","side":"PARENT","line":67,"in_reply_to":"5a710552_602a6a2e","updated":"2015-12-16 13:00:20.000000000","message":"probably, but I think that\u0027s a follow on.","commit_id":"cd4996f7ad7bb1e83754578028a063143a112ffe"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"807c8d5216aeb0aa3a8a9c64286d7673a6e76659","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        # Do a server get to make sure that the \u0027RESCUE\u0027 state is set"},{"line_number":65,"context_line":"        response \u003d self._do_get(\u0027servers/%s\u0027 % uuid)"},{"line_number":66,"context_line":"        subs \u003d self._get_regexes()"},{"line_number":67,"context_line":"        subs[\u0027hostid\u0027] \u003d \u0027[a-f0-9]+\u0027"},{"line_number":68,"context_line":"        subs[\u0027id\u0027] \u003d uuid"},{"line_number":69,"context_line":"        subs[\u0027status\u0027] \u003d \u0027RESCUE\u0027"},{"line_number":70,"context_line":"        subs[\u0027access_ip_v4\u0027] \u003d \u00271.2.3.4\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a7e1126_db37eae1","side":"PARENT","line":67,"in_reply_to":"5a710552_66904244","updated":"2015-12-17 06:32:54.000000000","message":"yup","commit_id":"cd4996f7ad7bb1e83754578028a063143a112ffe"}],"nova/tests/functional/api_sample_tests/test_virtual_interfaces.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3b209e0c1c1a6cf3400dd5c8facfb558afa039df","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        response \u003d self._do_get(\u0027servers/%s/os-virtual-interfaces\u0027 % uuid)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        subs \u003d {\u0027mac_addr\u0027: \u0027(?:[a-f0-9]{2}:){5}[a-f0-9]{2}\u0027}"},{"line_number":51,"context_line":"        self._verify_response(self.template, subs, response, 200)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_c04c7e72","line":50,"updated":"2015-12-16 12:45:36.000000000","message":"this should move into \u0027_get_regexes\u0027","commit_id":"500474ec307e2e406b1568751a5a2ef084195cd1"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"807c8d5216aeb0aa3a8a9c64286d7673a6e76659","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        response \u003d self._do_get(\u0027servers/%s/os-virtual-interfaces\u0027 % uuid)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        subs \u003d {\u0027mac_addr\u0027: \u0027(?:[a-f0-9]{2}:){5}[a-f0-9]{2}\u0027}"},{"line_number":51,"context_line":"        self._verify_response(self.template, subs, response, 200)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a7e1126_db104a51","line":50,"in_reply_to":"5a710552_66b7e2d8","updated":"2015-12-17 06:32:54.000000000","message":"yeh, it should be follow on","commit_id":"500474ec307e2e406b1568751a5a2ef084195cd1"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"487fbba2eaa329876d26bf31773c9afa947b6a95","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        response \u003d self._do_get(\u0027servers/%s/os-virtual-interfaces\u0027 % uuid)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        subs \u003d {\u0027mac_addr\u0027: \u0027(?:[a-f0-9]{2}:){5}[a-f0-9]{2}\u0027}"},{"line_number":51,"context_line":"        self._verify_response(self.template, subs, response, 200)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_66b7e2d8","line":50,"in_reply_to":"5a710552_c04c7e72","updated":"2015-12-16 13:00:20.000000000","message":"probably, but I think it\u0027s a follow on","commit_id":"500474ec307e2e406b1568751a5a2ef084195cd1"}],"nova/tests/functional/api_sample_tests/test_volumes.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f5e40c16fdfae2e77fd25e5942e991c32c67cbaf","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        self.stubs.Set(compute_api.API, \u0027get\u0027, fake_compute_api_get)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"class VolumeAttachmentsSampleJsonTest(VolumeAttachmentsSampleBase):"},{"line_number":248,"context_line":"    extension_name \u003d \"os-volumes\""},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"    def _get_flags(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_145e2312","side":"PARENT","line":247,"updated":"2016-01-05 13:42:33.000000000","message":"Nit: technically unrelated, but it makes sense here.","commit_id":"21f6f7b63af920aa3a5501603c3debbcd5ec5bc5"}],"nova/tests/functional/api_samples_test_base.py":[{"author":{"_account_id":17714,"name":"Augustina Ragwitz","email":"auggy@cpan.org","username":"mmmpork"},"change_message_id":"f0717b36c8f18bd0ea72db0633f57b069ede36a7","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        # these."},{"line_number":263,"context_line":"        regexes \u003d self._get_regexes()"},{"line_number":264,"context_line":"        regexes.update(subs)"},{"line_number":265,"context_line":"        subs \u003d regexes"},{"line_number":266,"context_line":"        self.assertEqual(exp_code, response.status_code)"},{"line_number":267,"context_line":"        response_data \u003d response.content"},{"line_number":268,"context_line":"        response_data \u003d pretty_data(response_data)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_6f8960ca","line":265,"updated":"2015-12-14 21:05:00.000000000","message":"This is really just me being nitpicky, but maybe the subs in the arg should be named something else or this \u0027subs\" should be renamed? I personally just don\u0027t like mutating the passed in value, but I won\u0027t -1 over it since it\u0027s really small.","commit_id":"500474ec307e2e406b1568751a5a2ef084195cd1"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"74a69ec7da337072bcec87807cd785e1c64e3277","unresolved":false,"context_lines":[{"line_number":255,"context_line":"        updated_data \u003d re.sub(url_re, new_url, sample_data)"},{"line_number":256,"context_line":"        return updated_data"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    def _verify_response(self, name, subs, response, exp_code,"},{"line_number":259,"context_line":"                         update_links\u003dTrue):"},{"line_number":260,"context_line":"        # Always also include the laundry list of base regular"},{"line_number":261,"context_line":"        # expressions for possible key values in our templates. Test"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_b3b643f7","line":258,"updated":"2016-01-05 17:20:43.000000000","message":"Since a fair amount of tests don\u0027t need to pass in subs it would be a further cleanup, and slightly larger change, to change the signature here and have subs be an optional param.","commit_id":"5ac81f47a4f610b2b1e901ba57766abaa4fdeba4"}]}
