)]}'
{"neutron/tests/base.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"c9e71dc556abf97f789428fc31ada463cde88b6b","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                               (idx, fname))"},{"line_number":196,"context_line":"                        self.addDetail(\u0027DietTestCase\u0027, msg)"},{"line_number":197,"context_line":"                        ctxt.reraise \u003d False"},{"line_number":198,"context_line":"                        self._set_timeout()"},{"line_number":199,"context_line":"    return func"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_77a0b692","line":198,"updated":"2019-10-21 08:33:04.000000000","message":"question: It looks like _set_timeout() comes from oslotest.base[1]. This method just calls useFixture. I think it leads to set up fixtures multiple times. Does it work as expected?\n\n[1] https://github.com/openstack/oslotest/blob/ff3cb9557158504c643f96aa50d03f58b5dae3fc/oslotest/base.py#L125-L129","commit_id":"6444376ae449787f7d68a33c063676e4c1b4e6fc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c7811bedce24bfe4b2dbd90d8dc728553472d185","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                               (idx, fname))"},{"line_number":196,"context_line":"                        self.addDetail(\u0027DietTestCase\u0027, msg)"},{"line_number":197,"context_line":"                        ctxt.reraise \u003d False"},{"line_number":198,"context_line":"                        self._set_timeout()"},{"line_number":199,"context_line":"    return func"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_dd72ebad","line":198,"in_reply_to":"3fa7e38b_77a0b692","updated":"2019-10-21 10:11:49.000000000","message":"Good question. I didn\u0027t see that.\n\noslotest.base.BaseTestCase._set_timeout is enabling the fixture oslotest.timeout.Timeout. This one is just a wrapper for fixtures.Timeout.\n\nWhen calling a second time to use the timeout fixture, we are just adding another fixture to the test class. This second fixture will be cleaned up during the test case tear down. Both fixtures are independent instances.\n\nBut signal.alarm is a unique instance per process. If we reset the value of signal.signal [1], this will change the signal timeout for this process. But at this point the signal timeout was exhausted and setting it again will restart the countdown (exactly what we need).\n\nBoth timeout fixtures (if this line is called once), during the teardown will set the signal alarm to 0. Because this is an idempotent method, there is no problem.\n\n[1] https://github.com/testing-cabal/fixtures/blob/master/fixtures/_fixtures/timeout.py#L65","commit_id":"6444376ae449787f7d68a33c063676e4c1b4e6fc"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f6407fda2ddc647cf1c5356391d3fa2f316c9a95","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                               (idx, fname))"},{"line_number":196,"context_line":"                        self.addDetail(\u0027DietTestCase\u0027, msg)"},{"line_number":197,"context_line":"                        ctxt.reraise \u003d False"},{"line_number":198,"context_line":"                        self._set_timeout()"},{"line_number":199,"context_line":"    return func"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_32d569e6","line":198,"in_reply_to":"3fa7e38b_dd72ebad","updated":"2019-10-21 13:20:04.000000000","message":"Thanks for clarification. It sounds fine.","commit_id":"6444376ae449787f7d68a33c063676e4c1b4e6fc"}]}
