)]}'
{"test/unit/common/test_manager.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ca541cd76598eba8d8dbd6d35ebf4a26d35b9892","unresolved":false,"context_lines":[{"line_number":2107,"context_line":"            for m, calls in called.items():"},{"line_number":2108,"context_line":"                self.assertEqual(calls, [(\u0027stop\u0027, {\u0027graceful\u0027: True}),"},{"line_number":2109,"context_line":"                                         (\u0027start\u0027, {\u0027graceful\u0027: True})])"},{"line_number":2110,"context_line":"                actual_servers.update([server.server for server in m.servers])"},{"line_number":2111,"context_line":"            self.assertEqual(expected_servers, actual_servers)"},{"line_number":2112,"context_line":""},{"line_number":2113,"context_line":"        do_test(graceful\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_41049a15","line":2110,"updated":"2017-03-24 21:04:51.000000000","message":"Given how we constructed expected_servers on line 2096, it wasn\u0027t obvious to me that this would actually test what we wanted. But after applying\n\n diff --git a/test/unit/common/test_manager.py b/test/unit/common/test_manager.py\n index 7eac135..0d7cbfa 100644\n --- a/test/unit/common/test_manager.py\n +++ b/test/unit/common/test_manager.py\n @@ -2104,9 +2104,12 @@ class TestManager(unittest.TestCase):\n              self.assertEqual(status, 0)\n              self.assertEqual(4, len(called))\n              actual_servers \u003d set()\n +            once \u003d False\n              for m, calls in called.items():\n                  self.assertEqual(calls, [(\u0027stop\u0027, {\u0027graceful\u0027: True}),\n                                           (\u0027start\u0027, {\u0027graceful\u0027: True})])\n +                if once: break\n +                once \u003d True\n                  actual_servers.update([server.server for server in m.servers])\n              self.assertEqual(expected_servers, actual_servers)\n\n... sure enough, it\u0027d fail with:\n\n FAIL: test_reload (test.unit.common.test_manager.TestManager)\n ----------------------------------------------------------------------\n Traceback (most recent call last):\n   File \"/vagrant/swift/test/unit/common/test_manager.py\", line 2116, in test_reload\n     do_test(graceful\u003dTrue)\n   File \"/vagrant/swift/test/unit/common/test_manager.py\", line 2114, in do_test\n     self.assertEqual(expected_servers, actual_servers)\n AssertionError: Items in the first set but not the second:\n \u0027container-server\u0027\n \u0027account-server\u0027\n \u0027object-server\u0027\n\nMaybe something like\n\n diff --git a/test/unit/common/test_manager.py b/test/unit/common/test_manager.py\n index 7eac135..7e34f2b 100644\n --- a/test/unit/common/test_manager.py\n +++ b/test/unit/common/test_manager.py\n @@ -2107,7 +2107,9 @@ class TestManager(unittest.TestCase):\n              for m, calls in called.items():\n                  self.assertEqual(calls, [(\u0027stop\u0027, {\u0027graceful\u0027: True}),\n                                           (\u0027start\u0027, {\u0027graceful\u0027: True})])\n -                actual_servers.update([server.server for server in m.servers])\n +                servers_restarted \u003d [server.server for server in m.servers]\n +                self.assertEqual(1, len(servers_restarted), servers_restarted)\n +                actual_servers.update(servers_restarted)\n              self.assertEqual(expected_servers, actual_servers)\n  \n          do_test(graceful\u003dTrue)\n\n...would make it more obviously-correct?","commit_id":"a15b2a2a161db1bfb78334e2577219635e11164a"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"4071099dfb6470e8c49b5eb272253d6ce871ac63","unresolved":false,"context_lines":[{"line_number":2107,"context_line":"            for m, calls in called.items():"},{"line_number":2108,"context_line":"                self.assertEqual(calls, [(\u0027stop\u0027, {\u0027graceful\u0027: True}),"},{"line_number":2109,"context_line":"                                         (\u0027start\u0027, {\u0027graceful\u0027: True})])"},{"line_number":2110,"context_line":"                actual_servers.update([server.server for server in m.servers])"},{"line_number":2111,"context_line":"            self.assertEqual(expected_servers, actual_servers)"},{"line_number":2112,"context_line":""},{"line_number":2113,"context_line":"        do_test(graceful\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_71535f3a","line":2110,"in_reply_to":"ffe62b97_41049a15","updated":"2017-03-29 07:10:17.000000000","message":"Ah, ok. the reload makes more Manager instances for each server (i.e. proxy, account, container, object) so the kind of the servers will be 4 and each instance will be different so the called dict keeps each instance as key and then called order as value.\n\nAnd then, before this change, it\u0027s not ordered (just asserting call count) but now, the called dict value (list) will sorted by called order.","commit_id":"a15b2a2a161db1bfb78334e2577219635e11164a"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ca541cd76598eba8d8dbd6d35ebf4a26d35b9892","unresolved":false,"context_lines":[{"line_number":2111,"context_line":"            self.assertEqual(expected_servers, actual_servers)"},{"line_number":2112,"context_line":""},{"line_number":2113,"context_line":"        do_test(graceful\u003dTrue)"},{"line_number":2114,"context_line":"        do_test(graceful\u003dFalse)  # graceful is forced regardless of the kwarg"},{"line_number":2115,"context_line":""},{"line_number":2116,"context_line":"    def test_force_reload(self):"},{"line_number":2117,"context_line":"        m \u003d manager.Manager([\u0027test\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_217076a5","line":2114,"updated":"2017-03-24 21:04:51.000000000","message":"Thanks for the comment! I was scratching my head a bit when I was updating this in https://review.openstack.org/#/c/449270/","commit_id":"a15b2a2a161db1bfb78334e2577219635e11164a"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"4071099dfb6470e8c49b5eb272253d6ce871ac63","unresolved":false,"context_lines":[{"line_number":2111,"context_line":"            self.assertEqual(expected_servers, actual_servers)"},{"line_number":2112,"context_line":""},{"line_number":2113,"context_line":"        do_test(graceful\u003dTrue)"},{"line_number":2114,"context_line":"        do_test(graceful\u003dFalse)  # graceful is forced regardless of the kwarg"},{"line_number":2115,"context_line":""},{"line_number":2116,"context_line":"    def test_force_reload(self):"},{"line_number":2117,"context_line":"        m \u003d manager.Manager([\u0027test\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_7167dfb8","line":2114,"in_reply_to":"ffe62b97_217076a5","updated":"2017-03-29 07:10:17.000000000","message":"I see, reload will add graceful\u003dTrue, automatically.","commit_id":"a15b2a2a161db1bfb78334e2577219635e11164a"}]}
