)]}'
{"ironic_python_agent/tests/functional/base.py":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"02867086f7a0a614807774e39339991fc48fc9df","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                time.sleep(.1)"},{"line_number":50,"context_line":"                tries +\u003d 1"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        raise IOError(\u0027Agent did not start after 2 seconds.\u0027)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def tearDown(self):"},{"line_number":55,"context_line":"        super(FunctionalBase, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_d025650a","line":52,"updated":"2015-08-15 01:22:29.000000000","message":"Isn\u0027t 2 actually IPA_WAIT_TIME?","commit_id":"47e9b5a2397f5be20b07f137bf6596a5f7ae5e6c"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"056f54dba960b0d10d272bda5c9965188cdebb3e","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                time.sleep(.1)"},{"line_number":50,"context_line":"                tries +\u003d 1"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        raise IOError(\u0027Agent did not start after 2 seconds.\u0027)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def tearDown(self):"},{"line_number":55,"context_line":"        super(FunctionalBase, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa1b9901_f1aa1c85","line":52,"in_reply_to":"1a4dcd0f_d025650a","updated":"2015-08-17 16:53:36.000000000","message":"Yes, fixed.","commit_id":"47e9b5a2397f5be20b07f137bf6596a5f7ae5e6c"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"4e640f3302e86147a5aac3a4f5408f84ebfdc21d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        self.process.start()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # Wait for process to start, otherwise we have a race for tests"},{"line_number":43,"context_line":"        tries \u003d 0"},{"line_number":44,"context_line":"        while tries \u003c int(os.environ.get(\u0027IPA_WAIT_TIME\u0027, 2)):"},{"line_number":45,"context_line":"            try:"},{"line_number":46,"context_line":"                return requests.get(\u0027http://localhost:\u0027 +"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_025f3c73","line":43,"updated":"2015-08-17 18:13:07.000000000","message":"nit: Could do:\n\n max_tries \u003d int(os.environ.get(\u0027IPA_WAIT_TIME\u0027, 2))\n\nThen could use max_tries on next line and below in error message","commit_id":"7eee7fedde53c18a0a1cc75fc0cfd37a056c692c"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"630fef771fac07af80c210c905f0ae0bf0924469","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        self.process.start()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # Wait for process to start, otherwise we have a race for tests"},{"line_number":43,"context_line":"        tries \u003d 0"},{"line_number":44,"context_line":"        while tries \u003c int(os.environ.get(\u0027IPA_WAIT_TIME\u0027, 2)):"},{"line_number":45,"context_line":"            try:"},{"line_number":46,"context_line":"                return requests.get(\u0027http://localhost:\u0027 +"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_49d1aa56","line":43,"in_reply_to":"fa1b9901_025f3c73","updated":"2015-08-18 15:40:22.000000000","message":"Done","commit_id":"7eee7fedde53c18a0a1cc75fc0cfd37a056c692c"},{"author":{"_account_id":5660,"name":"Kurt Taylor","email":"kurt.r.taylor@gmail.com","username":"krtaylor"},"change_message_id":"7cd00fb589e8dce741c887dab8479d804ce9ddc0","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # Wait for process to start, otherwise we have a race for tests"},{"line_number":43,"context_line":"        tries \u003d 0"},{"line_number":44,"context_line":"        while tries \u003c int(os.environ.get(\u0027IPA_WAIT_TIME\u0027, 2)):"},{"line_number":45,"context_line":"            try:"},{"line_number":46,"context_line":"                return requests.get(\u0027http://localhost:\u0027 +"},{"line_number":47,"context_line":"                    os.environ.get(\u0027TEST_PORT\u0027, 9999) + \u0027/v1/commands\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_bc622dd7","line":44,"updated":"2015-08-17 23:06:02.000000000","message":"I agree with jlvillal - it would be better to not repeat this and then again in the error message","commit_id":"7eee7fedde53c18a0a1cc75fc0cfd37a056c692c"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"630fef771fac07af80c210c905f0ae0bf0924469","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # Wait for process to start, otherwise we have a race for tests"},{"line_number":43,"context_line":"        tries \u003d 0"},{"line_number":44,"context_line":"        while tries \u003c int(os.environ.get(\u0027IPA_WAIT_TIME\u0027, 2)):"},{"line_number":45,"context_line":"            try:"},{"line_number":46,"context_line":"                return requests.get(\u0027http://localhost:\u0027 +"},{"line_number":47,"context_line":"                    os.environ.get(\u0027TEST_PORT\u0027, 9999) + \u0027/v1/commands\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_69d4ae46","line":44,"in_reply_to":"fa1b9901_bc622dd7","updated":"2015-08-18 15:40:22.000000000","message":"Done","commit_id":"7eee7fedde53c18a0a1cc75fc0cfd37a056c692c"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"4e640f3302e86147a5aac3a4f5408f84ebfdc21d","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                tries +\u003d 1"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        raise IOError(\u0027Agent did not start after \u0027 +"},{"line_number":53,"context_line":"                str(os.environ.get(\u0027IPA_WAIT_TIME\u0027, 2)) + \u0027 seconds.\u0027)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def tearDown(self):"},{"line_number":56,"context_line":"        super(FunctionalBase, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_62c4f83f","line":53,"updated":"2015-08-17 18:13:07.000000000","message":"nit: could just do\n\n os.environ.get(\u0027IPA_WAIT_TIME\u0027, \u00272\u0027)\n\nMake the default value a string.\n\nOr:\n\n raise IOError(\u0027Agent did not start after {} seconds\u0027.format(os.environ.get(\u0027IPA_WAIT_TIME\u0027, 2))\n\nUse the format function rather than concatenating.","commit_id":"7eee7fedde53c18a0a1cc75fc0cfd37a056c692c"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"630fef771fac07af80c210c905f0ae0bf0924469","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                tries +\u003d 1"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        raise IOError(\u0027Agent did not start after \u0027 +"},{"line_number":53,"context_line":"                str(os.environ.get(\u0027IPA_WAIT_TIME\u0027, 2)) + \u0027 seconds.\u0027)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def tearDown(self):"},{"line_number":56,"context_line":"        super(FunctionalBase, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_2913160f","line":53,"in_reply_to":"fa1b9901_62c4f83f","updated":"2015-08-18 15:40:22.000000000","message":"Done, went with the first option taking your other comment above into consideration.","commit_id":"7eee7fedde53c18a0a1cc75fc0cfd37a056c692c"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"910d79520cea7a42bc9582f72edc818cf4639771","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        while tries \u003c int(max_tries):"},{"line_number":46,"context_line":"            try:"},{"line_number":47,"context_line":"                return requests.get(\u0027http://localhost:\u0027 +"},{"line_number":48,"context_line":"                    os.environ.get(\u0027TEST_PORT\u0027, 9999) + \u0027/v1/commands\u0027)"},{"line_number":49,"context_line":"            except requests.ConnectionError:"},{"line_number":50,"context_line":"                time.sleep(.1)"},{"line_number":51,"context_line":"                tries +\u003d 1"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa1b9901_8ca030a1","line":48,"updated":"2015-08-18 15:58:57.000000000","message":"If \u0027TEST_PORT\u0027 is not defined will get an error here.\n\nI would recommend:\n return requests.get(\u0027http://localhost:{}/v1/commands\u0027.format(\n     os.environ.get(\u0027TEST_PORT\u0027, 9999))\n\nPlease fix any syntax errors on my part :)","commit_id":"342374b328f1265428dcf69b3ed60571e2224caa"}],"ironic_python_agent/tests/functional/test_commands.py":[{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"af7601317a636b79388c15925bfa9c45ecc45271","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class TestCommands(base.FunctionalBase):"},{"line_number":22,"context_line":"    def test_empty_commands(self):"},{"line_number":23,"context_line":"        commands \u003d requests.get(\u0027http://localhost:\u0027 +"},{"line_number":24,"context_line":"                os.environ[\u0027TEST_PORT\u0027] + \u0027/v1/commands\u0027)"},{"line_number":25,"context_line":"        self.assertEqual(200, commands.status_code)"},{"line_number":26,"context_line":"        self.assertEqual({\u0027commands\u0027: []}, commands.json())"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_53f16c94","line":24,"updated":"2015-08-14 18:19:57.000000000","message":"You should do a .get() with default here...tox isn\u0027t the only way I could conceivably run these tests (thought it kind of is)","commit_id":"e95263b516ef5fb06c64d07ddb8928eb72811287"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"08d6bbe00a0267197eab70730956758a655f703e","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class TestCommands(base.FunctionalBase):"},{"line_number":22,"context_line":"    def test_empty_commands(self):"},{"line_number":23,"context_line":"        commands \u003d requests.get(\u0027http://localhost:\u0027 +"},{"line_number":24,"context_line":"                os.environ[\u0027TEST_PORT\u0027] + \u0027/v1/commands\u0027)"},{"line_number":25,"context_line":"        self.assertEqual(200, commands.status_code)"},{"line_number":26,"context_line":"        self.assertEqual({\u0027commands\u0027: []}, commands.json())"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_e79d520b","line":24,"in_reply_to":"1a4dcd0f_53f16c94","updated":"2015-08-14 20:08:38.000000000","message":"Done. You can still set an environment variable without tox, but I changed it","commit_id":"e95263b516ef5fb06c64d07ddb8928eb72811287"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"bdd611ad95c4fbe232cf0d76439037d17fa0facd","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class TestCommands(base.FunctionalBase):"},{"line_number":22,"context_line":"    def test_empty_commands(self):"},{"line_number":23,"context_line":"        commands \u003d requests.get(\u0027http://localhost:\u0027 +"},{"line_number":24,"context_line":"                os.environ.get(\u0027TEST_PORT\u0027, 9999) + \u0027/v1/commands\u0027)"},{"line_number":25,"context_line":"        self.assertEqual(200, commands.status_code)"},{"line_number":26,"context_line":"        self.assertEqual({\u0027commands\u0027: []}, commands.json())"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_90483dce","line":24,"updated":"2015-08-15 01:21:03.000000000","message":"\u003e\u003e\u003e a \u003d {}\n \u003e\u003e\u003e \u0027hello\u0027 + a.get(\u0027foo\u0027, 9999)\n Traceback (most recent call last):\n   File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\n TypeError: cannot concatenate \u0027str\u0027 and \u0027int\u0027 objects \n \u003e\u003e\u003e","commit_id":"47e9b5a2397f5be20b07f137bf6596a5f7ae5e6c"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"056f54dba960b0d10d272bda5c9965188cdebb3e","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class TestCommands(base.FunctionalBase):"},{"line_number":22,"context_line":"    def test_empty_commands(self):"},{"line_number":23,"context_line":"        commands \u003d requests.get(\u0027http://localhost:\u0027 +"},{"line_number":24,"context_line":"                os.environ.get(\u0027TEST_PORT\u0027, 9999) + \u0027/v1/commands\u0027)"},{"line_number":25,"context_line":"        self.assertEqual(200, commands.status_code)"},{"line_number":26,"context_line":"        self.assertEqual({\u0027commands\u0027: []}, commands.json())"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa1b9901_d1927857","line":24,"in_reply_to":"1a4dcd0f_90483dce","updated":"2015-08-17 16:53:36.000000000","message":"Good catch. Fixed by type coercion.","commit_id":"47e9b5a2397f5be20b07f137bf6596a5f7ae5e6c"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"4e640f3302e86147a5aac3a4f5408f84ebfdc21d","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class TestCommands(base.FunctionalBase):"},{"line_number":22,"context_line":"    def test_empty_commands(self):"},{"line_number":23,"context_line":"        commands \u003d requests.get(\u0027http://localhost:\u0027 +"},{"line_number":24,"context_line":"                str(os.environ.get(\u0027TEST_PORT\u0027, 9999)) + \u0027/v1/commands\u0027)"},{"line_number":25,"context_line":"        self.assertEqual(200, commands.status_code)"},{"line_number":26,"context_line":"        self.assertEqual({\u0027commands\u0027: []}, commands.json())"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_82734c4d","line":24,"updated":"2015-08-17 18:13:07.000000000","message":"nit: could just do\n\n os.environ.get(\u0027TEST_PORT\u0027, \u00279999\u0027)\n\nMake the default value a string.\n\nOr use the format function instead of concatenating the string.","commit_id":"7eee7fedde53c18a0a1cc75fc0cfd37a056c692c"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"630fef771fac07af80c210c905f0ae0bf0924469","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class TestCommands(base.FunctionalBase):"},{"line_number":22,"context_line":"    def test_empty_commands(self):"},{"line_number":23,"context_line":"        commands \u003d requests.get(\u0027http://localhost:\u0027 +"},{"line_number":24,"context_line":"                str(os.environ.get(\u0027TEST_PORT\u0027, 9999)) + \u0027/v1/commands\u0027)"},{"line_number":25,"context_line":"        self.assertEqual(200, commands.status_code)"},{"line_number":26,"context_line":"        self.assertEqual({\u0027commands\u0027: []}, commands.json())"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_49a20ab0","line":24,"in_reply_to":"fa1b9901_82734c4d","updated":"2015-08-18 15:40:22.000000000","message":"Done, went with the first option.","commit_id":"7eee7fedde53c18a0a1cc75fc0cfd37a056c692c"}]}
