)]}'
{"openstack_dashboard/test/integration_tests/config.py":[{"author":{"_account_id":11473,"name":"Tomáš Nová?ik","email":"tnovacik@redhat.com","username":"tnovacik"},"change_message_id":"52f2352efa39c71e9aff2b96561448697744e242","unresolved":false,"context_lines":[{"line_number":49,"context_line":"]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"ImageGroup \u003d ["},{"line_number":52,"context_line":"    cfg.StrOpt(\u0027http_image\u0027,"},{"line_number":53,"context_line":"               default\u003d\u0027http://download.cirros-cloud.net/0.3.1/\u0027"},{"line_number":54,"context_line":"                       \u0027cirros-0.3.1-x86_64-uec.tar.gz\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027http accessible image\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_5c98c974","line":52,"updated":"2014-09-15 12:40:52.000000000","message":"http_source?","commit_id":"271ad967a37cf81fb3441ebed5bebf0432843618"},{"author":{"_account_id":8577,"name":"Daniel Korn","email":"dkorn@redhat.com","username":"dkorn"},"change_message_id":"c6fc7e9584516d0365d0a2e0b06fe89f16430823","unresolved":false,"context_lines":[{"line_number":49,"context_line":"]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"ImageGroup \u003d ["},{"line_number":52,"context_line":"    cfg.StrOpt(\u0027http_image\u0027,"},{"line_number":53,"context_line":"               default\u003d\u0027http://download.cirros-cloud.net/0.3.1/\u0027"},{"line_number":54,"context_line":"                       \u0027cirros-0.3.1-x86_64-uec.tar.gz\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027http accessible image\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_3fe3f7a4","line":52,"in_reply_to":"fa98f980_5c98c974","updated":"2014-09-15 14:23:06.000000000","message":"prefer keeping it this way as this is how it\u0027s done in tempest, and we want to be correlated with them.\nhttps://github.com/openstack/tempest/blob/master/etc/tempest.conf.sample#L653","commit_id":"271ad967a37cf81fb3441ebed5bebf0432843618"}],"openstack_dashboard/test/integration_tests/pages/project/compute/imagespage.py":[{"author":{"_account_id":11473,"name":"Tomáš Nová?ik","email":"tnovacik@redhat.com","username":"tnovacik"},"change_message_id":"52f2352efa39c71e9aff2b96561448697744e242","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    def confirm_delete_images_form(self):"},{"line_number":70,"context_line":"        return forms.BaseFormRegion(self.driver, self.conf, None)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def create_image(self, name, description\u003dNone,"},{"line_number":73,"context_line":"                     image_source\u003dDEFAULT_IMAGE_SOURCE,"},{"line_number":74,"context_line":"                     location\u003dNone, image_file\u003dNone,"},{"line_number":75,"context_line":"                     image_format\u003dDEFAULT_IMAGE_FORMAT,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_bcae157f","line":72,"updated":"2014-09-15 12:40:52.000000000","message":"There are too many argument to method, i am surprised that pep8 is not complaining, i have done it a bit differently in https://review.openstack.org/#/c/113830/7/openstack_dashboard/test/integration_tests/pages/project/data_processing/jobbinariespage.py ... but i am not against this approach, just for your consideration.","commit_id":"271ad967a37cf81fb3441ebed5bebf0432843618"},{"author":{"_account_id":11473,"name":"Tomáš Nová?ik","email":"tnovacik@redhat.com","username":"tnovacik"},"change_message_id":"52f2352efa39c71e9aff2b96561448697744e242","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        if description is not None:"},{"line_number":81,"context_line":"            self.create_image_form.description.text \u003d description"},{"line_number":82,"context_line":"        self.create_image_form.image_source.value \u003d image_source"},{"line_number":83,"context_line":"        if image_source \u003d\u003d \u0027url\u0027:"},{"line_number":84,"context_line":"            if location is None:"},{"line_number":85,"context_line":"                self.create_image_form.image_location.text \u003d \\"},{"line_number":86,"context_line":"                    self.conf.image.http_image"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_5cbd29b0","line":83,"updated":"2014-09-15 12:40:52.000000000","message":"if image_source \u003d\u003d  self.DEFAULT_IMAGE_SOURCE","commit_id":"271ad967a37cf81fb3441ebed5bebf0432843618"},{"author":{"_account_id":8577,"name":"Daniel Korn","email":"dkorn@redhat.com","username":"dkorn"},"change_message_id":"c6fc7e9584516d0365d0a2e0b06fe89f16430823","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        if description is not None:"},{"line_number":81,"context_line":"            self.create_image_form.description.text \u003d description"},{"line_number":82,"context_line":"        self.create_image_form.image_source.value \u003d image_source"},{"line_number":83,"context_line":"        if image_source \u003d\u003d \u0027url\u0027:"},{"line_number":84,"context_line":"            if location is None:"},{"line_number":85,"context_line":"                self.create_image_form.image_location.text \u003d \\"},{"line_number":86,"context_line":"                    self.conf.image.http_image"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_8a9d7fbe","line":83,"in_reply_to":"fa98f980_5cbd29b0","updated":"2014-09-15 14:23:06.000000000","message":"I can\u0027t use this as filling the fields in this form requires a certain logic, and changing the DEFAULT_IMAGE_SOURCE in the future will brake it.","commit_id":"271ad967a37cf81fb3441ebed5bebf0432843618"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"c8f0540bcd6f699bc7e656ed51095ab7f3743e92","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def is_image_active(self, name):"},{"line_number":108,"context_line":"        row \u003d self._get_row_with_image_name(name)"},{"line_number":109,"context_line":"        if row.cells[self.IMAGES_TABLE_STATUS_COLUMN_INDEX].text \u003d\u003d \u0027Active\u0027:"},{"line_number":110,"context_line":"            return True"},{"line_number":111,"context_line":"        else:"},{"line_number":112,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a961159_8af0e392","line":109,"updated":"2014-12-29 10:54:51.000000000","message":"nitpick: it would be more concise to simply write here:\n\n  return row.cells[self.IMAGES_TABLE_STATUS_COLUMN_INDEX].text \u003d\u003d \u0027Active\u0027","commit_id":"4315270dd25f594abb11662b3fdd263c5a12b85d"},{"author":{"_account_id":8577,"name":"Daniel Korn","email":"dkorn@redhat.com","username":"dkorn"},"change_message_id":"fb315896a6468b1abcbdd396e23d0662ffc02e18","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def is_image_active(self, name):"},{"line_number":108,"context_line":"        row \u003d self._get_row_with_image_name(name)"},{"line_number":109,"context_line":"        if row.cells[self.IMAGES_TABLE_STATUS_COLUMN_INDEX].text \u003d\u003d \u0027Active\u0027:"},{"line_number":110,"context_line":"            return True"},{"line_number":111,"context_line":"        else:"},{"line_number":112,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a961159_0ba047a4","line":109,"in_reply_to":"3a961159_8af0e392","updated":"2015-01-01 09:20:42.000000000","message":"Done","commit_id":"4315270dd25f594abb11662b3fdd263c5a12b85d"}],"openstack_dashboard/test/integration_tests/regions/forms.py":[{"author":{"_account_id":11473,"name":"Tomáš Nová?ik","email":"tnovacik@redhat.com","username":"tnovacik"},"change_message_id":"52f2352efa39c71e9aff2b96561448697744e242","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    _element_locator \u003d (by.By.CSS_SELECTOR,"},{"line_number":75,"context_line":"                        \u0027div \u003e label \u003e input[type\u003dcheckbox]\u0027)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def mark(self):"},{"line_number":78,"context_line":"        self.element.click()"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_bf7a8774","line":77,"updated":"2014-09-15 12:40:52.000000000","message":"it might be better to have setter/getter, just to have the same approach everywhere-- or at least add getter, just to know if it is marked or not","commit_id":"271ad967a37cf81fb3441ebed5bebf0432843618"},{"author":{"_account_id":8577,"name":"Daniel Korn","email":"dkorn@redhat.com","username":"dkorn"},"change_message_id":"c6fc7e9584516d0365d0a2e0b06fe89f16430823","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    _element_locator \u003d (by.By.CSS_SELECTOR,"},{"line_number":75,"context_line":"                        \u0027div \u003e label \u003e input[type\u003dcheckbox]\u0027)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def mark(self):"},{"line_number":78,"context_line":"        self.element.click()"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_6aebfba3","line":77,"in_reply_to":"fa98f980_bf7a8774","updated":"2014-09-15 14:23:06.000000000","message":"as we agreed on irc, a setter is less comfortable as one will need to supply an argument. checkbox.mark() is nicer than checkbox.value \u003d True.\n\nI\u0027ll add a getter method.","commit_id":"271ad967a37cf81fb3441ebed5bebf0432843618"},{"author":{"_account_id":11473,"name":"Tomáš Nová?ik","email":"tnovacik@redhat.com","username":"tnovacik"},"change_message_id":"52f2352efa39c71e9aff2b96561448697744e242","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        self.element.click()"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"class ChooseFileFormFieldRegion(BaseFormFieldRegion):"},{"line_number":82,"context_line":"    \"\"\"choose File field.\"\"\""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    _element_locator \u003d (by.By.CSS_SELECTOR, \u0027div \u003e input[type\u003dfile]\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_3c7f85ac","line":81,"updated":"2014-09-15 12:40:52.000000000","message":"Now looking at some of my code, i have already done this -\u003e https://review.openstack.org/#/c/113830/7/openstack_dashboard/test/integration_tests/regions/forms.py, i do not know if i should move it to region patch as there is already some duplication of effort(sorry for that, should have thought of it sooner), let me know what you think...","commit_id":"271ad967a37cf81fb3441ebed5bebf0432843618"},{"author":{"_account_id":11473,"name":"Tomáš Nová?ik","email":"tnovacik@redhat.com","username":"tnovacik"},"change_message_id":"52f2352efa39c71e9aff2b96561448697744e242","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    _element_locator \u003d (by.By.CSS_SELECTOR, \u0027div \u003e input[type\u003dfile]\u0027)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def choose(self, path):"},{"line_number":87,"context_line":"        self.element.send_keys(path)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_dc13d962","line":86,"updated":"2014-09-15 12:40:52.000000000","message":"should be setter/getter","commit_id":"271ad967a37cf81fb3441ebed5bebf0432843618"},{"author":{"_account_id":11473,"name":"Tomáš Nová?ik","email":"tnovacik@redhat.com","username":"tnovacik"},"change_message_id":"52f2352efa39c71e9aff2b96561448697744e242","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    _element_locator \u003d (by.By.CSS_SELECTOR, \u0027div \u003e input[type\u003dpassword]\u0027)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"class TextAreaFormFieldRegion(BaseTextFormFieldRegion):"},{"line_number":116,"context_line":"    \"\"\"Multi-line text input box.\"\"\""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    _element_locator \u003d (by.By.CSS_SELECTOR, \u0027div \u003e textarea\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_ff140f45","line":115,"updated":"2014-09-15 12:40:52.000000000","message":"same thing as with ChooseFileFormFieldRegion\n\nhttps://review.openstack.org/#/c/112631/9/openstack_dashboard/test/integration_tests/regions/forms.py","commit_id":"271ad967a37cf81fb3441ebed5bebf0432843618"}],"openstack_dashboard/test/integration_tests/tests/test_image_create_delete.py":[{"author":{"_account_id":12355,"name":"Vlad Okhrimenko","email":"vokhrimenko@mirantis.com","username":"vokhrimenko"},"change_message_id":"f57c6e748e18d925c299630775a2ed3d0dca4822","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class TestImage(helpers.TestCase):"},{"line_number":19,"context_line":"    IMAGE_NAME \u003d \u0027horizonimage\u0027 + str(random.randint(0, 1000))"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def test_image_create_delete(self):"},{"line_number":22,"context_line":"        \"\"\"tests the image creation and deletion functionalities:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_4a4afb83","line":19,"updated":"2014-12-03 09:12:31.000000000","message":"Hi Doug! I think we don\u0027t need more  broader random space. This will be enough even for 10 images(I doubt that their will be a lot). Even if in the future we will change the test (as example --- will create 100 images) -- we can change random string.","commit_id":"81a699075d37aa0595f643213143f234b0d4d6f3"},{"author":{"_account_id":9981,"name":"Doug Fish","email":"drfish@us.ibm.com","username":"doug-fish"},"change_message_id":"a42c6cd565eb00621f5edb01917ff207ba27ee38","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class TestImage(helpers.TestCase):"},{"line_number":19,"context_line":"    IMAGE_NAME \u003d \u0027horizonimage\u0027 + str(random.randint(0, 1000))"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def test_image_create_delete(self):"},{"line_number":22,"context_line":"        \"\"\"tests the image creation and deletion functionalities:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_bf957ae5","line":19,"updated":"2014-12-02 18:09:36.000000000","message":"I\u0027d like to see a broader random space used to avoid collision.  I know there is a low chance of collision in this one instance, but when the integration tests are more complete and we have 50 or 100 or more of these independent random numbers chosen I\u0027m afraid we are going to have non-trivial failure rates due to collisions.","commit_id":"81a699075d37aa0595f643213143f234b0d4d6f3"},{"author":{"_account_id":8577,"name":"Daniel Korn","email":"dkorn@redhat.com","username":"dkorn"},"change_message_id":"50c2adf3f3cbda80ad087538bdfa30761bbd7a6c","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class TestImage(helpers.TestCase):"},{"line_number":19,"context_line":"    IMAGE_NAME \u003d \u0027horizonimage\u0027 + str(random.randint(0, 1000))"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def test_image_create_delete(self):"},{"line_number":22,"context_line":"        \"\"\"tests the image creation and deletion functionalities:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_222cb3ab","line":19,"in_reply_to":"5a890539_2873b7e7","updated":"2014-12-04 14:25:56.000000000","message":"Done\n\nbug: https://bugs.launchpad.net/horizon/+bug/1399219","commit_id":"81a699075d37aa0595f643213143f234b0d4d6f3"},{"author":{"_account_id":8577,"name":"Daniel Korn","email":"dkorn@redhat.com","username":"dkorn"},"change_message_id":"4b6d34df5922f115f7ab1ef96e1a4b12d12d832d","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class TestImage(helpers.TestCase):"},{"line_number":19,"context_line":"    IMAGE_NAME \u003d \u0027horizonimage\u0027 + str(random.randint(0, 1000))"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def test_image_create_delete(self):"},{"line_number":22,"context_line":"        \"\"\"tests the image creation and deletion functionalities:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_c8a233fb","line":19,"in_reply_to":"5a890539_496e5b97","updated":"2014-12-04 12:34:25.000000000","message":"I agree there must be a better way to get a unique string for the tests, but this is a general issue, that many tests share. \n\nI would like to propose:\n\na. expanding the interval to [0, 10000] for now.\n\nb. open a bug in launchpad and make sure the fix is proposed to all tests sharing the issue.\n\nwhat do you think?\n\nAlso, maybe I didn\u0027t fully understand the problem, but in other tests, that\u0027ll use the option to create an image, the name of the resource will probably be totally different (e.g. not include \"horizonimage\").","commit_id":"81a699075d37aa0595f643213143f234b0d4d6f3"},{"author":{"_account_id":9981,"name":"Doug Fish","email":"drfish@us.ibm.com","username":"doug-fish"},"change_message_id":"f5015b26b24136ef4dd0382dac2b6fe2febc20a2","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class TestImage(helpers.TestCase):"},{"line_number":19,"context_line":"    IMAGE_NAME \u003d \u0027horizonimage\u0027 + str(random.randint(0, 1000))"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def test_image_create_delete(self):"},{"line_number":22,"context_line":"        \"\"\"tests the image creation and deletion functionalities:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_9d089481","line":19,"in_reply_to":"5a890539_4a4afb83","updated":"2014-12-03 18:34:59.000000000","message":"So with 10 images you are talking about maybe a 1 or 2% collision rate.  But the issue with that we are going to have a lot of tests independently picking random numbers with similar failure rates.  Once we have 20 or 30 or more tests that each have a 1/2% failure rate we are going to have a lot of test suite failures due to collisions.\n\nI think Tomáš\u0027s suggestion to put these in some method to centralize the selection is good.","commit_id":"81a699075d37aa0595f643213143f234b0d4d6f3"},{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"b38e4850563e8635a521d003dd0d018f06394001","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class TestImage(helpers.TestCase):"},{"line_number":19,"context_line":"    IMAGE_NAME \u003d \u0027horizonimage\u0027 + str(random.randint(0, 1000))"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def test_image_create_delete(self):"},{"line_number":22,"context_line":"        \"\"\"tests the image creation and deletion functionalities:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_496e5b97","line":19,"in_reply_to":"5a890539_9d089481","updated":"2014-12-04 00:45:54.000000000","message":"why not just change this to\n\n    IMAGE_NAME \u003d \u0027horizonimage\u0027 + str(uuid.uuid4())\n\nwouldn\u0027t that solve the collision problem?\n\ni also agree that putting the randomization part, regardless of actual methodology, into a centralized place is a better design.","commit_id":"81a699075d37aa0595f643213143f234b0d4d6f3"},{"author":{"_account_id":12954,"name":"Tomáš Nová?ik","email":"tnovacik@gmail.com","username":"chance"},"change_message_id":"11b912e274eb2ba75a84c5a95e33818adceb5339","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class TestImage(helpers.TestCase):"},{"line_number":19,"context_line":"    IMAGE_NAME \u003d \u0027horizonimage\u0027 + str(random.randint(0, 1000))"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def test_image_create_delete(self):"},{"line_number":22,"context_line":"        \"\"\"tests the image creation and deletion functionalities:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_47d03653","line":19,"in_reply_to":"5a890539_bf957ae5","updated":"2014-12-03 08:17:13.000000000","message":"Is not there something else that we could rely on? something that would be unique for every test?\n\nOtherwise we should implement some method that will return random strings (in order to unify the approach)","commit_id":"81a699075d37aa0595f643213143f234b0d4d6f3"},{"author":{"_account_id":9981,"name":"Doug Fish","email":"drfish@us.ibm.com","username":"doug-fish"},"change_message_id":"5f7323cf86edd49d2d603474559b0df20c27a210","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class TestImage(helpers.TestCase):"},{"line_number":19,"context_line":"    IMAGE_NAME \u003d \u0027horizonimage\u0027 + str(random.randint(0, 1000))"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def test_image_create_delete(self):"},{"line_number":22,"context_line":"        \"\"\"tests the image creation and deletion functionalities:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_2873b7e7","line":19,"in_reply_to":"5a890539_c8a233fb","updated":"2014-12-04 12:53:49.000000000","message":"I\u0027d +1 that solution.\n\nIt\u0027s not that the other tests are going to create an image, it\u0027s that the others tests are going to create some kind of object (maybe an instance, etc) that will be subject to the same sort of name collisions.","commit_id":"81a699075d37aa0595f643213143f234b0d4d6f3"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"046395973cfc959ef02d02aed3ec4f1b8c1b7b05","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class TestImage(helpers.TestCase):"},{"line_number":19,"context_line":"    IMAGE_NAME \u003d \u0027horizonimage\u0027 + str(random.randint(0, 10000))"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def test_image_create_delete(self):"},{"line_number":22,"context_line":"        \"\"\"tests the image creation and deletion functionalities:"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_365d9c49","line":19,"updated":"2014-12-16 15:16:55.000000000","message":"Suggest uuid.uuid4() in place of random.randint().","commit_id":"a8714e94d2b9230786c661040baccd2626140076"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"6991476b8c5c76a0bee899479264a90d1f0d33a0","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class TestImage(helpers.TestCase):"},{"line_number":19,"context_line":"    IMAGE_NAME \u003d \u0027horizonimage\u0027 + str(random.randint(0, 10000))"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def test_image_create_delete(self):"},{"line_number":22,"context_line":"        \"\"\"tests the image creation and deletion functionalities:"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a961159_731b9280","line":19,"updated":"2014-12-17 11:51:00.000000000","message":"Suggest using uuid here instead of randint. This would be consistent with patch https://review.openstack.org/#/c/141906\n\nIMAGE_NAME \u003d \u0027horizonimage_\u0027 + str(uuid.uuid4())","commit_id":"7d122818efe9b0f0b3744bf25bc014af2628855f"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"0cb1a3fe671e9f1800b9332f5ba0028124a4d6af","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class TestImage(helpers.TestCase):"},{"line_number":19,"context_line":"    IMAGE_NAME \u003d \u0027horizonimage\u0027 + str(random.randint(0, 10000))"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def test_image_create_delete(self):"},{"line_number":22,"context_line":"        \"\"\"tests the image creation and deletion functionalities:"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a961159_e5eb2ada","line":19,"in_reply_to":"3a961159_5f6e8dca","updated":"2014-12-17 20:15:56.000000000","message":"I think if the idea is to reduce/remove collisions, uuid is a great approach.  It can look ugly...but it\u0027s all test data.  I +1 using uuid when reasonable.","commit_id":"7d122818efe9b0f0b3744bf25bc014af2628855f"},{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"9904a3165dac82a63fc424d567dfe14590c08589","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class TestImage(helpers.TestCase):"},{"line_number":19,"context_line":"    IMAGE_NAME \u003d \u0027horizonimage\u0027 + str(random.randint(0, 10000))"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def test_image_create_delete(self):"},{"line_number":22,"context_line":"        \"\"\"tests the image creation and deletion functionalities:"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a961159_5f6e8dca","line":19,"in_reply_to":"3a961159_731b9280","updated":"2014-12-17 18:48:48.000000000","message":"i brought this up in a previous patch, didn\u0027t seem to gain much traction. i\u0027m curious, is there a reason for using a randint instead of uuid?","commit_id":"7d122818efe9b0f0b3744bf25bc014af2628855f"},{"author":{"_account_id":8090,"name":"Chad Roberts","email":"croberts@redhat.com","username":"croberts"},"change_message_id":"c390c756dfc662bdf751fbdbe92e768ba6427ffd","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class TestImage(helpers.TestCase):"},{"line_number":19,"context_line":"    IMAGE_NAME \u003d \u0027horizonimage\u0027 + str(random.randint(0, 10000))"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def test_image_create_delete(self):"},{"line_number":22,"context_line":"        \"\"\"tests the image creation and deletion functionalities:"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a961159_dcda5d4a","line":19,"in_reply_to":"3a961159_e5eb2ada","updated":"2014-12-18 20:21:08.000000000","message":"+1 for uuid, assuming the idea is to avoid collisions.","commit_id":"7d122818efe9b0f0b3744bf25bc014af2628855f"}]}
