)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2223f799d299eabb89436f1700da71d0f70b6834","unresolved":false,"context_lines":[{"line_number":12,"context_line":"- test_show_interface_not_belong_to_server"},{"line_number":13,"context_line":"- test_delete_interface_nonexistent_server"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"To improve code coverage, we should call Neutron API to retrive"},{"line_number":16,"context_line":"information of network and port, but it\u0027s not appropriate to call Neutron"},{"line_number":17,"context_line":"API in Nova tests."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAS3%2F%2FOCc%3D","line":15,"updated":"2013-10-02 02:40:44.000000000","message":"s/retrive/retrieve/","commit_id":"c76ce09956fac50317a9a4ab756460368b282bf5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"84a6f192628b9da46262c0557239714b5141bb94","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- test_list_interfaces_nonexistent_server"},{"line_number":10,"context_line":"- test_show_interface_nonexistent_server"},{"line_number":11,"context_line":"- test_show_interface_nonexistent_ifs"},{"line_number":12,"context_line":"- test_show_interface_not_belong_to_server"},{"line_number":13,"context_line":"- test_delete_interface_nonexistent_server"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAS3%2F%2FK1k%3D","line":11,"updated":"2013-10-03 00:28:26.000000000","message":"This has been renamed.","commit_id":"637ff69db6669be9b0c949b9067e7ba0a41729be"}],"tempest/api/compute/servers/test_attach_interfaces.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2223f799d299eabb89436f1700da71d0f70b6834","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        resp, server \u003d self.create_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":130,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":131,"context_line":"        resp, ifs \u003d self.client.list_interfaces(server[\u0027id\u0027])"},{"line_number":132,"context_line":"        resp, body \u003d self.client.wait_for_interface_status("},{"line_number":133,"context_line":"            server[\u0027id\u0027], ifs[0][\u0027port_id\u0027], \u0027ACTIVE\u0027)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        server_name \u003d rand_name(\u0027test_attach_interface_\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2FOCA%3D","line":132,"updated":"2013-10-02 02:40:44.000000000","message":"Can\u0027t you reuse self._create_server_get_interfaces for a lot of this?","commit_id":"c76ce09956fac50317a9a4ab756460368b282bf5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2223f799d299eabb89436f1700da71d0f70b6834","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        resp, server2 \u003d self.create_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":155,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":156,"context_line":"        resp, ifs \u003d self.client.list_interfaces(server2[\u0027id\u0027])"},{"line_number":157,"context_line":"        resp, body \u003d self.client.wait_for_interface_status("},{"line_number":158,"context_line":"            server2[\u0027id\u0027], ifs[0][\u0027port_id\u0027], \u0027ACTIVE\u0027)"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        self.assertRaises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2FOB8%3D","line":157,"updated":"2013-10-02 02:40:44.000000000","message":"Seems you can reuse _create_server_get_interfaces for some of this.","commit_id":"c76ce09956fac50317a9a4ab756460368b282bf5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2223f799d299eabb89436f1700da71d0f70b6834","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        resp, server \u003d self.create_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":167,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":168,"context_line":"        resp, ifs \u003d self.client.list_interfaces(server[\u0027id\u0027])"},{"line_number":169,"context_line":"        resp, body \u003d self.client.wait_for_interface_status("},{"line_number":170,"context_line":"            server[\u0027id\u0027], ifs[0][\u0027port_id\u0027], \u0027ACTIVE\u0027)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        server_name \u003d rand_name(\u0027test_attach_interface_\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2FOB4%3D","line":169,"updated":"2013-10-02 02:40:44.000000000","message":"Same here, use _create_server_get_interfaces?","commit_id":"c76ce09956fac50317a9a4ab756460368b282bf5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0655c32ddb40d9d2f5ac632b6d23e66a9326db12","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tempest.api.compute import base"},{"line_number":17,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":18,"context_line":"from tempest.common.utils.data_utils import rand_int_id"},{"line_number":19,"context_line":"from tempest import exceptions"},{"line_number":20,"context_line":"from tempest.test import attr"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2FNDM%3D","line":18,"updated":"2013-10-02 12:16:46.000000000","message":"pep8: this import is out of order, it should come before the rand_name import.","commit_id":"5830a572dc7462c7fee1de77e6840e989335138a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"34b384e2c7a53d38c6c995c4f6d7fc287c053c30","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    def test_show_interface_nonexistent_server(self):"},{"line_number":129,"context_line":"        server, ifs \u003d self._create_server_get_interfaces()"},{"line_number":130,"context_line":"        interface_count \u003d len(ifs)"},{"line_number":131,"context_line":"        self.assertTrue(interface_count \u003e 0)"},{"line_number":132,"context_line":"        self._check_interface(ifs[0])"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        server_name \u003d rand_name(\u0027test_attach_interface_\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2FNDg%3D","line":131,"updated":"2013-10-02 12:16:00.000000000","message":"This is unnecessary given line 51.  If there isn\u0027t an interface there is going to be an index out of range error there.","commit_id":"5830a572dc7462c7fee1de77e6840e989335138a"},{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"a71c5c9f62115f04694fc597b272317986fe38ab","unresolved":false,"context_lines":[{"line_number":137,"context_line":"                          server_name, ifs[0][\u0027port_id\u0027])"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":140,"context_line":"    def test_show_interface_nonexistent_ifs(self):"},{"line_number":141,"context_line":"        resp, server \u003d self.create_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":142,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":143,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2FN08%3D","line":140,"updated":"2013-10-02 13:22:14.000000000","message":"nonexistent_ifs???sorry but not clear to me","commit_id":"5830a572dc7462c7fee1de77e6840e989335138a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"34b384e2c7a53d38c6c995c4f6d7fc287c053c30","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        server2, ifs \u003d self._create_server_get_interfaces()"},{"line_number":154,"context_line":"        interface_count \u003d len(ifs)"},{"line_number":155,"context_line":"        self.assertTrue(interface_count \u003e 0)"},{"line_number":156,"context_line":"        self._check_interface(ifs[0])"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        self.assertRaises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2FNDY%3D","line":155,"updated":"2013-10-02 12:16:00.000000000","message":"Same comment here.","commit_id":"5830a572dc7462c7fee1de77e6840e989335138a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"34b384e2c7a53d38c6c995c4f6d7fc287c053c30","unresolved":false,"context_lines":[{"line_number":163,"context_line":"    def test_delete_interface_nonexistent_server(self):"},{"line_number":164,"context_line":"        server, ifs \u003d self._create_server_get_interfaces()"},{"line_number":165,"context_line":"        interface_count \u003d len(ifs)"},{"line_number":166,"context_line":"        self.assertTrue(interface_count \u003e 0)"},{"line_number":167,"context_line":"        self._check_interface(ifs[0])"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        server_name \u003d rand_name(\u0027test_attach_interface_\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2FNDU%3D","line":166,"updated":"2013-10-02 12:16:00.000000000","message":"Same comment here.","commit_id":"5830a572dc7462c7fee1de77e6840e989335138a"},{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"a71c5c9f62115f04694fc597b272317986fe38ab","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        self.assertTrue(interface_count \u003e 0)"},{"line_number":167,"context_line":"        self._check_interface(ifs[0])"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        server_name \u003d rand_name(\u0027test_attach_interface_\u0027)"},{"line_number":170,"context_line":"        self.assertRaises(exceptions.NotFound,"},{"line_number":171,"context_line":"                          self.client.delete_interface,"},{"line_number":172,"context_line":"                          server_name, ifs[0][\u0027port_id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2FN0s%3D","line":169,"updated":"2013-10-02 13:22:14.000000000","message":"Please change name of server as Matt said","commit_id":"5830a572dc7462c7fee1de77e6840e989335138a"},{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"572c7f3ec99453992a0a9c90a22e60d66fd099a3","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        self.assertRaises(exceptions.ComputeFault,"},{"line_number":143,"context_line":"                          self.client.show_interface,"},{"line_number":144,"context_line":"                          server[\u0027id\u0027], rand_int_id())"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":147,"context_line":"    def test_show_interface_not_belong_to_server(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAS3%2F%2FDs0%3D","line":144,"updated":"2013-10-05 14:41:43.000000000","message":"Can we use a variable non_existing_interface\u003drand_int_id() , instead of directly using rand_int_id().This will improve readability.","commit_id":"0f9fbb110273f5d09bcc8a42e1e56f203381bef0"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"151f5596a872a6ac1dca6726268529e576bcb541","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        self.assertRaises(exceptions.ComputeFault,"},{"line_number":143,"context_line":"                          self.client.show_interface,"},{"line_number":144,"context_line":"                          server[\u0027id\u0027], rand_int_id())"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":147,"context_line":"    def test_show_interface_not_belong_to_server(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2F%2FOc%3D","line":144,"in_reply_to":"AAAAS3%2F%2FDs0%3D","updated":"2013-10-06 15:29:00.000000000","message":"Good suggestion! see others\u0027 opinion. I\u0027ll fix if most of you insist.","commit_id":"0f9fbb110273f5d09bcc8a42e1e56f203381bef0"},{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"572c7f3ec99453992a0a9c90a22e60d66fd099a3","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        server, ifs \u003d self._create_server_get_interfaces()"},{"line_number":161,"context_line":"        self._check_interface(ifs[0])"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        server_id \u003d rand_int_id()"},{"line_number":164,"context_line":"        self.assertRaises(exceptions.NotFound,"},{"line_number":165,"context_line":"                          self.client.delete_interface,"},{"line_number":166,"context_line":"                          server_id, ifs[0][\u0027port_id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAS3%2F%2FDsw%3D","line":163,"updated":"2013-10-05 14:41:43.000000000","message":"Please change the server_id to non_existing_server_id.","commit_id":"0f9fbb110273f5d09bcc8a42e1e56f203381bef0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"595e7943c63aefd3230ba061c9c94231211940d5","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tempest.api.compute import base"},{"line_number":17,"context_line":"from tempest.common.utils import data_utils"},{"line_number":18,"context_line":"from tempest import exceptions"},{"line_number":19,"context_line":"from tempest.test import attr"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATH%2F%2F0Lw%3D","line":17,"updated":"2013-10-09 13:42:05.000000000","message":"nit: I would have just left this as utils, I think that\u0027s how it\u0027s used in other modules.","commit_id":"f58027c8a5d4ec995858592b95dc82eea1f16b5e"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"7566bde6939aef856b6b4fd7207cafc3adfaeadf","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        _ifs \u003d self._test_delete_interface(server, ifs)"},{"line_number":117,"context_line":"        self.assertEqual(len(ifs) - 1, len(_ifs))"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":120,"context_line":"    def test_list_interfaces_nonexistent_server(self):"},{"line_number":121,"context_line":"        nonexistent_server_name \u003d data_utils.rand_name("},{"line_number":122,"context_line":"            \u0027test_attach_interface_\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATH%2F%2F2Mw%3D","line":119,"updated":"2013-10-09 02:00:47.000000000","message":"Suggest moving negative tests to \u0027test_servers_negative\u0027 or new file \u0027test_attach_interfaces_negatvie\u0027","commit_id":"f58027c8a5d4ec995858592b95dc82eea1f16b5e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a7a8aa4eb2f1cac59b78b6a1afb826f715057987","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        _ifs \u003d self._test_delete_interface(server, ifs)"},{"line_number":117,"context_line":"        self.assertEqual(len(ifs) - 1, len(_ifs))"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":120,"context_line":"    def test_list_interfaces_nonexistent_server(self):"},{"line_number":121,"context_line":"        nonexistent_server_name \u003d data_utils.rand_name("},{"line_number":122,"context_line":"            \u0027test_attach_interface_\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATH%2F%2Fhmk%3D","line":119,"in_reply_to":"AAAATH%2F%2F2Mw%3D","updated":"2013-10-15 00:32:16.000000000","message":"+1. We need an independent file for negative tests.","commit_id":"f58027c8a5d4ec995858592b95dc82eea1f16b5e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cfcfdbb7d3b0b7a9e5e9209ff332d352653b10ed","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import time"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest.api.compute import base"},{"line_number":19,"context_line":"from tempest.test import attr"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2Ffmo%3D","line":16,"updated":"2013-10-15 13:16:17.000000000","message":"This should be left for a different patch in my opinion.  The style guideline is to have the python std lib packages imported first, but it\u0027s not really necessary in this patch anymore, it could be done in a cleanup patch that is separate from the negative tests being added here so I think you should remove this from this specific patch.","commit_id":"64684b3a8ab7e8b39760868ac4516c115fec2162"}],"tempest/api/compute/servers/test_attach_interfaces_negative.py":[{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"c960e53d030e0767920911932fa6c18a2ba51262","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":71,"context_line":"    def test_show_nonexistent_interface(self):"},{"line_number":72,"context_line":"        resp, server \u003d self.create_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":73,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        nonexistent_ifs_id \u003d utils.rand_int_id()"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATH%2F%2FboA%3D","line":72,"updated":"2013-10-16 09:15:57.000000000","message":"For used by other tests, \u0027create server\u0027 may be better in setUpClass method.","commit_id":"7b0a79e7a6fa4c55f728d8e9409623de78c4bb9c"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"e58ae0c204196599cf5fec563ab4dcb28b903349","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":71,"context_line":"    def test_show_nonexistent_interface(self):"},{"line_number":72,"context_line":"        resp, server \u003d self.create_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":73,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        nonexistent_ifs_id \u003d utils.rand_int_id()"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATH%2F%2Faa8%3D","line":72,"in_reply_to":"AAAATH%2F%2Fa8o%3D","updated":"2013-10-16 14:37:15.000000000","message":"Hi, wanghao, Kenichi, things you said are right, but I prefer we should do this in another patch according to https://wiki.openstack.org/wiki/GitCommitMessages#Structural_split_of_changes, agree that?","commit_id":"7b0a79e7a6fa4c55f728d8e9409623de78c4bb9c"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"44b837935a6d60ac238633d4cd82e2b376d9a848","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":71,"context_line":"    def test_show_nonexistent_interface(self):"},{"line_number":72,"context_line":"        resp, server \u003d self.create_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":73,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        nonexistent_ifs_id \u003d utils.rand_int_id()"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATH%2F%2FWpI%3D","line":72,"in_reply_to":"AAAATH%2F%2Faa8%3D","updated":"2013-10-17 10:43:37.000000000","message":"I agree with wanghao servers are expensive, better to share it from the start","commit_id":"7b0a79e7a6fa4c55f728d8e9409623de78c4bb9c"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"d563313be56d70ceaa6d6d31855f95d69d3e6295","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":71,"context_line":"    def test_show_nonexistent_interface(self):"},{"line_number":72,"context_line":"        resp, server \u003d self.create_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":73,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        nonexistent_ifs_id \u003d utils.rand_int_id()"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATH%2F%2Fa8o%3D","line":72,"in_reply_to":"AAAATH%2F%2FboA%3D","updated":"2013-10-16 12:38:48.000000000","message":"nice idea. in additional, how about reusing a vm instance during multiple tests?\n\nexample: I286082e3a8d35bc57049741bedb8026021b653bd\n\nI guess Lingxian knows it :-)","commit_id":"7b0a79e7a6fa4c55f728d8e9409623de78c4bb9c"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"44b837935a6d60ac238633d4cd82e2b376d9a848","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":93,"context_line":"    def test_delete_interface_nonexistent_server(self):"},{"line_number":94,"context_line":"        server, ifs \u003d self._create_server_get_interfaces()"},{"line_number":95,"context_line":"        self._check_interface(ifs[0])"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        nonexitent_server_id \u003d utils.rand_int_id()"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATH%2F%2FWpY%3D","line":94,"updated":"2013-10-17 10:43:37.000000000","message":"lines 94 and 95 don\u0027t seem to be useful for the test","commit_id":"7b0a79e7a6fa4c55f728d8e9409623de78c4bb9c"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"44b837935a6d60ac238633d4cd82e2b376d9a848","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        server, ifs \u003d self._create_server_get_interfaces()"},{"line_number":95,"context_line":"        self._check_interface(ifs[0])"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        nonexitent_server_id \u003d utils.rand_int_id()"},{"line_number":98,"context_line":"        self.assertRaises(exceptions.NotFound,"},{"line_number":99,"context_line":"                          self.client.delete_interface,"},{"line_number":100,"context_line":"                          nonexitent_server_id, ifs[0][\u0027port_id\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATH%2F%2FWpQ%3D","line":97,"updated":"2013-10-17 10:43:37.000000000","message":"please get some valid uuid with uuid.uuid4","commit_id":"7b0a79e7a6fa4c55f728d8e9409623de78c4bb9c"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"7875e80913d5aced9b4cb9ee4f75b5648cd23990","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":60,"context_line":"    def test_show_nonexistent_interface(self):"},{"line_number":61,"context_line":"        nonexistent_ifs \u003d str(uuid.uuid4())"},{"line_number":62,"context_line":"        self.assertRaises(exceptions.ComputeFault,"},{"line_number":63,"context_line":"                          self.client.show_interface,"},{"line_number":64,"context_line":"                          self.server[\u0027id\u0027],"},{"line_number":65,"context_line":"                          nonexistent_ifs)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATH%2F%2FV9M%3D","line":62,"updated":"2013-10-17 14:23:21.000000000","message":"500 error is not OK.\nPlease report it as bug.","commit_id":"261cfc52ad2833634b8c437547fb93e5f758e047"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"f7cd66d940872ca6eb9362c3fa4c4045fe0d2442","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":60,"context_line":"    def test_show_nonexistent_interface(self):"},{"line_number":61,"context_line":"        nonexistent_ifs \u003d str(uuid.uuid4())"},{"line_number":62,"context_line":"        self.assertRaises(exceptions.ComputeFault,"},{"line_number":63,"context_line":"                          self.client.show_interface,"},{"line_number":64,"context_line":"                          self.server[\u0027id\u0027],"},{"line_number":65,"context_line":"                          nonexistent_ifs)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATH%2F%2FVos%3D","line":62,"in_reply_to":"AAAATH%2F%2FV2A%3D","updated":"2013-10-17 15:13:44.000000000","message":"@Kenichi, yes, it\u0027s really a bug, I\u0027ll submmit it.","commit_id":"261cfc52ad2833634b8c437547fb93e5f758e047"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c4ea81a277131f69ca2a03988fa4454253aeb583","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":60,"context_line":"    def test_show_nonexistent_interface(self):"},{"line_number":61,"context_line":"        nonexistent_ifs \u003d str(uuid.uuid4())"},{"line_number":62,"context_line":"        self.assertRaises(exceptions.ComputeFault,"},{"line_number":63,"context_line":"                          self.client.show_interface,"},{"line_number":64,"context_line":"                          self.server[\u0027id\u0027],"},{"line_number":65,"context_line":"                          nonexistent_ifs)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATH%2F%2FV2A%3D","line":62,"in_reply_to":"AAAATH%2F%2FV8Y%3D","updated":"2013-10-17 14:46:22.000000000","message":"@afazekas: nice catch!\n\n@Lingxian: great test. your test finds a real bug.","commit_id":"261cfc52ad2833634b8c437547fb93e5f758e047"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"d285b34def5e8bc911ece06b44d902d6cd74a3ad","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":60,"context_line":"    def test_show_nonexistent_interface(self):"},{"line_number":61,"context_line":"        nonexistent_ifs \u003d str(uuid.uuid4())"},{"line_number":62,"context_line":"        self.assertRaises(exceptions.ComputeFault,"},{"line_number":63,"context_line":"                          self.client.show_interface,"},{"line_number":64,"context_line":"                          self.server[\u0027id\u0027],"},{"line_number":65,"context_line":"                          nonexistent_ifs)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATH%2F%2FV8Y%3D","line":62,"in_reply_to":"AAAATH%2F%2FV9M%3D","updated":"2013-10-17 14:25:06.000000000","message":"hi, afazekas, I\u0027ve seen it, and checking the code now.","commit_id":"261cfc52ad2833634b8c437547fb93e5f758e047"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f5db98d8afc785af8dcc6d7b32413c4f488c107a","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                          nonexistent_server,"},{"line_number":58,"context_line":"                          self.ifs[0][\u0027port_id\u0027])"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @skip_because(bug\u003d\"1241051\")"},{"line_number":61,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":62,"context_line":"    def test_show_nonexistent_interface(self):"},{"line_number":63,"context_line":"        nonexistent_ifs \u003d str(uuid.uuid4())"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATH%2F%2FTlA%3D","line":60,"updated":"2013-10-18 00:51:46.000000000","message":"Thank you for reporting this bug to launchpad.\n\nI feel it is not good to add a *new* test case with skip_because.\nWe should add the test after fixing the problem, I guess.\n\nI tried to do the same thing, but the test got a -1 due to this reason.","commit_id":"95e7dd1df5da0486bbb8b0ff03e7ed5500d73f93"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"950536f9ea58f61c3e281deb2fe5df34fb61b547","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                          nonexistent_server,"},{"line_number":58,"context_line":"                          self.ifs[0][\u0027port_id\u0027])"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @skip_because(bug\u003d\"1241051\")"},{"line_number":61,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":62,"context_line":"    def test_show_nonexistent_interface(self):"},{"line_number":63,"context_line":"        nonexistent_ifs \u003d str(uuid.uuid4())"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATH%2F%2FRlo%3D","line":60,"in_reply_to":"AAAATH%2F%2FTVA%3D","updated":"2013-10-18 15:24:28.000000000","message":"This test can\u0027t be merged, the tempest policy is to not add any new tests that are skipped. For a test to be added it must be run through the gate first.","commit_id":"95e7dd1df5da0486bbb8b0ff03e7ed5500d73f93"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"e436ef0538b03c9ef3b89648a61a5af0823ffc4b","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                          nonexistent_server,"},{"line_number":58,"context_line":"                          self.ifs[0][\u0027port_id\u0027])"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @skip_because(bug\u003d\"1241051\")"},{"line_number":61,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":62,"context_line":"    def test_show_nonexistent_interface(self):"},{"line_number":63,"context_line":"        nonexistent_ifs \u003d str(uuid.uuid4())"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATH%2F%2FTVA%3D","line":60,"in_reply_to":"AAAATH%2F%2FTlA%3D","updated":"2013-10-18 04:10:12.000000000","message":"thanks for your advice. see others\u0027 opinions to decide whether this testcase should leave here or not.","commit_id":"95e7dd1df5da0486bbb8b0ff03e7ed5500d73f93"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"afb73a45407999f0e8512517ca22c3e6490dde8b","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        ifs[0][\u0027port_state\u0027] \u003d body[\u0027port_state\u0027]"},{"line_number":42,"context_line":"        return server, ifs"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027smoke\u0027])"},{"line_number":45,"context_line":"    def test_list_interfaces_nonexistent_server(self):"},{"line_number":46,"context_line":"        nonexistent_server \u003d str(uuid.uuid4())"},{"line_number":47,"context_line":"        self.assertRaises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATn%2F%2F6U0%3D","line":44,"updated":"2013-10-25 11:20:28.000000000","message":"As discussed in the QA meeting (2013-10-24), please do not flag negative test as smoke unless you really give a reason for it.","commit_id":"eeb832dfa101a2475e2f9945101b44ab99abea6f"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"0ad8b497a21b520ab8467041db3a0924c2da8534","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        ifs[0][\u0027port_state\u0027] \u003d body[\u0027port_state\u0027]"},{"line_number":42,"context_line":"        return server, ifs"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027smoke\u0027])"},{"line_number":45,"context_line":"    def test_list_interfaces_nonexistent_server(self):"},{"line_number":46,"context_line":"        nonexistent_server \u003d str(uuid.uuid4())"},{"line_number":47,"context_line":"        self.assertRaises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATn%2F%2FxIU%3D","line":44,"in_reply_to":"AAAATn%2F%2F6U0%3D","updated":"2013-10-29 11:01:37.000000000","message":"hi, marc, thanks for you info! have changed them.","commit_id":"eeb832dfa101a2475e2f9945101b44ab99abea6f"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"afb73a45407999f0e8512517ca22c3e6490dde8b","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                          self.client.list_interfaces,"},{"line_number":49,"context_line":"                          nonexistent_server)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027smoke\u0027])"},{"line_number":52,"context_line":"    def test_show_interface_nonexistent_server(self):"},{"line_number":53,"context_line":"        nonexistent_server \u003d str(uuid.uuid4())"},{"line_number":54,"context_line":"        self.assertRaises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATn%2F%2F6UY%3D","line":51,"updated":"2013-10-25 11:20:28.000000000","message":"see above.","commit_id":"eeb832dfa101a2475e2f9945101b44ab99abea6f"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"afb73a45407999f0e8512517ca22c3e6490dde8b","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                          nonexistent_server,"},{"line_number":57,"context_line":"                          self.ifs[0][\u0027port_id\u0027])"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027smoke\u0027])"},{"line_number":60,"context_line":"    def test_show_interface_not_belong_to_server(self):"},{"line_number":61,"context_line":"        # we create a new server here to ensure its existence,"},{"line_number":62,"context_line":"        # this is a test differnt from tests above."}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATn%2F%2F6UU%3D","line":59,"updated":"2013-10-25 11:20:28.000000000","message":"see above.","commit_id":"eeb832dfa101a2475e2f9945101b44ab99abea6f"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"afb73a45407999f0e8512517ca22c3e6490dde8b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                          server[\u0027id\u0027],"},{"line_number":68,"context_line":"                          self.ifs[0][\u0027port_id\u0027])"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027smoke\u0027])"},{"line_number":71,"context_line":"    def test_delete_interface_nonexistent_server(self):"},{"line_number":72,"context_line":"        nonexitent_server \u003d str(uuid.uuid4())"},{"line_number":73,"context_line":"        self.assertRaises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATn%2F%2F6UQ%3D","line":70,"updated":"2013-10-25 11:20:28.000000000","message":"see above.","commit_id":"eeb832dfa101a2475e2f9945101b44ab99abea6f"},{"author":{"_account_id":8641,"name":"DennyZhang","email":"filebat.mark@gmail.com","username":"dennyzhang"},"change_message_id":"b39be41af30b77fd98c139e23c2a56d070b07005","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 Huawei Technologies Co.,LTD."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAATn%2F%2FVWI%3D","line":1,"updated":"2013-11-09 23:35:41.000000000","message":"Should be we add an extra line above: \"Copyright 2013 OpenStack Foundation\"?","commit_id":"319b5df1218e3f91927140b724004bdb8926fd09"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"b70be85bc353e5e74036eb0e7268a43caad04857","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    @classmethod"},{"line_number":27,"context_line":"    def setUpClass(cls):"},{"line_number":28,"context_line":"        if not cls.config.service_available.neutron:"},{"line_number":29,"context_line":"            raise cls.skipException(\"Neutron is required\")"},{"line_number":30,"context_line":"        super(AttachInterfacesNegativeTestJSON, cls).setUpClass()"},{"line_number":31,"context_line":"        cls.client \u003d cls.os.interfaces_client"},{"line_number":32,"context_line":"        cls.server, cls.ifs \u003d cls._create_server_get_interfaces()"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAATn%2F%2FVyg%3D","line":29,"updated":"2013-11-09 00:50:19.000000000","message":"If neutron is required, these test should be \u0027smoke\u0027 tests, otherwise, they will not run at gate time.","commit_id":"319b5df1218e3f91927140b724004bdb8926fd09"},{"author":{"_account_id":8641,"name":"DennyZhang","email":"filebat.mark@gmail.com","username":"dennyzhang"},"change_message_id":"b39be41af30b77fd98c139e23c2a56d070b07005","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        self.assertRaises(exceptions.NotFound,"},{"line_number":55,"context_line":"                          self.client.show_interface,"},{"line_number":56,"context_line":"                          nonexistent_server,"},{"line_number":57,"context_line":"                          self.ifs[0][\u0027port_id\u0027])"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":60,"context_line":"    def test_show_interface_not_belong_to_server(self):"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAATn%2F%2FVVk%3D","line":57,"updated":"2013-11-09 23:35:41.000000000","message":"Where is the class member of ifs set? Note: In _create_server_get_interfaces(), the variable of ifs is a local variable.","commit_id":"319b5df1218e3f91927140b724004bdb8926fd09"},{"author":{"_account_id":8641,"name":"DennyZhang","email":"filebat.mark@gmail.com","username":"dennyzhang"},"change_message_id":"5af5c7074fc33c8fc266abc355436ecbe013b00a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        self.assertRaises(exceptions.NotFound,"},{"line_number":55,"context_line":"                          self.client.show_interface,"},{"line_number":56,"context_line":"                          nonexistent_server,"},{"line_number":57,"context_line":"                          self.ifs[0][\u0027port_id\u0027])"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":60,"context_line":"    def test_show_interface_not_belong_to_server(self):"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAATn%2F%2FU68%3D","line":57,"in_reply_to":"AAAATn%2F%2FU74%3D","updated":"2013-11-10 16:19:14.000000000","message":"I see, thanks","commit_id":"319b5df1218e3f91927140b724004bdb8926fd09"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"25f1ffafc45f8efbab4069d21fb143a2062a5ac4","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        self.assertRaises(exceptions.NotFound,"},{"line_number":55,"context_line":"                          self.client.show_interface,"},{"line_number":56,"context_line":"                          nonexistent_server,"},{"line_number":57,"context_line":"                          self.ifs[0][\u0027port_id\u0027])"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":60,"context_line":"    def test_show_interface_not_belong_to_server(self):"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAATn%2F%2FU74%3D","line":57,"in_reply_to":"AAAATn%2F%2FVVk%3D","updated":"2013-11-10 15:56:50.000000000","message":"please see line32","commit_id":"319b5df1218e3f91927140b724004bdb8926fd09"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"945d208395541bad03185266d986368e49e2bf0d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    @classmethod"},{"line_number":35,"context_line":"    def _create_server_get_interfaces(cls):"},{"line_number":36,"context_line":"        resp, server \u003d cls.create_server()"},{"line_number":37,"context_line":"        cls.os.servers_client.wait_for_server_status(server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":38,"context_line":"        resp, ifs \u003d cls.client.list_interfaces(server[\u0027id\u0027])"},{"line_number":39,"context_line":"        resp, body \u003d cls.client.wait_for_interface_status("},{"line_number":40,"context_line":"            server[\u0027id\u0027], ifs[0][\u0027port_id\u0027], \u0027ACTIVE\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAATn%2F%2FUv8%3D","line":37,"updated":"2013-11-10 21:47:32.000000000","message":"nit: line 36 and 37 can be merged to one line:\n\n resp, server \u003d cls.create_server(wait_until\u003d\u0027ACTIVE\u0027)","commit_id":"f40bec1e93260e9ba9aa74cc0e1eb9186371301a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"0e5bf805c4eb38e67b2c397a543cd98bdb0b4b9f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    @classmethod"},{"line_number":35,"context_line":"    def _create_server_get_interfaces(cls):"},{"line_number":36,"context_line":"        resp, server \u003d cls.create_server()"},{"line_number":37,"context_line":"        cls.os.servers_client.wait_for_server_status(server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":38,"context_line":"        resp, ifs \u003d cls.client.list_interfaces(server[\u0027id\u0027])"},{"line_number":39,"context_line":"        resp, body \u003d cls.client.wait_for_interface_status("},{"line_number":40,"context_line":"            server[\u0027id\u0027], ifs[0][\u0027port_id\u0027], \u0027ACTIVE\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAATn%2F%2FNR4%3D","line":37,"in_reply_to":"AAAATn%2F%2FUv8%3D","updated":"2013-11-12 21:39:48.000000000","message":"create_server is renamed.r","commit_id":"f40bec1e93260e9ba9aa74cc0e1eb9186371301a"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"c71caa3158cc2b65a9c05fed84cb408ff17c404b","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                          self.ifs[0][\u0027port_id\u0027])"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027smoke\u0027])"},{"line_number":60,"context_line":"    def test_show_interface_not_belong_to_server(self):"},{"line_number":61,"context_line":"        # we create a new server here to ensure its existence,"},{"line_number":62,"context_line":"        # this is a test differnt from tests above."},{"line_number":63,"context_line":"        server, ifs \u003d self._create_server_get_interfaces()"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAATn%2F%2FIbI%3D","line":60,"updated":"2013-11-14 02:04:36.000000000","message":"If I understand correctly, except this one no other test in the class uses the server created by setUpClass ... this single negative instead requires also an additional server created by the test itself\n\nI appreciate the value of this negative but would at the very least remove the smoke tag and mark it as \"slow\"\n\nBy doing so we could drop the server creation in setUpClass too","commit_id":"f40bec1e93260e9ba9aa74cc0e1eb9186371301a"}]}
