)]}'
{"kolla/tests/test_build.py":[{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"df2a6107c1d8adccde63ecc3c5f25be59f2d0c5b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    parent\u003dNone, status\u003dbuild.STATUS_MATCHED)"},{"line_number":29,"context_line":"FAKE_IMAGE_CHILD \u003d build.Image("},{"line_number":30,"context_line":"    \u0027image-child\u0027, \u0027image-child:latest\u0027,"},{"line_number":31,"context_line":"    \u0027/fake/path\u0027, parent_name\u003d\u0027image-base\u0027,"},{"line_number":32,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_MATCHED)"},{"line_number":33,"context_line":"FAKE_IMAGE_CHILD1 \u003d build.Image("},{"line_number":34,"context_line":"    \u0027image-child\u0027, \u0027image-child:latest\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_ee0eed39","line":31,"updated":"2017-01-22 09:00:12.000000000","message":"what happen  to /fake/path2?","commit_id":"c2c5c4d7cdb2a0a90f3d6fe0929a1fa2ca7a5b32"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"48c072d2b7ae6121513ab5b71f9e7644baa07369","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    parent\u003dNone, status\u003dbuild.STATUS_MATCHED)"},{"line_number":29,"context_line":"FAKE_IMAGE_CHILD \u003d build.Image("},{"line_number":30,"context_line":"    \u0027image-child\u0027, \u0027image-child:latest\u0027,"},{"line_number":31,"context_line":"    \u0027/fake/path\u0027, parent_name\u003d\u0027image-base\u0027,"},{"line_number":32,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_MATCHED)"},{"line_number":33,"context_line":"FAKE_IMAGE_CHILD1 \u003d build.Image("},{"line_number":34,"context_line":"    \u0027image-child\u0027, \u0027image-child:latest\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_7fd7094b","line":31,"in_reply_to":"5a3905b3_ee0eed39","updated":"2017-01-22 11:52:58.000000000","message":"Done","commit_id":"c2c5c4d7cdb2a0a90f3d6fe0929a1fa2ca7a5b32"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"df2a6107c1d8adccde63ecc3c5f25be59f2d0c5b","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_MATCHED)"},{"line_number":33,"context_line":"FAKE_IMAGE_CHILD1 \u003d build.Image("},{"line_number":34,"context_line":"    \u0027image-child\u0027, \u0027image-child:latest\u0027,"},{"line_number":35,"context_line":"    \u0027/fake/path\u0027, parent_name\u003d\u0027image-base\u0027,"},{"line_number":36,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_UNMATCHED)"},{"line_number":37,"context_line":"FAKE_IMAGE_CHILD2 \u003d build.Image("},{"line_number":38,"context_line":"    \u0027image-child\u0027, \u0027image-child:latest\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_0e0c1940","line":35,"updated":"2017-01-22 09:00:12.000000000","message":"i prefer to use different image name and path for the children.","commit_id":"c2c5c4d7cdb2a0a90f3d6fe0929a1fa2ca7a5b32"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"48c072d2b7ae6121513ab5b71f9e7644baa07369","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_MATCHED)"},{"line_number":33,"context_line":"FAKE_IMAGE_CHILD1 \u003d build.Image("},{"line_number":34,"context_line":"    \u0027image-child\u0027, \u0027image-child:latest\u0027,"},{"line_number":35,"context_line":"    \u0027/fake/path\u0027, parent_name\u003d\u0027image-base\u0027,"},{"line_number":36,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_UNMATCHED)"},{"line_number":37,"context_line":"FAKE_IMAGE_CHILD2 \u003d build.Image("},{"line_number":38,"context_line":"    \u0027image-child\u0027, \u0027image-child:latest\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_bfcdf1b8","line":35,"in_reply_to":"5a3905b3_0e0c1940","updated":"2017-01-22 11:52:58.000000000","message":"Done","commit_id":"c2c5c4d7cdb2a0a90f3d6fe0929a1fa2ca7a5b32"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"df2a6107c1d8adccde63ecc3c5f25be59f2d0c5b","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        self.image.path \u003d self.useFixture(fixtures.TempDir()).path"},{"line_number":53,"context_line":"        self.imageChild \u003d FAKE_IMAGE_CHILD.copy()"},{"line_number":54,"context_line":"        self.imageChild.path \u003d self.useFixture(fixtures.TempDir()).path"},{"line_number":55,"context_line":"        # NOTE(jeffrey4l): use a real, temporary dir"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @mock.patch.dict(os.environ, clear\u003dTrue)"},{"line_number":58,"context_line":"    @mock.patch(\u0027docker.Client\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_2e055513","line":55,"updated":"2017-01-22 09:00:12.000000000","message":"move to above line 52","commit_id":"c2c5c4d7cdb2a0a90f3d6fe0929a1fa2ca7a5b32"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"48c072d2b7ae6121513ab5b71f9e7644baa07369","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        self.image.path \u003d self.useFixture(fixtures.TempDir()).path"},{"line_number":53,"context_line":"        self.imageChild \u003d FAKE_IMAGE_CHILD.copy()"},{"line_number":54,"context_line":"        self.imageChild.path \u003d self.useFixture(fixtures.TempDir()).path"},{"line_number":55,"context_line":"        # NOTE(jeffrey4l): use a real, temporary dir"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @mock.patch.dict(os.environ, clear\u003dTrue)"},{"line_number":58,"context_line":"    @mock.patch(\u0027docker.Client\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_dfc63d99","line":55,"in_reply_to":"5a3905b3_2e055513","updated":"2017-01-22 11:52:58.000000000","message":"Done","commit_id":"c2c5c4d7cdb2a0a90f3d6fe0929a1fa2ca7a5b32"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"df2a6107c1d8adccde63ecc3c5f25be59f2d0c5b","unresolved":false,"context_lines":[{"line_number":159,"context_line":"    @mock.patch(\u0027shutil.copyfile\u0027)"},{"line_number":160,"context_line":"    @mock.patch(\u0027os.utime\u0027)"},{"line_number":161,"context_line":"    def test_process_source(self, mock_get, mock_client,"},{"line_number":162,"context_line":"                            mock_rmtree, mock_copyfile, mock_utime):"},{"line_number":163,"context_line":"        self.image.source \u003d {"},{"line_number":164,"context_line":"            \u0027source\u0027: \u0027http://fake/source\u0027,"},{"line_number":165,"context_line":"            \u0027type\u0027: \u0027url\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_4e02a10c","line":162,"updated":"2017-01-22 09:00:12.000000000","message":"could u use a for to reduce the duplicated code here?","commit_id":"c2c5c4d7cdb2a0a90f3d6fe0929a1fa2ca7a5b32"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"a0e32ba6812bdf5625d4d27f64119aae9f9f88b0","unresolved":false,"context_lines":[{"line_number":159,"context_line":"    @mock.patch(\u0027shutil.copyfile\u0027)"},{"line_number":160,"context_line":"    @mock.patch(\u0027os.utime\u0027)"},{"line_number":161,"context_line":"    def test_process_source(self, mock_get, mock_client,"},{"line_number":162,"context_line":"                            mock_rmtree, mock_copyfile, mock_utime):"},{"line_number":163,"context_line":"        self.image.source \u003d {"},{"line_number":164,"context_line":"            \u0027source\u0027: \u0027http://fake/source\u0027,"},{"line_number":165,"context_line":"            \u0027type\u0027: \u0027url\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_3f3021e8","line":162,"in_reply_to":"5a3905b3_4e02a10c","updated":"2017-01-22 11:38:05.000000000","message":"Jeffrey the reason for not using *for* loop here is every time image is passed of different type. So for now it seems ok to me. Please suugest.","commit_id":"c2c5c4d7cdb2a0a90f3d6fe0929a1fa2ca7a5b32"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"df2a6107c1d8adccde63ecc3c5f25be59f2d0c5b","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        kolla.image_statuses_good[\u0027good\u0027] \u003d None"},{"line_number":369,"context_line":"        kolla.image_statuses_bad[\u0027bad\u0027] \u003d None"},{"line_number":370,"context_line":"        kolla.image_statuses_unmatched[\u0027unmatched\u0027] \u003d None"},{"line_number":371,"context_line":"        kolla.summary()"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"class MainTest(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_71010205","line":371,"updated":"2017-01-22 09:00:12.000000000","message":"what\u0027s the expectation? no exception is raised?","commit_id":"c2c5c4d7cdb2a0a90f3d6fe0929a1fa2ca7a5b32"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"48c072d2b7ae6121513ab5b71f9e7644baa07369","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        kolla.image_statuses_good[\u0027good\u0027] \u003d None"},{"line_number":369,"context_line":"        kolla.image_statuses_bad[\u0027bad\u0027] \u003d None"},{"line_number":370,"context_line":"        kolla.image_statuses_unmatched[\u0027unmatched\u0027] \u003d None"},{"line_number":371,"context_line":"        kolla.summary()"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"class MainTest(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_ffc3f986","line":371,"in_reply_to":"5a3905b3_71010205","updated":"2017-01-22 11:52:58.000000000","message":"Done","commit_id":"c2c5c4d7cdb2a0a90f3d6fe0929a1fa2ca7a5b32"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"df2a6107c1d8adccde63ecc3c5f25be59f2d0c5b","unresolved":false,"context_lines":[{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    @mock.patch(\u0027sys.argv\u0027)"},{"line_number":404,"context_line":"    def test_run_build(self, mock_sys):"},{"line_number":405,"context_line":"        build.run_build()"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_91066e1b","line":405,"updated":"2017-01-22 09:00:12.000000000","message":"assert the returns?","commit_id":"c2c5c4d7cdb2a0a90f3d6fe0929a1fa2ca7a5b32"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"48c072d2b7ae6121513ab5b71f9e7644baa07369","unresolved":false,"context_lines":[{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    @mock.patch(\u0027sys.argv\u0027)"},{"line_number":404,"context_line":"    def test_run_build(self, mock_sys):"},{"line_number":405,"context_line":"        build.run_build()"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_3fbae10a","line":405,"in_reply_to":"5a3905b3_91066e1b","updated":"2017-01-22 11:52:58.000000000","message":"Done","commit_id":"c2c5c4d7cdb2a0a90f3d6fe0929a1fa2ca7a5b32"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"2332b044db5d0be08cabd30ec2bd8f66d200ed31","unresolved":false,"context_lines":[{"line_number":160,"context_line":"    @mock.patch(\u0027os.utime\u0027)"},{"line_number":161,"context_line":"    def test_process_source(self, mock_get, mock_client,"},{"line_number":162,"context_line":"                            mock_rmtree, mock_copyfile, mock_utime):"},{"line_number":163,"context_line":"        self.image.source \u003d {"},{"line_number":164,"context_line":"            \u0027source\u0027: \u0027http://fake/source\u0027,"},{"line_number":165,"context_line":"            \u0027type\u0027: \u0027url\u0027,"},{"line_number":166,"context_line":"            \u0027name\u0027: \u0027fake-image-base\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_da41ebaa","line":163,"updated":"2017-01-22 14:13:17.000000000","message":"how about\n\nfor source in [{type:url, ...},{type:git,...}, {type:local,...}]:\n    self.image.source \u003d source","commit_id":"94039f444ae12394bf6188a6e7491ead8388a82c"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"a4d018daeddf0074ef2093a7436f1bb0e73f671a","unresolved":false,"context_lines":[{"line_number":160,"context_line":"    @mock.patch(\u0027os.utime\u0027)"},{"line_number":161,"context_line":"    def test_process_source(self, mock_get, mock_client,"},{"line_number":162,"context_line":"                            mock_rmtree, mock_copyfile, mock_utime):"},{"line_number":163,"context_line":"        self.image.source \u003d {"},{"line_number":164,"context_line":"            \u0027source\u0027: \u0027http://fake/source\u0027,"},{"line_number":165,"context_line":"            \u0027type\u0027: \u0027url\u0027,"},{"line_number":166,"context_line":"            \u0027name\u0027: \u0027fake-image-base\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_c5290c39","line":163,"in_reply_to":"5a3905b3_da41ebaa","updated":"2017-01-22 15:13:30.000000000","message":"Done","commit_id":"94039f444ae12394bf6188a6e7491ead8388a82c"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"2332b044db5d0be08cabd30ec2bd8f66d200ed31","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        get_result \u003d builder.process_source(self.image, self.image.source)"},{"line_number":183,"context_line":"        self.assertIsNone(get_result)"},{"line_number":184,"context_line":"        self.assertEqual(self.image.status, build.STATUS_ERROR)"},{"line_number":185,"context_line":"        self.assertFalse(builder.success)"},{"line_number":186,"context_line":"        self.image.source \u003d {"},{"line_number":187,"context_line":"            \u0027source\u0027: \u0027http://fake/source\u0027,"},{"line_number":188,"context_line":"            \u0027type\u0027: \u0027local\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_5a2dfbfc","line":185,"updated":"2017-01-22 14:13:17.000000000","message":"why expect this failed? rather than success? i think at least we need expect one success.","commit_id":"94039f444ae12394bf6188a6e7491ead8388a82c"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"a4d018daeddf0074ef2093a7436f1bb0e73f671a","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        get_result \u003d builder.process_source(self.image, self.image.source)"},{"line_number":183,"context_line":"        self.assertIsNone(get_result)"},{"line_number":184,"context_line":"        self.assertEqual(self.image.status, build.STATUS_ERROR)"},{"line_number":185,"context_line":"        self.assertFalse(builder.success)"},{"line_number":186,"context_line":"        self.image.source \u003d {"},{"line_number":187,"context_line":"            \u0027source\u0027: \u0027http://fake/source\u0027,"},{"line_number":188,"context_line":"            \u0027type\u0027: \u0027local\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_2519f022","line":185,"in_reply_to":"5a3905b3_5a2dfbfc","updated":"2017-01-22 15:13:30.000000000","message":"Done","commit_id":"94039f444ae12394bf6188a6e7491ead8388a82c"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"2332b044db5d0be08cabd30ec2bd8f66d200ed31","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        kolla.image_statuses_good[\u0027good\u0027] \u003d None"},{"line_number":369,"context_line":"        kolla.image_statuses_bad[\u0027bad\u0027] \u003d None"},{"line_number":370,"context_line":"        kolla.image_statuses_unmatched[\u0027unmatched\u0027] \u003d None"},{"line_number":371,"context_line":"        self.assertTrue(kolla.summary())"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"class MainTest(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_5a141b9f","line":371,"updated":"2017-01-22 14:13:17.000000000","message":"summary() return a dict, at least it is a \n\n        results \u003d {\n            \u0027built\u0027: [],\n            \u0027failed\u0027: [],\n            \u0027not_matched\u0027: [],\n        }\n\nit will never be false.","commit_id":"94039f444ae12394bf6188a6e7491ead8388a82c"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"6b64fcc541b6b21726db554c93f72c51d94e5d42","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        kolla.image_statuses_good[\u0027good\u0027] \u003d None"},{"line_number":369,"context_line":"        kolla.image_statuses_bad[\u0027bad\u0027] \u003d None"},{"line_number":370,"context_line":"        kolla.image_statuses_unmatched[\u0027unmatched\u0027] \u003d None"},{"line_number":371,"context_line":"        self.assertTrue(kolla.summary())"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"class MainTest(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_05f954c7","line":371,"in_reply_to":"5a3905b3_5a141b9f","updated":"2017-01-22 15:12:26.000000000","message":"yes, it will always be true from current implementation point of view, but in future this test will play important role.","commit_id":"94039f444ae12394bf6188a6e7491ead8388a82c"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"2332b044db5d0be08cabd30ec2bd8f66d200ed31","unresolved":false,"context_lines":[{"line_number":403,"context_line":"    @mock.patch(\u0027sys.argv\u0027)"},{"line_number":404,"context_line":"    def test_run_build(self, mock_sys):"},{"line_number":405,"context_line":"        result \u003d build.run_build()"},{"line_number":406,"context_line":"        self.assertTrue(result)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_7a19d7d6","line":406,"updated":"2017-01-22 14:13:17.000000000","message":"ditto.","commit_id":"94039f444ae12394bf6188a6e7491ead8388a82c"},{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"9dc4e0d54571816728359c69a85ef01dd219e650","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        else:"},{"line_number":283,"context_line":"            self.fail(\u0027Expected to find the base image in this test\u0027)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    def test_set_time(self):"},{"line_number":286,"context_line":"        self.conf.set_override(\u0027install_type\u0027, \u0027source\u0027)"},{"line_number":287,"context_line":"        kolla \u003d build.KollaWorker(self.conf)"},{"line_number":288,"context_line":"        kolla.setup_working_dir()"},{"line_number":289,"context_line":"        kolla.set_time()"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    def _get_matched_images(self, images):"},{"line_number":292,"context_line":"        return [image for image in images"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_54121958","line":289,"range":{"start_line":285,"start_character":0,"end_line":289,"end_character":24},"updated":"2017-01-23 11:25:11.000000000","message":"Nothing is actually being checked here?","commit_id":"2662afe57dfb3de291fab50c310891cd63606795"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"562979fe0341e7d3d60e47aedb5c94ad505cbd3d","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        else:"},{"line_number":283,"context_line":"            self.fail(\u0027Expected to find the base image in this test\u0027)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    def test_set_time(self):"},{"line_number":286,"context_line":"        self.conf.set_override(\u0027install_type\u0027, \u0027source\u0027)"},{"line_number":287,"context_line":"        kolla \u003d build.KollaWorker(self.conf)"},{"line_number":288,"context_line":"        kolla.setup_working_dir()"},{"line_number":289,"context_line":"        kolla.set_time()"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    def _get_matched_images(self, images):"},{"line_number":292,"context_line":"        return [image for image in images"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_74a8f520","line":289,"range":{"start_line":285,"start_character":0,"end_line":289,"end_character":24},"in_reply_to":"5a3905b3_54121958","updated":"2017-01-23 11:41:42.000000000","message":"@Paul Yes I am checking nothing here, just checking the normal flow of execution for this function working.","commit_id":"2662afe57dfb3de291fab50c310891cd63606795"},{"author":{"_account_id":13039,"name":"Martin André","email":"m.andre@redhat.com","username":"mandre"},"change_message_id":"48ef6be1aaae6f5b7bd8f76561effd0974949de9","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    \u0027image-child\u0027, \u0027image-child:latest\u0027,"},{"line_number":31,"context_line":"    \u0027/fake/path2\u0027, parent_name\u003d\u0027image-base\u0027,"},{"line_number":32,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_MATCHED)"},{"line_number":33,"context_line":"FAKE_IMAGE_CHILD1 \u003d build.Image("},{"line_number":34,"context_line":"    \u0027image-child1\u0027, \u0027image-child:latest\u0027,"},{"line_number":35,"context_line":"    \u0027/fake/path3\u0027, parent_name\u003d\u0027image-base\u0027,"},{"line_number":36,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_UNMATCHED)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_27435d6d","line":33,"updated":"2017-01-24 13:13:34.000000000","message":"I\u0027d suggest we use a more descriptive name, like FAKE_IMAGE_CHILD_UNMATCHED","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"def2e6f31633269525a405076b3d55e5be5a636d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    \u0027image-child\u0027, \u0027image-child:latest\u0027,"},{"line_number":31,"context_line":"    \u0027/fake/path2\u0027, parent_name\u003d\u0027image-base\u0027,"},{"line_number":32,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_MATCHED)"},{"line_number":33,"context_line":"FAKE_IMAGE_CHILD1 \u003d build.Image("},{"line_number":34,"context_line":"    \u0027image-child1\u0027, \u0027image-child:latest\u0027,"},{"line_number":35,"context_line":"    \u0027/fake/path3\u0027, parent_name\u003d\u0027image-base\u0027,"},{"line_number":36,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_UNMATCHED)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_bbd2055a","line":33,"in_reply_to":"5a3905b3_27435d6d","updated":"2017-01-24 16:35:02.000000000","message":"Done","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":13039,"name":"Martin André","email":"m.andre@redhat.com","username":"mandre"},"change_message_id":"48ef6be1aaae6f5b7bd8f76561effd0974949de9","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    \u0027image-child1\u0027, \u0027image-child:latest\u0027,"},{"line_number":35,"context_line":"    \u0027/fake/path3\u0027, parent_name\u003d\u0027image-base\u0027,"},{"line_number":36,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_UNMATCHED)"},{"line_number":37,"context_line":"FAKE_IMAGE_CHILD2 \u003d build.Image("},{"line_number":38,"context_line":"    \u0027image-child2\u0027, \u0027image-child:latest\u0027,"},{"line_number":39,"context_line":"    \u0027/fake/path4\u0027, parent_name\u003d\u0027image-base\u0027,"},{"line_number":40,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_ERROR)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_4746a97b","line":37,"updated":"2017-01-24 13:13:34.000000000","message":"ditto","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"def2e6f31633269525a405076b3d55e5be5a636d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    \u0027image-child1\u0027, \u0027image-child:latest\u0027,"},{"line_number":35,"context_line":"    \u0027/fake/path3\u0027, parent_name\u003d\u0027image-base\u0027,"},{"line_number":36,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_UNMATCHED)"},{"line_number":37,"context_line":"FAKE_IMAGE_CHILD2 \u003d build.Image("},{"line_number":38,"context_line":"    \u0027image-child2\u0027, \u0027image-child:latest\u0027,"},{"line_number":39,"context_line":"    \u0027/fake/path4\u0027, parent_name\u003d\u0027image-base\u0027,"},{"line_number":40,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_ERROR)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_dbd51143","line":37,"in_reply_to":"5a3905b3_4746a97b","updated":"2017-01-24 16:35:02.000000000","message":"Done","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":13039,"name":"Martin André","email":"m.andre@redhat.com","username":"mandre"},"change_message_id":"48ef6be1aaae6f5b7bd8f76561effd0974949de9","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    \u0027image-child2\u0027, \u0027image-child:latest\u0027,"},{"line_number":39,"context_line":"    \u0027/fake/path4\u0027, parent_name\u003d\u0027image-base\u0027,"},{"line_number":40,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_ERROR)"},{"line_number":41,"context_line":"FAKE_IMAGE_CHILD3 \u003d build.Image("},{"line_number":42,"context_line":"    \u0027image-child3\u0027, \u0027image-child:latest\u0027,"},{"line_number":43,"context_line":"    \u0027/fake/path5\u0027, parent_name\u003d\u0027image-base\u0027,"},{"line_number":44,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_BUILT)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_6761e504","line":41,"updated":"2017-01-24 13:13:34.000000000","message":"ditto","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"def2e6f31633269525a405076b3d55e5be5a636d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    \u0027image-child2\u0027, \u0027image-child:latest\u0027,"},{"line_number":39,"context_line":"    \u0027/fake/path4\u0027, parent_name\u003d\u0027image-base\u0027,"},{"line_number":40,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_ERROR)"},{"line_number":41,"context_line":"FAKE_IMAGE_CHILD3 \u003d build.Image("},{"line_number":42,"context_line":"    \u0027image-child3\u0027, \u0027image-child:latest\u0027,"},{"line_number":43,"context_line":"    \u0027/fake/path5\u0027, parent_name\u003d\u0027image-base\u0027,"},{"line_number":44,"context_line":"    parent\u003dFAKE_IMAGE, status\u003dbuild.STATUS_BUILT)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_1bccf9b9","line":41,"in_reply_to":"5a3905b3_6761e504","updated":"2017-01-24 16:35:02.000000000","message":"Done","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":13039,"name":"Martin André","email":"m.andre@redhat.com","username":"mandre"},"change_message_id":"48ef6be1aaae6f5b7bd8f76561effd0974949de9","unresolved":false,"context_lines":[{"line_number":158,"context_line":"    @mock.patch(\u0027shutil.rmtree\u0027)"},{"line_number":159,"context_line":"    @mock.patch(\u0027shutil.copyfile\u0027)"},{"line_number":160,"context_line":"    @mock.patch(\u0027os.utime\u0027)"},{"line_number":161,"context_line":"    def test_process_source(self, mock_get, mock_client,"},{"line_number":162,"context_line":"                            mock_rmtree, mock_copyfile, mock_utime):"},{"line_number":163,"context_line":"        for source in [{\u0027source\u0027: \u0027http://fake/source1\u0027, \u0027type\u0027: \u0027url\u0027,"},{"line_number":164,"context_line":"                       \u0027name\u0027: \u0027fake-image-base1\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_875c114c","line":161,"updated":"2017-01-24 13:13:34.000000000","message":"Ideally we would like to test the different source types in separate tests (they are different enough).","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"def2e6f31633269525a405076b3d55e5be5a636d","unresolved":false,"context_lines":[{"line_number":158,"context_line":"    @mock.patch(\u0027shutil.rmtree\u0027)"},{"line_number":159,"context_line":"    @mock.patch(\u0027shutil.copyfile\u0027)"},{"line_number":160,"context_line":"    @mock.patch(\u0027os.utime\u0027)"},{"line_number":161,"context_line":"    def test_process_source(self, mock_get, mock_client,"},{"line_number":162,"context_line":"                            mock_rmtree, mock_copyfile, mock_utime):"},{"line_number":163,"context_line":"        for source in [{\u0027source\u0027: \u0027http://fake/source1\u0027, \u0027type\u0027: \u0027url\u0027,"},{"line_number":164,"context_line":"                       \u0027name\u0027: \u0027fake-image-base1\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_fb800df9","line":161,"in_reply_to":"5a3905b3_875c114c","updated":"2017-01-24 16:35:02.000000000","message":"Dear Martin if you see my earlier patches I already did that before but after Jeffrey comment I combined into one. And it also seems fine to me. wdyt ?","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"6a38f44ab5503a1d8d4a48c8c01b64797eddea13","unresolved":false,"context_lines":[{"line_number":158,"context_line":"    @mock.patch(\u0027shutil.rmtree\u0027)"},{"line_number":159,"context_line":"    @mock.patch(\u0027shutil.copyfile\u0027)"},{"line_number":160,"context_line":"    @mock.patch(\u0027os.utime\u0027)"},{"line_number":161,"context_line":"    def test_process_source(self, mock_get, mock_client,"},{"line_number":162,"context_line":"                            mock_rmtree, mock_copyfile, mock_utime):"},{"line_number":163,"context_line":"        for source in [{\u0027source\u0027: \u0027http://fake/source1\u0027, \u0027type\u0027: \u0027url\u0027,"},{"line_number":164,"context_line":"                       \u0027name\u0027: \u0027fake-image-base1\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_5d0d7036","line":161,"in_reply_to":"5a3905b3_9a337a13","updated":"2017-01-25 05:47:05.000000000","message":"Dear Martin see currently, we are getting coverage upto 82%. May be into later patch set i will add more case including success cases.","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":13039,"name":"Martin André","email":"m.andre@redhat.com","username":"mandre"},"change_message_id":"03727dbc77d67848326f24f528bee58592a3c64a","unresolved":false,"context_lines":[{"line_number":158,"context_line":"    @mock.patch(\u0027shutil.rmtree\u0027)"},{"line_number":159,"context_line":"    @mock.patch(\u0027shutil.copyfile\u0027)"},{"line_number":160,"context_line":"    @mock.patch(\u0027os.utime\u0027)"},{"line_number":161,"context_line":"    def test_process_source(self, mock_get, mock_client,"},{"line_number":162,"context_line":"                            mock_rmtree, mock_copyfile, mock_utime):"},{"line_number":163,"context_line":"        for source in [{\u0027source\u0027: \u0027http://fake/source1\u0027, \u0027type\u0027: \u0027url\u0027,"},{"line_number":164,"context_line":"                       \u0027name\u0027: \u0027fake-image-base1\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_9a337a13","line":161,"in_reply_to":"5a3905b3_fb800df9","updated":"2017-01-24 17:07:03.000000000","message":"I think it\u0027s ok for a first patch, but really the process_source can fail for different reasons and these should be tested separately. Same goes for the success cases.","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":13039,"name":"Martin André","email":"m.andre@redhat.com","username":"mandre"},"change_message_id":"48ef6be1aaae6f5b7bd8f76561effd0974949de9","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            push_queue \u003d mock.Mock()"},{"line_number":177,"context_line":"            builder \u003d build.BuildTask(self.conf, self.image, push_queue)"},{"line_number":178,"context_line":"            get_result \u003d builder.process_source(self.image, self.image.source)"},{"line_number":179,"context_line":"            self.assertEqual(self.image.status, build.STATUS_ERROR)"},{"line_number":180,"context_line":"            self.assertFalse(builder.success)"},{"line_number":181,"context_line":"            if source[\u0027type\u0027] !\u003d \u0027local\u0027:"},{"line_number":182,"context_line":"                self.assertIsNone(get_result)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_a7574d24","line":179,"updated":"2017-01-24 13:13:34.000000000","message":"I\u0027m surprised to see that the local source type sets the build status to ERROR when I look at the process_source code (it doesn\u0027t, and yes it\u0027s a bug, it should when the source doesn\u0027t exist). Can you make sure the image.status is build.STATUS_MATCHED before calling builder.process_source? You\u0027ll see that you\u0027re re-using the image object without resetting it to its original state between runs.\n\nIMO, it would be more useful to test the successful case.","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":13039,"name":"Martin André","email":"m.andre@redhat.com","username":"mandre"},"change_message_id":"03727dbc77d67848326f24f528bee58592a3c64a","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            push_queue \u003d mock.Mock()"},{"line_number":177,"context_line":"            builder \u003d build.BuildTask(self.conf, self.image, push_queue)"},{"line_number":178,"context_line":"            get_result \u003d builder.process_source(self.image, self.image.source)"},{"line_number":179,"context_line":"            self.assertEqual(self.image.status, build.STATUS_ERROR)"},{"line_number":180,"context_line":"            self.assertFalse(builder.success)"},{"line_number":181,"context_line":"            if source[\u0027type\u0027] !\u003d \u0027local\u0027:"},{"line_number":182,"context_line":"                self.assertIsNone(get_result)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_da6c22d2","line":179,"in_reply_to":"5a3905b3_3098ef77","updated":"2017-01-24 17:07:03.000000000","message":"Sorry, but you\u0027ll have to add self.assertEqual(self.image.status, build.STATUS_MATCHED) on line 178 to prove it :-/","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"def2e6f31633269525a405076b3d55e5be5a636d","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            push_queue \u003d mock.Mock()"},{"line_number":177,"context_line":"            builder \u003d build.BuildTask(self.conf, self.image, push_queue)"},{"line_number":178,"context_line":"            get_result \u003d builder.process_source(self.image, self.image.source)"},{"line_number":179,"context_line":"            self.assertEqual(self.image.status, build.STATUS_ERROR)"},{"line_number":180,"context_line":"            self.assertFalse(builder.success)"},{"line_number":181,"context_line":"            if source[\u0027type\u0027] !\u003d \u0027local\u0027:"},{"line_number":182,"context_line":"                self.assertIsNone(get_result)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_3098ef77","line":179,"in_reply_to":"5a3905b3_a7574d24","updated":"2017-01-24 16:35:02.000000000","message":"Yes, it is build.STATUS_MATCHED before calling builder.process_source.","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"6a38f44ab5503a1d8d4a48c8c01b64797eddea13","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            push_queue \u003d mock.Mock()"},{"line_number":177,"context_line":"            builder \u003d build.BuildTask(self.conf, self.image, push_queue)"},{"line_number":178,"context_line":"            get_result \u003d builder.process_source(self.image, self.image.source)"},{"line_number":179,"context_line":"            self.assertEqual(self.image.status, build.STATUS_ERROR)"},{"line_number":180,"context_line":"            self.assertFalse(builder.success)"},{"line_number":181,"context_line":"            if source[\u0027type\u0027] !\u003d \u0027local\u0027:"},{"line_number":182,"context_line":"                self.assertIsNone(get_result)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_871f8708","line":179,"in_reply_to":"5a3905b3_da6c22d2","updated":"2017-01-25 05:47:05.000000000","message":"Thanks for the input. Yes it is failing after resetting the image object i.e self.image \u003d FAKE_IMAGE.copy(). and self.image.status is not equal to build.STATUS_MATCHED before callling builder.process_source. So as per first comment negative testing is ok.","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":13039,"name":"Martin André","email":"m.andre@redhat.com","username":"mandre"},"change_message_id":"48ef6be1aaae6f5b7bd8f76561effd0974949de9","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        builder.success \u003d True"},{"line_number":197,"context_line":"        self.conf.push \u003d FAKE_IMAGE_CHILD1"},{"line_number":198,"context_line":"        get_result \u003d builder.followups"},{"line_number":199,"context_line":"        self.assertIsNotNone(get_result)"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"class KollaWorkerTest(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_c7529934","line":199,"updated":"2017-01-24 13:13:34.000000000","message":"The self.assertIsNotNone is of very low value here, since test_followups returns a list. It would be more useful to check the number of elements.\n\nYou\u0027re testing that an unmatched image doesn\u0027t get added to the followups, please make it explicit with the test name. We would also like to test the opposite case, where an image gets added to the followups.","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":13039,"name":"Martin André","email":"m.andre@redhat.com","username":"mandre"},"change_message_id":"03727dbc77d67848326f24f528bee58592a3c64a","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        builder.success \u003d True"},{"line_number":197,"context_line":"        self.conf.push \u003d FAKE_IMAGE_CHILD1"},{"line_number":198,"context_line":"        get_result \u003d builder.followups"},{"line_number":199,"context_line":"        self.assertIsNotNone(get_result)"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"class KollaWorkerTest(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_ba659645","line":199,"in_reply_to":"5a3905b3_01f2c805","updated":"2017-01-24 17:07:03.000000000","message":"It would be useful to check what\u0027s in the queue. In this case we should see the push task (I believe) and no build task.\n\nAlso please adjust the name of the test to reflect what you\u0027re actually testing.","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"6a38f44ab5503a1d8d4a48c8c01b64797eddea13","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        builder.success \u003d True"},{"line_number":197,"context_line":"        self.conf.push \u003d FAKE_IMAGE_CHILD1"},{"line_number":198,"context_line":"        get_result \u003d builder.followups"},{"line_number":199,"context_line":"        self.assertIsNotNone(get_result)"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"class KollaWorkerTest(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_1a1cce76","line":199,"in_reply_to":"5a3905b3_ba659645","updated":"2017-01-25 05:47:05.000000000","message":"done into patch16","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"def2e6f31633269525a405076b3d55e5be5a636d","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        builder.success \u003d True"},{"line_number":197,"context_line":"        self.conf.push \u003d FAKE_IMAGE_CHILD1"},{"line_number":198,"context_line":"        get_result \u003d builder.followups"},{"line_number":199,"context_line":"        self.assertIsNotNone(get_result)"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"class KollaWorkerTest(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_01f2c805","line":199,"in_reply_to":"5a3905b3_c7529934","updated":"2017-01-24 16:35:02.000000000","message":"Done","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":13039,"name":"Martin André","email":"m.andre@redhat.com","username":"mandre"},"change_message_id":"48ef6be1aaae6f5b7bd8f76561effd0974949de9","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        self.conf.set_override(\u0027install_type\u0027, \u0027source\u0027)"},{"line_number":287,"context_line":"        kolla \u003d build.KollaWorker(self.conf)"},{"line_number":288,"context_line":"        kolla.setup_working_dir()"},{"line_number":289,"context_line":"        kolla.set_time()"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    def _get_matched_images(self, images):"},{"line_number":292,"context_line":"        return [image for image in images"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_e7331512","line":289,"updated":"2017-01-24 13:13:34.000000000","message":"Aren\u0027t you missing an assert or something?","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":13039,"name":"Martin André","email":"m.andre@redhat.com","username":"mandre"},"change_message_id":"03727dbc77d67848326f24f528bee58592a3c64a","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        self.conf.set_override(\u0027install_type\u0027, \u0027source\u0027)"},{"line_number":287,"context_line":"        kolla \u003d build.KollaWorker(self.conf)"},{"line_number":288,"context_line":"        kolla.setup_working_dir()"},{"line_number":289,"context_line":"        kolla.set_time()"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    def _get_matched_images(self, images):"},{"line_number":292,"context_line":"        return [image for image in images"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_3a0a8626","line":289,"in_reply_to":"5a3905b3_36cd4c66","updated":"2017-01-24 17:07:03.000000000","message":"Right, we want to check that the method does what it is supposed to do, not that it returns without raising an exception.\n\nIn your case, you want to check that we call os.utime if (and only if) the working dir is not empty.","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"6a38f44ab5503a1d8d4a48c8c01b64797eddea13","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        self.conf.set_override(\u0027install_type\u0027, \u0027source\u0027)"},{"line_number":287,"context_line":"        kolla \u003d build.KollaWorker(self.conf)"},{"line_number":288,"context_line":"        kolla.setup_working_dir()"},{"line_number":289,"context_line":"        kolla.set_time()"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    def _get_matched_images(self, images):"},{"line_number":292,"context_line":"        return [image for image in images"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_4743df6c","line":289,"in_reply_to":"5a3905b3_3a0a8626","updated":"2017-01-25 05:47:05.000000000","message":"Done","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"def2e6f31633269525a405076b3d55e5be5a636d","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        self.conf.set_override(\u0027install_type\u0027, \u0027source\u0027)"},{"line_number":287,"context_line":"        kolla \u003d build.KollaWorker(self.conf)"},{"line_number":288,"context_line":"        kolla.setup_working_dir()"},{"line_number":289,"context_line":"        kolla.set_time()"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    def _get_matched_images(self, images):"},{"line_number":292,"context_line":"        return [image for image in images"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_36cd4c66","line":289,"in_reply_to":"5a3905b3_e7331512","updated":"2017-01-24 16:35:02.000000000","message":"actually set_time doesn\u0027t return anything here. So checking only normal flow of function.","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"}],"kolla/tests/test_methods.py":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"9dc4e0d54571816728359c69a85ef01dd219e650","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    def test_debian_package_install(self):"},{"line_number":20,"context_line":"        packages \u003d [\u0027https://packages.debian.org/package1.deb\u0027, \u0027package2.deb\u0027]"},{"line_number":21,"context_line":"        result \u003d methods.debian_package_install(packages)"},{"line_number":22,"context_line":"        self.assertTrue(result)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_34c66d9a","line":22,"range":{"start_line":22,"start_character":13,"end_line":22,"end_character":23},"updated":"2017-01-23 11:25:11.000000000","message":"Can we check the contents of result are valid rather than just assertTrue?","commit_id":"2662afe57dfb3de291fab50c310891cd63606795"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"f4a8e0daada260a171e0f0ce4b79bb0809cd5d0a","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    def test_debian_package_install(self):"},{"line_number":20,"context_line":"        packages \u003d [\u0027https://packages.debian.org/package1.deb\u0027, \u0027package2.deb\u0027]"},{"line_number":21,"context_line":"        result \u003d methods.debian_package_install(packages)"},{"line_number":22,"context_line":"        self.assertTrue(result)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_84fb66c0","line":22,"range":{"start_line":22,"start_character":13,"end_line":22,"end_character":23},"in_reply_to":"5a3905b3_34c66d9a","updated":"2017-01-23 14:09:23.000000000","message":"Done","commit_id":"2662afe57dfb3de291fab50c310891cd63606795"},{"author":{"_account_id":13039,"name":"Martin André","email":"m.andre@redhat.com","username":"mandre"},"change_message_id":"48ef6be1aaae6f5b7bd8f76561effd0974949de9","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    def test_debian_package_install(self):"},{"line_number":20,"context_line":"        packages \u003d [\u0027https://packages.debian.org/package1.deb\u0027, \u0027package2.deb\u0027]"},{"line_number":21,"context_line":"        result \u003d methods.debian_package_install(packages)"},{"line_number":22,"context_line":"        self.assertEqual(5, len(result.split(\u0027\u0026\u0026\u0027)))"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_073741ff","line":22,"updated":"2017-01-24 13:13:34.000000000","message":"Please match exactly the output you expect.","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"b6cf8da9c11fbbecfcaaf58c3e9d1ab94c5289ba","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    def test_debian_package_install(self):"},{"line_number":20,"context_line":"        packages \u003d [\u0027https://packages.debian.org/package1.deb\u0027, \u0027package2.deb\u0027]"},{"line_number":21,"context_line":"        result \u003d methods.debian_package_install(packages)"},{"line_number":22,"context_line":"        self.assertEqual(5, len(result.split(\u0027\u0026\u0026\u0027)))"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_9f97ecea","line":22,"in_reply_to":"5a3905b3_073741ff","updated":"2017-01-24 16:43:23.000000000","message":"output is the long string with the curl commands into it. So as per the current packages one of url package and other without url package. So it seems fine to me.","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"6a38f44ab5503a1d8d4a48c8c01b64797eddea13","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    def test_debian_package_install(self):"},{"line_number":20,"context_line":"        packages \u003d [\u0027https://packages.debian.org/package1.deb\u0027, \u0027package2.deb\u0027]"},{"line_number":21,"context_line":"        result \u003d methods.debian_package_install(packages)"},{"line_number":22,"context_line":"        self.assertEqual(5, len(result.split(\u0027\u0026\u0026\u0027)))"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_dd2b2093","line":22,"in_reply_to":"5a3905b3_754fc133","updated":"2017-01-25 05:47:05.000000000","message":"Done into patch set 16","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"},{"author":{"_account_id":13039,"name":"Martin André","email":"m.andre@redhat.com","username":"mandre"},"change_message_id":"03727dbc77d67848326f24f528bee58592a3c64a","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    def test_debian_package_install(self):"},{"line_number":20,"context_line":"        packages \u003d [\u0027https://packages.debian.org/package1.deb\u0027, \u0027package2.deb\u0027]"},{"line_number":21,"context_line":"        result \u003d methods.debian_package_install(packages)"},{"line_number":22,"context_line":"        self.assertEqual(5, len(result.split(\u0027\u0026\u0026\u0027)))"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_754fc133","line":22,"in_reply_to":"5a3905b3_9f97ecea","updated":"2017-01-24 17:07:03.000000000","message":"Exactly, please check that the output is a valid apt command that installs the desired packages. The easiest is to do an exact match.","commit_id":"f14c5796b57116a05d82baca57f95cd5bc3754af"}]}
