)]}'
{"nova/tests/fixtures.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a542ddbd559cce48467d0daf743ac750f8c410d9","unresolved":false,"context_lines":[{"line_number":706,"context_line":"        return service_obj.SERVICE_VERSION"},{"line_number":707,"context_line":""},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"class NeutronFixture(fixtures.Fixture):"},{"line_number":710,"context_line":"    \"\"\"A fixture to boot instances with neutron ports\"\"\""},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"    # the default project_id in OsaAPIFixtures"}],"source_content_type":"text/x-python","patch_set":2,"id":"da4df55a_bc9b1565","line":709,"range":{"start_line":709,"start_character":6,"end_line":709,"end_character":20},"updated":"2016-12-28 20:41:16.000000000","message":"Sean, are you talking about renaming this so it\u0027s clear it doesn\u0027t do state tracking and is more or less just a mock with some hard-coded values? That\u0027s fine, but can\u0027t it be done separately from this change? I\u0027m not sure why that would be a -1.","commit_id":"241fa4c0043e13390dca6d94812db2d17f17e024"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e43e3fe47652b78f58585fc93acae0beac1865e0","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            self.stub_out("},{"line_number":241,"context_line":"                \u0027nova.network.neutronv2.api.API.get_instance_nw_info\u0027,"},{"line_number":242,"context_line":"                fake_get_nw_info)"},{"line_number":243,"context_line":"            self.useFixture(fixtures.NeutronFixture(self))"},{"line_number":244,"context_line":"        else:"},{"line_number":245,"context_line":"            self.stub_out(\u0027nova.network.api.API.get_instance_nw_info\u0027,"},{"line_number":246,"context_line":"                           fake_get_nw_info)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_26bb4774","line":243,"updated":"2016-12-29 16:08:17.000000000","message":"Alternatively I could use this:\n\nhttps://github.com/openstack/nova/blob/a74d3ae4e815e3727961ef67bd801dada0267a0b/nova/tests/unit/api/openstack/fakes.py#L161\n\nBut it\u0027s a noop stub either way, and ^ comes from the REST API unit tests so doesn\u0027t see like a great fit here.","commit_id":"9b5d3fd3e22f7af698aa4a195cc71b9995a9fdfa"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"11981e8380b33f3d6dd749e2fc07bd6f9c796054","unresolved":false,"context_lines":[{"line_number":5789,"context_line":"        # Confirm setup_compute_volume is called when volume is mounted."},{"line_number":5790,"context_line":"        def stupid(*args, **kwargs):"},{"line_number":5791,"context_line":"            return fake_network.fake_get_instance_nw_info(self)"},{"line_number":5792,"context_line":"        if CONF.use_neutron:"},{"line_number":5793,"context_line":"            self.stub_out("},{"line_number":5794,"context_line":"                \u0027nova.network.neutronv2.api.API.get_instance_nw_info\u0027, stupid)"},{"line_number":5795,"context_line":"        else:"},{"line_number":5796,"context_line":"            self.stub_out(\u0027nova.network.api.API.get_instance_nw_info\u0027, stupid)"},{"line_number":5797,"context_line":""},{"line_number":5798,"context_line":"        # creating instance testdata"},{"line_number":5799,"context_line":"        instance \u003d self._create_fake_instance_obj({\u0027host\u0027: \u0027dummy\u0027})"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_7f3574f5","line":5796,"range":{"start_line":5792,"start_character":0,"end_line":5796,"end_character":78},"updated":"2017-01-04 10:21:20.000000000","message":"Forgive my ignorance, but why can\u0027t we mock on the \u0027self.compute.network_api\u0027 object here too?\n\nAh, stub_out doesn\u0027t allow you to stub objects","commit_id":"5b4758cc776a183e501c47e0baa289a7cf4b2f35"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"39c1ad0f3694b53759fb85eaa0f8b836af64154e","unresolved":false,"context_lines":[{"line_number":5789,"context_line":"        # Confirm setup_compute_volume is called when volume is mounted."},{"line_number":5790,"context_line":"        def stupid(*args, **kwargs):"},{"line_number":5791,"context_line":"            return fake_network.fake_get_instance_nw_info(self)"},{"line_number":5792,"context_line":"        if CONF.use_neutron:"},{"line_number":5793,"context_line":"            self.stub_out("},{"line_number":5794,"context_line":"                \u0027nova.network.neutronv2.api.API.get_instance_nw_info\u0027, stupid)"},{"line_number":5795,"context_line":"        else:"},{"line_number":5796,"context_line":"            self.stub_out(\u0027nova.network.api.API.get_instance_nw_info\u0027, stupid)"},{"line_number":5797,"context_line":""},{"line_number":5798,"context_line":"        # creating instance testdata"},{"line_number":5799,"context_line":"        instance \u003d self._create_fake_instance_obj({\u0027host\u0027: \u0027dummy\u0027})"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_1d4e266f","line":5796,"range":{"start_line":5792,"start_character":0,"end_line":5796,"end_character":78},"in_reply_to":"ba5201f7_7f3574f5","updated":"2017-01-04 15:13:16.000000000","message":"Right.","commit_id":"5b4758cc776a183e501c47e0baa289a7cf4b2f35"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"11981e8380b33f3d6dd749e2fc07bd6f9c796054","unresolved":false,"context_lines":[{"line_number":9262,"context_line":"        self.compute_api.add_fixed_ip(self.context, instance, \u00271\u0027)"},{"line_number":9263,"context_line":"        self.compute_api.remove_fixed_ip(self.context,"},{"line_number":9264,"context_line":"                                         instance, \u0027192.168.1.1\u0027)"},{"line_number":9265,"context_line":"        with mock.patch.object(self.compute_api, \u0027_lookup_instance\u0027,"},{"line_number":9266,"context_line":"                               return_value\u003dinstance):"},{"line_number":9267,"context_line":"            with mock.patch.object(self.compute_api.network_api,"},{"line_number":9268,"context_line":"                                   \u0027deallocate_for_instance\u0027):"},{"line_number":9269,"context_line":"                self.compute_api.delete(self.context, instance)"},{"line_number":9270,"context_line":""},{"line_number":9271,"context_line":"    def test_attach_volume_invalid(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_ba728aab","line":9268,"range":{"start_line":9265,"start_character":0,"end_line":9268,"end_character":62},"updated":"2017-01-04 10:21:20.000000000","message":"nit: the \u0027test.nested\u0027 pattern could/should be used here, I guess","commit_id":"5b4758cc776a183e501c47e0baa289a7cf4b2f35"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"39c1ad0f3694b53759fb85eaa0f8b836af64154e","unresolved":false,"context_lines":[{"line_number":9262,"context_line":"        self.compute_api.add_fixed_ip(self.context, instance, \u00271\u0027)"},{"line_number":9263,"context_line":"        self.compute_api.remove_fixed_ip(self.context,"},{"line_number":9264,"context_line":"                                         instance, \u0027192.168.1.1\u0027)"},{"line_number":9265,"context_line":"        with mock.patch.object(self.compute_api, \u0027_lookup_instance\u0027,"},{"line_number":9266,"context_line":"                               return_value\u003dinstance):"},{"line_number":9267,"context_line":"            with mock.patch.object(self.compute_api.network_api,"},{"line_number":9268,"context_line":"                                   \u0027deallocate_for_instance\u0027):"},{"line_number":9269,"context_line":"                self.compute_api.delete(self.context, instance)"},{"line_number":9270,"context_line":""},{"line_number":9271,"context_line":"    def test_attach_volume_invalid(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_fd5ec210","line":9268,"range":{"start_line":9265,"start_character":0,"end_line":9268,"end_character":62},"in_reply_to":"ba5201f7_ba728aab","updated":"2017-01-04 15:13:16.000000000","message":"I only use that when the nesting gets so deep that the line wrapping is super ugly.","commit_id":"5b4758cc776a183e501c47e0baa289a7cf4b2f35"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"11981e8380b33f3d6dd749e2fc07bd6f9c796054","unresolved":false,"context_lines":[{"line_number":9606,"context_line":"        network_id \u003d nwinfo[0][\u0027network\u0027][\u0027id\u0027]"},{"line_number":9607,"context_line":"        port_id \u003d nwinfo[0][\u0027id\u0027]"},{"line_number":9608,"context_line":"        req_ip \u003d \u00271.2.3.4\u0027"},{"line_number":9609,"context_line":"        mock_allocate \u003d mock.Mock(return_value\u003dnwinfo)"},{"line_number":9610,"context_line":"        self.compute.network_api.allocate_port_for_instance \u003d mock_allocate"},{"line_number":9611,"context_line":""},{"line_number":9612,"context_line":"        with mock.patch.dict(self.compute.driver.capabilities,"},{"line_number":9613,"context_line":"                             supports_attach_interface\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_3a8dba7b","line":9610,"range":{"start_line":9609,"start_character":8,"end_line":9610,"end_character":75},"updated":"2017-01-04 10:21:20.000000000","message":"nit: any reason not to use the context manager pattern here?","commit_id":"5b4758cc776a183e501c47e0baa289a7cf4b2f35"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"39c1ad0f3694b53759fb85eaa0f8b836af64154e","unresolved":false,"context_lines":[{"line_number":9606,"context_line":"        network_id \u003d nwinfo[0][\u0027network\u0027][\u0027id\u0027]"},{"line_number":9607,"context_line":"        port_id \u003d nwinfo[0][\u0027id\u0027]"},{"line_number":9608,"context_line":"        req_ip \u003d \u00271.2.3.4\u0027"},{"line_number":9609,"context_line":"        mock_allocate \u003d mock.Mock(return_value\u003dnwinfo)"},{"line_number":9610,"context_line":"        self.compute.network_api.allocate_port_for_instance \u003d mock_allocate"},{"line_number":9611,"context_line":""},{"line_number":9612,"context_line":"        with mock.patch.dict(self.compute.driver.capabilities,"},{"line_number":9613,"context_line":"                             supports_attach_interface\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_9d97768f","line":9610,"range":{"start_line":9609,"start_character":8,"end_line":9610,"end_character":75},"in_reply_to":"ba5201f7_3a8dba7b","updated":"2017-01-04 15:13:16.000000000","message":"Probably just to avoid nesting.","commit_id":"5b4758cc776a183e501c47e0baa289a7cf4b2f35"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"11981e8380b33f3d6dd749e2fc07bd6f9c796054","unresolved":false,"context_lines":[{"line_number":9609,"context_line":"        mock_allocate \u003d mock.Mock(return_value\u003dnwinfo)"},{"line_number":9610,"context_line":"        self.compute.network_api.allocate_port_for_instance \u003d mock_allocate"},{"line_number":9611,"context_line":""},{"line_number":9612,"context_line":"        with mock.patch.dict(self.compute.driver.capabilities,"},{"line_number":9613,"context_line":"                             supports_attach_interface\u003dTrue):"},{"line_number":9614,"context_line":"            vif \u003d self.compute.attach_interface(self.context,"},{"line_number":9615,"context_line":"                                                instance,"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_ba80ca47","line":9612,"range":{"start_line":9612,"start_character":8,"end_line":9612,"end_character":28},"updated":"2017-01-04 10:21:20.000000000","message":"I hadn\u0027t seen this used before. You learn something new everyday","commit_id":"5b4758cc776a183e501c47e0baa289a7cf4b2f35"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"39c1ad0f3694b53759fb85eaa0f8b836af64154e","unresolved":false,"context_lines":[{"line_number":9609,"context_line":"        mock_allocate \u003d mock.Mock(return_value\u003dnwinfo)"},{"line_number":9610,"context_line":"        self.compute.network_api.allocate_port_for_instance \u003d mock_allocate"},{"line_number":9611,"context_line":""},{"line_number":9612,"context_line":"        with mock.patch.dict(self.compute.driver.capabilities,"},{"line_number":9613,"context_line":"                             supports_attach_interface\u003dTrue):"},{"line_number":9614,"context_line":"            vif \u003d self.compute.attach_interface(self.context,"},{"line_number":9615,"context_line":"                                                instance,"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_bdab5ad5","line":9612,"range":{"start_line":9612,"start_character":8,"end_line":9612,"end_character":28},"in_reply_to":"ba5201f7_ba80ca47","updated":"2017-01-04 15:13:16.000000000","message":"Yeah I rarely think about that one let alone use it.","commit_id":"5b4758cc776a183e501c47e0baa289a7cf4b2f35"}]}
