)]}'
{"neutron/tests/unit/nicira/test_nvp_api_client.py":[{"author":{"_account_id":9554,"name":"Anton Gorenkov","email":"agorenkov@griddynamics.com","username":"agorenkov"},"change_message_id":"c9cbed0d1c69cb5143ba91f507ff3e6d1edc1e2d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.s_conn \u003d self.testNvpApiClient._create_connection(*self.sec_data)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def tearDown(self):"},{"line_number":47,"context_line":"        super(TestNvpApiClient, self).tearDown()"},{"line_number":48,"context_line":"        del self.testNvpApiClient"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def test_create_connection(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9jeE%3D","line":47,"updated":"2013-12-10 10:18:38.000000000","message":"It seems better to call tearDown() of a base class after finalization steps in self. It would respect the rule that finalization should be performed in the reverse order as finalization.\n\nP.S. I have looked at a few another test suites and there is no common rule: somewhere tearDown() is called in the end, somewhere - in the beginning, but I still think it should be called in the end.","commit_id":"e8e32e8c00a275a3470380ee34ccb2dc6d8b7087"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"c9676c53d7aa453f7d0b6a7d50c31d105dc790ff","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.s_conn \u003d self.testNvpApiClient._create_connection(*self.sec_data)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def tearDown(self):"},{"line_number":47,"context_line":"        super(TestNvpApiClient, self).tearDown()"},{"line_number":48,"context_line":"        del self.testNvpApiClient"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def test_create_connection(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9jXM%3D","line":47,"in_reply_to":"AAAATn%2F9jeE%3D","updated":"2013-12-10 11:49:23.000000000","message":"Done","commit_id":"e8e32e8c00a275a3470380ee34ccb2dc6d8b7087"},{"author":{"_account_id":9554,"name":"Anton Gorenkov","email":"agorenkov@griddynamics.com","username":"agorenkov"},"change_message_id":"c9cbed0d1c69cb5143ba91f507ff3e6d1edc1e2d","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                         self.testNvpApiClient._conn_params(self.connection))"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def test_user(self):"},{"line_number":68,"context_line":"        self.assertEqual(self.testNvpApiClient.user, \u0027user\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def test_password(self):"},{"line_number":71,"context_line":"        self.assertEqual(self.testNvpApiClient.password, \u0027password\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9jdA%3D","line":68,"updated":"2013-12-10 10:18:38.000000000","message":"Constant duplication: it would be better to initialize a constant in self with \u0027user\u0027 and use it in setUp().","commit_id":"e8e32e8c00a275a3470380ee34ccb2dc6d8b7087"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"c9676c53d7aa453f7d0b6a7d50c31d105dc790ff","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                         self.testNvpApiClient._conn_params(self.connection))"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def test_user(self):"},{"line_number":68,"context_line":"        self.assertEqual(self.testNvpApiClient.user, \u0027user\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def test_password(self):"},{"line_number":71,"context_line":"        self.assertEqual(self.testNvpApiClient.password, \u0027password\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9jWU%3D","line":68,"in_reply_to":"AAAATn%2F9jdA%3D","updated":"2013-12-10 11:49:23.000000000","message":"Done","commit_id":"e8e32e8c00a275a3470380ee34ccb2dc6d8b7087"},{"author":{"_account_id":9554,"name":"Anton Gorenkov","email":"agorenkov@griddynamics.com","username":"agorenkov"},"change_message_id":"c9cbed0d1c69cb5143ba91f507ff3e6d1edc1e2d","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        self.assertEqual(self.testNvpApiClient.user, \u0027user\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def test_password(self):"},{"line_number":71,"context_line":"        self.assertEqual(self.testNvpApiClient.password, \u0027password\u0027)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def test_nvp_config_gen(self):"},{"line_number":74,"context_line":"        self.testNvpApiClient._nvp_config_gen \u003d self.port"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9jc0%3D","line":71,"updated":"2013-12-10 10:18:38.000000000","message":"Constant duplication: it would be better to initialize a constant in self with \u0027password\u0027 and use it in setUp().","commit_id":"e8e32e8c00a275a3470380ee34ccb2dc6d8b7087"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"c9676c53d7aa453f7d0b6a7d50c31d105dc790ff","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        self.assertEqual(self.testNvpApiClient.user, \u0027user\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def test_password(self):"},{"line_number":71,"context_line":"        self.assertEqual(self.testNvpApiClient.password, \u0027password\u0027)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def test_nvp_config_gen(self):"},{"line_number":74,"context_line":"        self.testNvpApiClient._nvp_config_gen \u003d self.port"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9jWQ%3D","line":71,"in_reply_to":"AAAATn%2F9jc0%3D","updated":"2013-12-10 11:49:23.000000000","message":"Done","commit_id":"e8e32e8c00a275a3470380ee34ccb2dc6d8b7087"},{"author":{"_account_id":8895,"name":"Stanislav Kudriashev","email":"stas.kudriashev@gmail.com","username":"skudriashev"},"change_message_id":"2168524c097283e2eebfe3b4aeb82bea6468e882","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        old_len \u003d self.testNvpApiClient._api_provider_data.__len__()"},{"line_number":251,"context_line":"        self.testNvpApiClient._set_provider_data(self.connection, data\u003dNone)"},{"line_number":252,"context_line":"        new_len \u003d self.testNvpApiClient._api_provider_data.__len__()"},{"line_number":253,"context_line":"        self.assertEqual((old_len - 1), new_len)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    def test_normalize_conn_params(self):"},{"line_number":256,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9jbU%3D","line":253,"updated":"2013-12-10 10:24:09.000000000","message":"Do you need brackets here?","commit_id":"e8e32e8c00a275a3470380ee34ccb2dc6d8b7087"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"c9676c53d7aa453f7d0b6a7d50c31d105dc790ff","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        old_len \u003d self.testNvpApiClient._api_provider_data.__len__()"},{"line_number":251,"context_line":"        self.testNvpApiClient._set_provider_data(self.connection, data\u003dNone)"},{"line_number":252,"context_line":"        new_len \u003d self.testNvpApiClient._api_provider_data.__len__()"},{"line_number":253,"context_line":"        self.assertEqual((old_len - 1), new_len)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    def test_normalize_conn_params(self):"},{"line_number":256,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9i8g%3D","line":253,"in_reply_to":"AAAATn%2F9jbU%3D","updated":"2013-12-10 11:49:23.000000000","message":"Brackets would be deleted","commit_id":"e8e32e8c00a275a3470380ee34ccb2dc6d8b7087"},{"author":{"_account_id":8895,"name":"Stanislav Kudriashev","email":"stas.kudriashev@gmail.com","username":"skudriashev"},"change_message_id":"2168524c097283e2eebfe3b4aeb82bea6468e882","unresolved":false,"context_lines":[{"line_number":258,"context_line":"            self.testNvpApiClient._normalize_conn_params(self.connection))"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    def test_normalize_conn_params_not_tuple_ahd_http_connection(self):"},{"line_number":261,"context_line":"        self.assertEqual(self.host,"},{"line_number":262,"context_line":"                         self.testNvpApiClient._normalize_conn_params("},{"line_number":263,"context_line":"                             self.host))"},{"line_number":264,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9jcM%3D","line":261,"updated":"2013-12-10 10:24:09.000000000","message":"I think it would be more readable if you format this code as in previous case, e.g.:\n\nself.assertEqual(\n    self.host,\n    self.testNvpApiClient._normalize_conn_params(self.host))\n\nso, last parameter would not be splited into one more line.","commit_id":"e8e32e8c00a275a3470380ee34ccb2dc6d8b7087"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"c9676c53d7aa453f7d0b6a7d50c31d105dc790ff","unresolved":false,"context_lines":[{"line_number":258,"context_line":"            self.testNvpApiClient._normalize_conn_params(self.connection))"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    def test_normalize_conn_params_not_tuple_ahd_http_connection(self):"},{"line_number":261,"context_line":"        self.assertEqual(self.host,"},{"line_number":262,"context_line":"                         self.testNvpApiClient._normalize_conn_params("},{"line_number":263,"context_line":"                             self.host))"},{"line_number":264,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9jVw%3D","line":261,"in_reply_to":"AAAATn%2F9jcM%3D","updated":"2013-12-10 11:49:23.000000000","message":"Done","commit_id":"e8e32e8c00a275a3470380ee34ccb2dc6d8b7087"},{"author":{"_account_id":8895,"name":"Stanislav Kudriashev","email":"stas.kudriashev@gmail.com","username":"skudriashev"},"change_message_id":"2168524c097283e2eebfe3b4aeb82bea6468e882","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    def test_normalize_conn_params_port_is_none_and_not_ssl(self):"},{"line_number":266,"context_line":"        test_data \u003d (self.host, None, False)"},{"line_number":267,"context_line":"        self.assertEqual((self.host, 80, False),"},{"line_number":268,"context_line":"                         self.testNvpApiClient._normalize_conn_params("},{"line_number":269,"context_line":"                             test_data))"},{"line_number":270,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9jcE%3D","line":267,"updated":"2013-12-10 10:24:09.000000000","message":"Same as previous.","commit_id":"e8e32e8c00a275a3470380ee34ccb2dc6d8b7087"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"c9676c53d7aa453f7d0b6a7d50c31d105dc790ff","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    def test_normalize_conn_params_port_is_none_and_not_ssl(self):"},{"line_number":266,"context_line":"        test_data \u003d (self.host, None, False)"},{"line_number":267,"context_line":"        self.assertEqual((self.host, 80, False),"},{"line_number":268,"context_line":"                         self.testNvpApiClient._normalize_conn_params("},{"line_number":269,"context_line":"                             test_data))"},{"line_number":270,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9jV4%3D","line":267,"in_reply_to":"AAAATn%2F9jcE%3D","updated":"2013-12-10 11:49:23.000000000","message":"Done","commit_id":"e8e32e8c00a275a3470380ee34ccb2dc6d8b7087"},{"author":{"_account_id":8895,"name":"Stanislav Kudriashev","email":"stas.kudriashev@gmail.com","username":"skudriashev"},"change_message_id":"2168524c097283e2eebfe3b4aeb82bea6468e882","unresolved":false,"context_lines":[{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def test_normalize_conn_params_port_is_none_and_ssl(self):"},{"line_number":272,"context_line":"        test_data \u003d (self.host, None, True)"},{"line_number":273,"context_line":"        self.assertEqual((self.host, 443, True),"},{"line_number":274,"context_line":"                         self.testNvpApiClient._normalize_conn_params("},{"line_number":275,"context_line":"                             test_data))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9jcA%3D","line":273,"updated":"2013-12-10 10:24:09.000000000","message":"Same as previous.","commit_id":"e8e32e8c00a275a3470380ee34ccb2dc6d8b7087"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"c9676c53d7aa453f7d0b6a7d50c31d105dc790ff","unresolved":false,"context_lines":[{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def test_normalize_conn_params_port_is_none_and_ssl(self):"},{"line_number":272,"context_line":"        test_data \u003d (self.host, None, True)"},{"line_number":273,"context_line":"        self.assertEqual((self.host, 443, True),"},{"line_number":274,"context_line":"                         self.testNvpApiClient._normalize_conn_params("},{"line_number":275,"context_line":"                             test_data))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9jV8%3D","line":273,"in_reply_to":"AAAATn%2F9jcA%3D","updated":"2013-12-10 11:49:23.000000000","message":"Done","commit_id":"e8e32e8c00a275a3470380ee34ccb2dc6d8b7087"},{"author":{"_account_id":8689,"name":"Vitaliy Kolosov","email":"vkolosov@yahoo-inc.com","username":"VKolosov"},"change_message_id":"61061a8010a911701557b62f538829630f855576","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        self.testNvpApiClient._nvp_gen_timeout \u003d 1"},{"line_number":113,"context_line":"        self.testNvpApiClient.nvp_config_gen \u003d self.port"},{"line_number":114,"context_line":"        self.assertEqual(self.port, self.testNvpApiClient.nvp_config_gen)"},{"line_number":115,"context_line":"        self.assertIsNotNone(self.testNvpApiClient._nvp_config_gen_ts)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def test_auth_cookie(self):"},{"line_number":118,"context_line":"        self.testNvpApiClient._set_provider_data(self.connection, self.data)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9bbo%3D","line":115,"updated":"2013-12-13 10:45:39.000000000","message":"I think it\u0027s better to mock time.time() here and verify that _nvp_config_gen_ts\u003dtime.time().","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"34fdf60d1d7461c13ec1fa9d32717643304cdb08","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        self.testNvpApiClient._nvp_gen_timeout \u003d 1"},{"line_number":113,"context_line":"        self.testNvpApiClient.nvp_config_gen \u003d self.port"},{"line_number":114,"context_line":"        self.assertEqual(self.port, self.testNvpApiClient.nvp_config_gen)"},{"line_number":115,"context_line":"        self.assertIsNotNone(self.testNvpApiClient._nvp_config_gen_ts)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def test_auth_cookie(self):"},{"line_number":118,"context_line":"        self.testNvpApiClient._set_provider_data(self.connection, self.data)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9KCA%3D","line":115,"in_reply_to":"AAAATn%2F9bbo%3D","updated":"2013-12-18 16:49:22.000000000","message":"Done","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":8689,"name":"Vitaliy Kolosov","email":"vkolosov@yahoo-inc.com","username":"VKolosov"},"change_message_id":"61061a8010a911701557b62f538829630f855576","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        self.testNvpApiClient._conn_pool.put((priority, conn))"},{"line_number":159,"context_line":"        result \u003d self.testNvpApiClient.acquire_connection(auto_login\u003dFalse)"},{"line_number":160,"context_line":"        self.assertIsInstance(result, httplib.HTTPConnection)"},{"line_number":161,"context_line":"        self.assertTrue(mock_create_connection.called)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @mock.patch.object(client.NvpApiClient, \u0027_wait_for_login\u0027)"},{"line_number":164,"context_line":"    def test_acquire_connection_do_not_wait_for_login(self,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9Wx4%3D","line":161,"updated":"2013-12-13 10:45:39.000000000","message":"I think it has sense to verify _create_connection call parameters and returned connection parameters.","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"34fdf60d1d7461c13ec1fa9d32717643304cdb08","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        self.testNvpApiClient._conn_pool.put((priority, conn))"},{"line_number":159,"context_line":"        result \u003d self.testNvpApiClient.acquire_connection(auto_login\u003dFalse)"},{"line_number":160,"context_line":"        self.assertIsInstance(result, httplib.HTTPConnection)"},{"line_number":161,"context_line":"        self.assertTrue(mock_create_connection.called)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @mock.patch.object(client.NvpApiClient, \u0027_wait_for_login\u0027)"},{"line_number":164,"context_line":"    def test_acquire_connection_do_not_wait_for_login(self,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9KBA%3D","line":161,"in_reply_to":"AAAATn%2F9Wx4%3D","updated":"2013-12-18 16:49:22.000000000","message":"Done","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":8689,"name":"Vitaliy Kolosov","email":"vkolosov@yahoo-inc.com","username":"VKolosov"},"change_message_id":"61061a8010a911701557b62f538829630f855576","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        result \u003d self.testNvpApiClient.acquire_connection(auto_login\u003dFalse)"},{"line_number":160,"context_line":"        self.assertIsInstance(result, httplib.HTTPConnection)"},{"line_number":161,"context_line":"        self.assertTrue(mock_create_connection.called)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @mock.patch.object(client.NvpApiClient, \u0027_wait_for_login\u0027)"},{"line_number":164,"context_line":"    def test_acquire_connection_do_not_wait_for_login(self,"},{"line_number":165,"context_line":"                                                      mock_wait_for_login):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9WvU%3D","line":162,"updated":"2013-12-13 10:45:39.000000000","message":"I see, there is a lot of tests, but may you add one more (or extend the previous) to verify the other branch of \"if getattr(conn, \u0027last_used\u0027, now) \u003c now - self.CONN_IDLE_TIMEOUT:\" and check that _create_connection was not called in this case?","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"34fdf60d1d7461c13ec1fa9d32717643304cdb08","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        result \u003d self.testNvpApiClient.acquire_connection(auto_login\u003dFalse)"},{"line_number":160,"context_line":"        self.assertIsInstance(result, httplib.HTTPConnection)"},{"line_number":161,"context_line":"        self.assertTrue(mock_create_connection.called)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @mock.patch.object(client.NvpApiClient, \u0027_wait_for_login\u0027)"},{"line_number":164,"context_line":"    def test_acquire_connection_do_not_wait_for_login(self,"},{"line_number":165,"context_line":"                                                      mock_wait_for_login):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9Bb0%3D","line":162,"in_reply_to":"AAAATn%2F9WvU%3D","updated":"2013-12-18 16:49:22.000000000","message":"Added check to test_acquire_connection()","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":8689,"name":"Vitaliy Kolosov","email":"vkolosov@yahoo-inc.com","username":"VKolosov"},"change_message_id":"61061a8010a911701557b62f538829630f855576","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        mock_wait_for_login.return_value \u003d True"},{"line_number":167,"context_line":"        result \u003d self.testNvpApiClient.acquire_connection(auto_login\u003dTrue)"},{"line_number":168,"context_line":"        self.assertIsInstance(result, httplib.HTTPConnection)"},{"line_number":169,"context_line":"        self.assertTrue(mock_wait_for_login.called)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def test_release_connection_params_not_in_api_providers(self):"},{"line_number":172,"context_line":"        origin_size \u003d self.testNvpApiClient._conn_pool.qsize()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9Wcc%3D","line":169,"updated":"2013-12-13 10:45:39.000000000","message":"Please, verify the call parameters. Currently you verify \"headers\" argument nowhere.","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"34fdf60d1d7461c13ec1fa9d32717643304cdb08","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        mock_wait_for_login.return_value \u003d True"},{"line_number":167,"context_line":"        result \u003d self.testNvpApiClient.acquire_connection(auto_login\u003dTrue)"},{"line_number":168,"context_line":"        self.assertIsInstance(result, httplib.HTTPConnection)"},{"line_number":169,"context_line":"        self.assertTrue(mock_wait_for_login.called)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def test_release_connection_params_not_in_api_providers(self):"},{"line_number":172,"context_line":"        origin_size \u003d self.testNvpApiClient._conn_pool.qsize()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9A2M%3D","line":169,"in_reply_to":"AAAATn%2F9Wcc%3D","updated":"2013-12-18 16:49:22.000000000","message":"Fixed. Also changed test name.","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":8689,"name":"Vitaliy Kolosov","email":"vkolosov@yahoo-inc.com","username":"VKolosov"},"change_message_id":"61061a8010a911701557b62f538829630f855576","unresolved":false,"context_lines":[{"line_number":187,"context_line":"                                                 bad_state\u003dTrue)"},{"line_number":188,"context_line":"        new_size \u003d self.testNvpApiClient._conn_pool.qsize()"},{"line_number":189,"context_line":"        self.assertEqual(origin_size + 1, new_size)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def test_release_connection_no_release(self):"},{"line_number":192,"context_line":"        self.s_conn.no_release \u003d True"},{"line_number":193,"context_line":"        origin_size \u003d self.testNvpApiClient._conn_pool.qsize()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9WhY%3D","line":190,"updated":"2013-12-13 10:45:39.000000000","message":"In addition I\u0027d verify here that _create_connection() was called with proper parameters and that the released connection has proper priority.","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"34fdf60d1d7461c13ec1fa9d32717643304cdb08","unresolved":false,"context_lines":[{"line_number":187,"context_line":"                                                 bad_state\u003dTrue)"},{"line_number":188,"context_line":"        new_size \u003d self.testNvpApiClient._conn_pool.qsize()"},{"line_number":189,"context_line":"        self.assertEqual(origin_size + 1, new_size)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def test_release_connection_no_release(self):"},{"line_number":192,"context_line":"        self.s_conn.no_release \u003d True"},{"line_number":193,"context_line":"        origin_size \u003d self.testNvpApiClient._conn_pool.qsize()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9AzQ%3D","line":190,"in_reply_to":"AAAATn%2F9WhY%3D","updated":"2013-12-18 16:49:22.000000000","message":"Done","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":8689,"name":"Vitaliy Kolosov","email":"vkolosov@yahoo-inc.com","username":"VKolosov"},"change_message_id":"61061a8010a911701557b62f538829630f855576","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    def test_release_connection_no_release(self):"},{"line_number":192,"context_line":"        self.s_conn.no_release \u003d True"},{"line_number":193,"context_line":"        origin_size \u003d self.testNvpApiClient._conn_pool.qsize()"},{"line_number":194,"context_line":"        self.testNvpApiClient.release_connection(self.s_conn)"},{"line_number":195,"context_line":"        new_size \u003d self.testNvpApiClient._conn_pool.qsize()"},{"line_number":196,"context_line":"        self.assertEqual(origin_size, new_size)"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9Wkk%3D","line":194,"updated":"2013-12-13 10:45:39.000000000","message":"Please, wrap this string in self.assertIsNone()","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"34fdf60d1d7461c13ec1fa9d32717643304cdb08","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    def test_release_connection_no_release(self):"},{"line_number":192,"context_line":"        self.s_conn.no_release \u003d True"},{"line_number":193,"context_line":"        origin_size \u003d self.testNvpApiClient._conn_pool.qsize()"},{"line_number":194,"context_line":"        self.testNvpApiClient.release_connection(self.s_conn)"},{"line_number":195,"context_line":"        new_size \u003d self.testNvpApiClient._conn_pool.qsize()"},{"line_number":196,"context_line":"        self.assertEqual(origin_size, new_size)"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F870Y%3D","line":194,"in_reply_to":"AAAATn%2F9Wkk%3D","updated":"2013-12-18 16:49:22.000000000","message":"Done","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":8689,"name":"Vitaliy Kolosov","email":"vkolosov@yahoo-inc.com","username":"VKolosov"},"change_message_id":"61061a8010a911701557b62f538829630f855576","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        new_size \u003d self.testNvpApiClient._conn_pool.qsize()"},{"line_number":196,"context_line":"        self.assertEqual(origin_size, new_size)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def test_release_connection_service_unavail(self):"},{"line_number":199,"context_line":"        origin_size \u003d self.testNvpApiClient._conn_pool.qsize()"},{"line_number":200,"context_line":"        self.testNvpApiClient.release_connection(self.s_conn,"},{"line_number":201,"context_line":"                                                 service_unavail\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9WdY%3D","line":198,"updated":"2013-12-13 10:45:39.000000000","message":"There is some logic with priorities for this case. Please, verify it.","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"34fdf60d1d7461c13ec1fa9d32717643304cdb08","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        new_size \u003d self.testNvpApiClient._conn_pool.qsize()"},{"line_number":196,"context_line":"        self.assertEqual(origin_size, new_size)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def test_release_connection_service_unavail(self):"},{"line_number":199,"context_line":"        origin_size \u003d self.testNvpApiClient._conn_pool.qsize()"},{"line_number":200,"context_line":"        self.testNvpApiClient.release_connection(self.s_conn,"},{"line_number":201,"context_line":"                                                 service_unavail\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F87xg%3D","line":198,"in_reply_to":"AAAATn%2F9WdY%3D","updated":"2013-12-18 16:49:22.000000000","message":"Done","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":8689,"name":"Vitaliy Kolosov","email":"vkolosov@yahoo-inc.com","username":"VKolosov"},"change_message_id":"61061a8010a911701557b62f538829630f855576","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    @mock.patch.object(NvpApiClientEventlet, \"_get_provider_data\")"},{"line_number":206,"context_line":"    @mock.patch.object(NvpApiClientEventlet, \"_login\")"},{"line_number":207,"context_line":"    def test_wait_for_login(self, mock_login, mock_get_provider_data):"},{"line_number":208,"context_line":"        mock_login.return_value \u003d self.f_sem_data"},{"line_number":209,"context_line":"        mock_get_provider_data.return_value \u003d self.f_sem_data"},{"line_number":210,"context_line":"        self.testNvpApiClient._wait_for_login(self.connection)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9WY8%3D","line":207,"updated":"2013-12-13 10:45:39.000000000","message":"Please, verify \"headers\" argument in this test.","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"34fdf60d1d7461c13ec1fa9d32717643304cdb08","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    @mock.patch.object(NvpApiClientEventlet, \"_get_provider_data\")"},{"line_number":206,"context_line":"    @mock.patch.object(NvpApiClientEventlet, \"_login\")"},{"line_number":207,"context_line":"    def test_wait_for_login(self, mock_login, mock_get_provider_data):"},{"line_number":208,"context_line":"        mock_login.return_value \u003d self.f_sem_data"},{"line_number":209,"context_line":"        mock_get_provider_data.return_value \u003d self.f_sem_data"},{"line_number":210,"context_line":"        self.testNvpApiClient._wait_for_login(self.connection)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F87wM%3D","line":207,"in_reply_to":"AAAATn%2F9WY8%3D","updated":"2013-12-18 16:49:22.000000000","message":"Done","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":8689,"name":"Vitaliy Kolosov","email":"vkolosov@yahoo-inc.com","username":"VKolosov"},"change_message_id":"61061a8010a911701557b62f538829630f855576","unresolved":false,"context_lines":[{"line_number":233,"context_line":"            self.testNvpApiClient._wait_for_login(self.connection))"},{"line_number":234,"context_line":"        mock_get_provider_data.assert_called_with(self.connection)"},{"line_number":235,"context_line":"        mock_acquire.assert_any_call(blocking\u003dFalse)"},{"line_number":236,"context_line":"        mock_acquire.assert_any_call(blocking\u003dTrue)"},{"line_number":237,"context_line":"        self.assertFalse(mock_login.called)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    def test_get_provider_data(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9WXM%3D","line":236,"updated":"2013-12-13 10:45:39.000000000","message":"Why don\u0027t you assert semaphore.release() here?","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"34fdf60d1d7461c13ec1fa9d32717643304cdb08","unresolved":false,"context_lines":[{"line_number":233,"context_line":"            self.testNvpApiClient._wait_for_login(self.connection))"},{"line_number":234,"context_line":"        mock_get_provider_data.assert_called_with(self.connection)"},{"line_number":235,"context_line":"        mock_acquire.assert_any_call(blocking\u003dFalse)"},{"line_number":236,"context_line":"        mock_acquire.assert_any_call(blocking\u003dTrue)"},{"line_number":237,"context_line":"        self.assertFalse(mock_login.called)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    def test_get_provider_data(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F87uc%3D","line":236,"in_reply_to":"AAAATn%2F9WXM%3D","updated":"2013-12-18 16:49:22.000000000","message":"This call is in finally section so doesn\u0027t need to check because finally section process anyway.","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":8689,"name":"Vitaliy Kolosov","email":"vkolosov@yahoo-inc.com","username":"VKolosov"},"change_message_id":"61061a8010a911701557b62f538829630f855576","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        old_len \u003d self.testNvpApiClient._api_provider_data.__len__()"},{"line_number":253,"context_line":"        self.testNvpApiClient._set_provider_data(self.connection, data\u003dNone)"},{"line_number":254,"context_line":"        new_len \u003d self.testNvpApiClient._api_provider_data.__len__()"},{"line_number":255,"context_line":"        self.assertEqual(old_len - 1, new_len)"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    def test_normalize_conn_params(self):"},{"line_number":258,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9RIA%3D","line":255,"updated":"2013-12-13 10:45:39.000000000","message":"Please, verify that proper provider data were deleted in this case.","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"34fdf60d1d7461c13ec1fa9d32717643304cdb08","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        old_len \u003d self.testNvpApiClient._api_provider_data.__len__()"},{"line_number":253,"context_line":"        self.testNvpApiClient._set_provider_data(self.connection, data\u003dNone)"},{"line_number":254,"context_line":"        new_len \u003d self.testNvpApiClient._api_provider_data.__len__()"},{"line_number":255,"context_line":"        self.assertEqual(old_len - 1, new_len)"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    def test_normalize_conn_params(self):"},{"line_number":258,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F87qs%3D","line":255,"in_reply_to":"AAAATn%2F9RIA%3D","updated":"2013-12-18 16:49:22.000000000","message":"Done","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":8689,"name":"Vitaliy Kolosov","email":"vkolosov@yahoo-inc.com","username":"VKolosov"},"change_message_id":"61061a8010a911701557b62f538829630f855576","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        new_len \u003d self.testNvpApiClient._api_provider_data.__len__()"},{"line_number":255,"context_line":"        self.assertEqual(old_len - 1, new_len)"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    def test_normalize_conn_params(self):"},{"line_number":258,"context_line":"        self.assertEqual("},{"line_number":259,"context_line":"            self.data,"},{"line_number":260,"context_line":"            self.testNvpApiClient._normalize_conn_params(self.connection))"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9Q68%3D","line":257,"updated":"2013-12-13 10:45:39.000000000","message":"There is no dedicated testcase for conn_or_conn_params is tuple. Is this expected?","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"34fdf60d1d7461c13ec1fa9d32717643304cdb08","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        new_len \u003d self.testNvpApiClient._api_provider_data.__len__()"},{"line_number":255,"context_line":"        self.assertEqual(old_len - 1, new_len)"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    def test_normalize_conn_params(self):"},{"line_number":258,"context_line":"        self.assertEqual("},{"line_number":259,"context_line":"            self.data,"},{"line_number":260,"context_line":"            self.testNvpApiClient._normalize_conn_params(self.connection))"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F87nw%3D","line":257,"in_reply_to":"AAAATn%2F9Q68%3D","updated":"2013-12-18 16:49:22.000000000","message":"You could see case with tuple in 2 last tests.","commit_id":"2974717c0d95f885b9e81b94b2f88fa420042bf4"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"3d8b0de52a80ca85d5c245e26c3d1215463abf47","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import eventlet"},{"line_number":19,"context_line":"import httplib"},{"line_number":20,"context_line":"import mock"},{"line_number":21,"context_line":"import time"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from neutron.plugins.nicira.api_client import client"},{"line_number":24,"context_line":"from neutron.plugins.nicira.api_client.client_eventlet import \\"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F8qkg%3D","line":21,"updated":"2013-12-23 14:21:15.000000000","message":"time should be in a separate group","commit_id":"310a6d8d8ce74533d91902fb14f22a2e4e82d7e4"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"e40b6b73f528a0abb3f9e064098535729a09d8ac","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import eventlet"},{"line_number":19,"context_line":"import httplib"},{"line_number":20,"context_line":"import mock"},{"line_number":21,"context_line":"import time"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from neutron.plugins.nicira.api_client import client"},{"line_number":24,"context_line":"from neutron.plugins.nicira.api_client.client_eventlet import \\"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F8pr0%3D","line":21,"in_reply_to":"AAAATn%2F8qkg%3D","updated":"2013-12-23 17:34:17.000000000","message":"Done","commit_id":"310a6d8d8ce74533d91902fb14f22a2e4e82d7e4"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"3d8b0de52a80ca85d5c245e26c3d1215463abf47","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import time"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from neutron.plugins.nicira.api_client import client"},{"line_number":24,"context_line":"from neutron.plugins.nicira.api_client.client_eventlet import \\"},{"line_number":25,"context_line":"    NvpApiClientEventlet"},{"line_number":26,"context_line":"from neutron.tests import base"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F8qkY%3D","line":24,"updated":"2013-12-23 14:21:15.000000000","message":"Please do this without the \\","commit_id":"310a6d8d8ce74533d91902fb14f22a2e4e82d7e4"},{"author":{"_account_id":9295,"name":"Svetlana Dobogoeva","email":"sdobogoeva@griddynamics.com","username":"SvetaD"},"change_message_id":"e40b6b73f528a0abb3f9e064098535729a09d8ac","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import time"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from neutron.plugins.nicira.api_client import client"},{"line_number":24,"context_line":"from neutron.plugins.nicira.api_client.client_eventlet import \\"},{"line_number":25,"context_line":"    NvpApiClientEventlet"},{"line_number":26,"context_line":"from neutron.tests import base"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F8prw%3D","line":24,"in_reply_to":"AAAATn%2F8qkY%3D","updated":"2013-12-23 17:34:17.000000000","message":"Done","commit_id":"310a6d8d8ce74533d91902fb14f22a2e4e82d7e4"}]}
