)]}'
{"openstackclient/tests/functional/image/v2/test_image.py":[{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"b41fcfa737b160241dc19c287587a988f3be942a","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        self.openstack("},{"line_number":85,"context_line":"            \u0027image set --accept \u0027 + self.NAME)"},{"line_number":86,"context_line":"        shared_img_list \u003d self.parse_listing("},{"line_number":87,"context_line":"            self.openstack(\u0027image list --shared\u0027, self.get_opts([\u0027name\u0027]))"},{"line_number":88,"context_line":"        )"},{"line_number":89,"context_line":"        self.assertIn(self.NAME, [img[\u0027Name\u0027] for img in shared_img_list])"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a3905b3_6e67d0ea","side":"PARENT","line":87,"updated":"2017-01-25 07:00:54.000000000","message":"the second argument never worked before, remove it.","commit_id":"414c99b3aa5648c0ffd5a5e8716eae478dd7c7e0"}],"openstackclient/tests/functional/network/v2/test_port.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"57640608e1d043bf7e8edc23c746db1c44922372","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from openstackclient.tests.functional import base"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class PortTests(base.TestCase):"},{"line_number":20,"context_line":"    \"\"\"Functional tests for port. \"\"\""},{"line_number":21,"context_line":"    NAME \u003d uuid.uuid4().hex"},{"line_number":22,"context_line":"    NETWORK_NAME \u003d uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a430d35_4e633c42","line":19,"updated":"2017-02-08 18:25:19.000000000","message":"Overall, lgtm but I find it weird that you use the .get() method of your dict instead of \u0027[]\u0027. Also you could have made more precise assertion. You used at lot assertIsNotNone(), which is okay but you could assert on the expected type, or length or something more precise.\n\nFor instance, if because of a bug, a port id is \u0027\u0027 (which is not right), then the assertIsNotNone will pass/succeed which is a false positive.","commit_id":"c1e0cdd2ef7ffe4ecb3f3e5e1a10baa40a9e0121"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"e88b3fd3b13da4ffa7181d798ad3eab2ca1a7a4c","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from openstackclient.tests.functional import base"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class PortTests(base.TestCase):"},{"line_number":20,"context_line":"    \"\"\"Functional tests for port. \"\"\""},{"line_number":21,"context_line":"    NAME \u003d uuid.uuid4().hex"},{"line_number":22,"context_line":"    NETWORK_NAME \u003d uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a430d35_0ac2eae8","line":19,"in_reply_to":"1a430d35_4e633c42","updated":"2017-02-09 07:17:27.000000000","message":"In fact I choose to use dict.get() to avoid KeyError be raising when the json item don\u0027t exist in result, like: \"id\", \"mac_address\", etc, and the assertIsNotNone is more explicit for other developers to find real root reason if test case failed, that\u0027s why you see so many assertIsNotNone : )\n\nAnd that\u0027s difficult to forecast the random string, like: \"id\", to assert the result same as expected.","commit_id":"c1e0cdd2ef7ffe4ecb3f3e5e1a10baa40a9e0121"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"fa94415d8bd6bbd50c04012f8e91218252f15071","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        self.assertIn(mac2, item_map.values())"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def test_port_set(self):"},{"line_number":116,"context_line":"        \"\"\"Test create, set, show, delete\"\"\""},{"line_number":117,"context_line":"        json_output \u003d json.loads(self.openstack("},{"line_number":118,"context_line":"            \u0027port create \u0027 +"},{"line_number":119,"context_line":"            \u0027--network \u0027 + self.NETWORK_NAME + \u0027 \u0027 +"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_c71baa71","line":116,"updated":"2017-02-14 17:40:34.000000000","message":"For a set test we should also do an unset.\ni.e.. Set a sec group, then unset it. And assert both happen","commit_id":"c1e0cdd2ef7ffe4ecb3f3e5e1a10baa40a9e0121"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"2c97c7dd81f4d376562993a3e3edabbaa6293061","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        self.assertIn(mac2, item_map.values())"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def test_port_set(self):"},{"line_number":116,"context_line":"        \"\"\"Test create, set, show, delete\"\"\""},{"line_number":117,"context_line":"        json_output \u003d json.loads(self.openstack("},{"line_number":118,"context_line":"            \u0027port create \u0027 +"},{"line_number":119,"context_line":"            \u0027--network \u0027 + self.NETWORK_NAME + \u0027 \u0027 +"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_c2a45f09","line":116,"in_reply_to":"fa31d9ce_c71baa71","updated":"2017-02-15 08:31:21.000000000","message":"Done","commit_id":"c1e0cdd2ef7ffe4ecb3f3e5e1a10baa40a9e0121"}]}
