)]}'
{"ironic_lib/tests/base.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"d275db69a3bf8ebcdc14c3ff926d532e9d8d29ea","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 Cisco Systems, Inc"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":1,"id":"1f013ff3_c56304dc","line":1,"updated":"2017-05-16 21:22:20.000000000","message":"? is it cuz you copied the version from ipa?","commit_id":"23d53042b2c9a3e0b92bef5363ce2ef52f11d04c"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"86c098202c2af1406895ef6d0dca326be4812c3a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 Cisco Systems, Inc"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":1,"id":"1f013ff3_0b3c5bc6","line":1,"in_reply_to":"1f013ff3_c56304dc","updated":"2017-05-16 22:44:39.000000000","message":"Yep. Pretty much same exact file.","commit_id":"23d53042b2c9a3e0b92bef5363ce2ef52f11d04c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"d275db69a3bf8ebcdc14c3ff926d532e9d8d29ea","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from ironic_lib import utils"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class IronicLibTest(test_base.BaseTestCase):"},{"line_number":26,"context_line":"    \"\"\"Extends the base test to provide common features across agent tests.\"\"\""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f013ff3_05c68c9b","line":25,"updated":"2017-05-16 21:22:20.000000000","message":"I wonder why it is called BaseTestCase, and whether we should be consistent and call this IronicLibTestCase. I guess it would be bad to call this class \u0027BaseTestCase\u0027 too?","commit_id":"23d53042b2c9a3e0b92bef5363ce2ef52f11d04c"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"86c098202c2af1406895ef6d0dca326be4812c3a","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from ironic_lib import utils"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class IronicLibTest(test_base.BaseTestCase):"},{"line_number":26,"context_line":"    \"\"\"Extends the base test to provide common features across agent tests.\"\"\""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f013ff3_ab30c7e9","line":25,"in_reply_to":"1f013ff3_05c68c9b","updated":"2017-05-16 22:44:39.000000000","message":"Kind of makes sense to me. So I will update it to IronicLibTestCase","commit_id":"23d53042b2c9a3e0b92bef5363ce2ef52f11d04c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"d275db69a3bf8ebcdc14c3ff926d532e9d8d29ea","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class IronicLibTest(test_base.BaseTestCase):"},{"line_number":26,"context_line":"    \"\"\"Extends the base test to provide common features across agent tests.\"\"\""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def setUp(self):"},{"line_number":29,"context_line":"        super(IronicLibTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f013ff3_8584dc5f","line":26,"updated":"2017-05-16 21:22:20.000000000","message":"s/agent//","commit_id":"23d53042b2c9a3e0b92bef5363ce2ef52f11d04c"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"86c098202c2af1406895ef6d0dca326be4812c3a","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class IronicLibTest(test_base.BaseTestCase):"},{"line_number":26,"context_line":"    \"\"\"Extends the base test to provide common features across agent tests.\"\"\""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def setUp(self):"},{"line_number":29,"context_line":"        super(IronicLibTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f013ff3_2b81574b","line":26,"in_reply_to":"1f013ff3_8584dc5f","updated":"2017-05-16 22:44:39.000000000","message":"Done","commit_id":"23d53042b2c9a3e0b92bef5363ce2ef52f11d04c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"d275db69a3bf8ebcdc14c3ff926d532e9d8d29ea","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        super(IronicLibTest, self).setUp()"},{"line_number":30,"context_line":"        \"\"\"Add a blanket ban on running external processes via utils.execute()."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        `self` will grow a property  called _exec_patch which is the Mock"},{"line_number":33,"context_line":"        that replaces utils.execute."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        If the mock is called, an exception is raised to warn the tester."}],"source_content_type":"text/x-python","patch_set":1,"id":"1f013ff3_0598ccbd","line":32,"updated":"2017-05-16 21:22:20.000000000","message":"I find \u0027grow\u0027 to be odd, i don\u0027t think it is a plant :)\n\nextra space s/property  called/property called/","commit_id":"23d53042b2c9a3e0b92bef5363ce2ef52f11d04c"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"86c098202c2af1406895ef6d0dca326be4812c3a","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        super(IronicLibTest, self).setUp()"},{"line_number":30,"context_line":"        \"\"\"Add a blanket ban on running external processes via utils.execute()."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        `self` will grow a property  called _exec_patch which is the Mock"},{"line_number":33,"context_line":"        that replaces utils.execute."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        If the mock is called, an exception is raised to warn the tester."}],"source_content_type":"text/x-python","patch_set":1,"id":"1f013ff3_0b98dbbd","line":32,"in_reply_to":"1f013ff3_0598ccbd","updated":"2017-05-16 22:44:39.000000000","message":"Done","commit_id":"23d53042b2c9a3e0b92bef5363ce2ef52f11d04c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"49b6a45e522f7c90d29651df2d2242f4f26e039d","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    processutils.execute() and similar functions."},{"line_number":33,"context_line":"    \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    block_execute \u003d True"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def setUp(self):"},{"line_number":38,"context_line":"        super(IronicLibTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff0f0b1f_1191709a","line":35,"updated":"2017-05-17 20:01:21.000000000","message":"would be good to add a docstring here to describe what it is used for (i mean, you can see if you look at the code), and that subclasses should set to False if they want to use the execute stuff.\n\ni am wondering now if it should be called something other than execute since it is blocking system calls?","commit_id":"61a0c2582b8c2bb08bc9d0432c8a942ecd8bb910"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"652e914315a272f5111aa37fca6f3ca440bfe3d3","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    processutils.execute() and similar functions."},{"line_number":33,"context_line":"    \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    block_execute \u003d True"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def setUp(self):"},{"line_number":38,"context_line":"        super(IronicLibTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff0f0b1f_b59997d1","line":35,"in_reply_to":"ff0f0b1f_1191709a","updated":"2017-05-25 21:43:56.000000000","message":"++","commit_id":"61a0c2582b8c2bb08bc9d0432c8a942ecd8bb910"}],"ironic_lib/tests/test_disk_utils.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"18d3bfbf80ea6806287e0f62a3cf3e4148bf998c","unresolved":false,"context_lines":[{"line_number":539,"context_line":"# NOTE(dtantsur): destroy_disk_metadata resets file size, disabling it"},{"line_number":540,"context_line":"@mock.patch.object(disk_utils, \u0027destroy_disk_metadata\u0027, lambda *_: None)"},{"line_number":541,"context_line":"# NOTE(jlvillal): This class calls utils.execute, so it can not inherit from"},{"line_number":542,"context_line":"# base.IronicLibTestCase"},{"line_number":543,"context_line":"class RealFilePartitioningTestCase(test_base.BaseTestCase):"},{"line_number":544,"context_line":"    \"\"\"This test applies some real-world partitioning scenario to a file."},{"line_number":545,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff0f0b1f_e3d88080","line":542,"updated":"2017-05-17 12:34:33.000000000","message":"I\u0027m worried that people will start extenting IronicLibTestCase without realizing that some tests do not inherit from it.. I\u0027d prefer something like a class-level attribute to opt-out of the execute() mock.","commit_id":"c4935345d7eb08bf2a6dc3cf22084b39c0abc0c8"}],"ironic_lib/tests/test_utils.py":[{"author":{"_account_id":15750,"name":"Julian Edwards","email":"bigjools@gmail.com","username":"bigjools"},"change_message_id":"2fed31c3d1d8d59556e666a71e539cabcdaee3ff","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"# NOTE(jlvillal): This class is testing utils.execute, so it can not inherit"},{"line_number":49,"context_line":"# from base.IronicLibTest"},{"line_number":50,"context_line":"class ExecuteTestCase(test_base.BaseTestCase):"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @mock.patch.object(processutils, \u0027execute\u0027, autospec\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f013ff3_cd948beb","line":49,"updated":"2017-05-15 01:01:07.000000000","message":"It looks like all the tests are mocking anyway so you should be ok to inherit from it.","commit_id":"23d53042b2c9a3e0b92bef5363ce2ef52f11d04c"},{"author":{"_account_id":15750,"name":"Julian Edwards","email":"bigjools@gmail.com","username":"bigjools"},"change_message_id":"09230f1c5cc57bd879faefb7103cf0a72f218f89","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"# NOTE(jlvillal): This class is testing utils.execute, so it can not inherit"},{"line_number":49,"context_line":"# from base.IronicLibTest"},{"line_number":50,"context_line":"class ExecuteTestCase(test_base.BaseTestCase):"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @mock.patch.object(processutils, \u0027execute\u0027, autospec\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f013ff3_f6d6f4f1","line":49,"in_reply_to":"1f013ff3_56d008f8","updated":"2017-05-15 04:17:31.000000000","message":"Ah yes my bad. In which case I wonder why the code isn\u0027t using utils.execute() ...\n\nAnyway no big deal.","commit_id":"23d53042b2c9a3e0b92bef5363ce2ef52f11d04c"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"db499cc918b803b1aac92b4a518668918f8bcba6","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"# NOTE(jlvillal): This class is testing utils.execute, so it can not inherit"},{"line_number":49,"context_line":"# from base.IronicLibTest"},{"line_number":50,"context_line":"class ExecuteTestCase(test_base.BaseTestCase):"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @mock.patch.object(processutils, \u0027execute\u0027, autospec\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f013ff3_56d008f8","line":49,"in_reply_to":"1f013ff3_cd948beb","updated":"2017-05-15 04:15:21.000000000","message":"They are mocking \u0027processutils\u0027 version of execute. Not \u0027utils\u0027 version execute.\n\nI did a quick test and the assertion was raised about not calling utils.execute.\n\nUnless I\u0027m missing something.","commit_id":"23d53042b2c9a3e0b92bef5363ce2ef52f11d04c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"18d3bfbf80ea6806287e0f62a3cf3e4148bf998c","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"# NOTE(jlvillal): This class is testing utils.execute, so it can not inherit"},{"line_number":49,"context_line":"# from base.IronicLibTestCase"},{"line_number":50,"context_line":"class ExecuteTestCase(test_base.BaseTestCase):"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @mock.patch.object(processutils, \u0027execute\u0027, autospec\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff0f0b1f_c3e57c3a","line":49,"updated":"2017-05-17 12:34:33.000000000","message":"ditto","commit_id":"c4935345d7eb08bf2a6dc3cf22084b39c0abc0c8"}]}
